Przeglądaj źródła

赠券规则管理

jyc 3 miesięcy temu
rodzic
commit
b4d46ec06b

+ 65 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeDiscountCouponFriendRule.java

@@ -0,0 +1,65 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 赠券规则
+ * @TableName life_discount_coupon_friend_rule
+ */
+@TableName(value ="life_discount_coupon_friend_rule")
+@JsonInclude
+@Data
+public class LifeDiscountCouponFriendRule {
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty(value = "店铺id")
+    @TableField("store_id")
+    @TableLogic
+    private Integer storeId;
+
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    @TableField("ac_name")
+    private String acName;
+
+    /**
+     * 消费限制(开始)
+     */
+    @ApiModelProperty(value = "消费限制(开始)")
+    @TableField("money_low")
+    private BigDecimal moneyLow;
+
+    /**
+     * 消费限制(结束)
+     */
+    @ApiModelProperty(value = "消费限制(结束)")
+    @TableField("money_high")
+    private BigDecimal moneyHigh;
+
+    /**
+     * 删除状态(0未删除/1已删除)
+     */
+    @ApiModelProperty(value = "删除状态(0未删除/1已删除)")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @TableField(exist = false)
+    private List<LifeDiscountCouponFriendRuleDetail> details;
+}

+ 37 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeDiscountCouponFriendRuleDetail.java

@@ -0,0 +1,37 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 赠券规则明细
+ * @TableName life_discount_coupon_friend_rule_detail
+ */
+@TableName(value ="life_discount_coupon_friend_rule_detail")
+@JsonInclude
+@Data
+public class LifeDiscountCouponFriendRuleDetail {
+    /**
+     * 主键id
+     */
+    @TableId
+    private Integer id;
+
+    /**
+     * 规则id
+     */
+    @ApiModelProperty(value = "规则id")
+    @TableField("rule_id")
+    private Integer ruleId;
+
+    /**
+     * 优惠券id
+     */
+    @ApiModelProperty(value = "优惠券id")
+    @TableField("coupon_id")
+    private Integer couponId;
+}

+ 25 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeDiscountCouponFriendRuleDetailVo.java

@@ -0,0 +1,25 @@
+package shop.alien.entity.store.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+import shop.alien.entity.store.LifeDiscountCouponFriendRule;
+import shop.alien.entity.store.LifeDiscountCouponFriendRuleDetail;
+
+/**
+ * 赠券规则
+ * @TableName life_discount_coupon_friend_rule
+ */
+@TableName(value ="life_discount_coupon_friend_rule")
+@JsonInclude
+@Data
+public class LifeDiscountCouponFriendRuleDetailVo extends LifeDiscountCouponFriendRuleDetail {
+
+    private String storeName;
+
+    private String couponName;
+
+    private Integer couponNum;
+
+    private Integer friendStoreUserId;
+}

+ 43 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeDiscountCouponFriendRuleVo.java

@@ -0,0 +1,43 @@
+package shop.alien.entity.store.vo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.LifeDiscountCouponFriendRule;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 赠券规则
+ * @TableName life_discount_coupon_friend_rule
+ */
+@TableName(value ="life_discount_coupon_friend_rule")
+@JsonInclude
+@Data
+public class LifeDiscountCouponFriendRuleVo extends LifeDiscountCouponFriendRule {
+
+    @JsonFormat(pattern = "yyyy/MM/dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "截止时间")
+    private Date endDate;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+
+    @ApiModelProperty(value = "优惠券名称")
+    private String couponName;
+
+    @ApiModelProperty(value = "优惠券数量")
+    private Integer couponNum;
+
+    @ApiModelProperty(value = "面值")
+    private BigDecimal nominalValue;
+
+    @ApiModelProperty(value = "最低消费")
+    private BigDecimal minimumSpendingAmount;
+
+    private List<LifeDiscountCouponFriendRuleDetailVo> details;
+}

+ 40 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeDiscountCouponFriendRuleDetailMapper.java

@@ -0,0 +1,40 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import shop.alien.entity.store.LifeDiscountCouponFriendRuleDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleDetailVo;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleVo;
+import shop.alien.entity.store.vo.LifeGroupBuyThaliVo;
+
+import java.util.List;
+
+/**
+* @author youch
+* @description 针对表【life_discount_coupon_friend_rule_detail(赠券规则明细)】的数据库操作Mapper
+* @createDate 2025-09-18 13:32:40
+* @Entity shop.alien.entity.store.LifeDiscountCouponFriendRuleDetail
+*/
+public interface LifeDiscountCouponFriendRuleDetailMapper extends BaseMapper<LifeDiscountCouponFriendRuleDetail> {
+
+    void insertList(List<LifeDiscountCouponFriendRuleDetail> lifeDiscountCouponFriendRuleDetailList);
+
+    @Select("select si.store_name storeName,ldc.name couponName,ldc.id couponId,sum(ldcsf.single_qty) couponNum,ldcsf.friend_store_user_id friendStoreUserId from life_discount_coupon_store_friend ldcsf left join life_discount_coupon ldc on ldcsf.coupon_id = ldc.id left join store_user su on ldcsf.friend_store_user_id = su.id left join store_info si on su.store_id = si.id")
+    List<LifeDiscountCouponFriendRuleDetailVo> getReceivedFriendCouponList(@Param(Constants.WRAPPER) QueryWrapper<LifeDiscountCouponFriendRuleDetailVo> queryWrapper);
+
+    @Select("SELECT\n" +
+            "\ta.*,\n" +
+            "\tMAX( c.end_date ) endDate \n" +
+            "FROM\n" +
+            "\tlife_discount_coupon_friend_rule a\n" +
+            "\tLEFT JOIN life_discount_coupon_friend_rule_detail b ON a.id = b.rule_id\n" +
+            "\tLEFT JOIN life_discount_coupon c ON b.coupon_id = c.id where a.store_id = #{storeId} order by endDate")
+    List<LifeDiscountCouponFriendRuleVo> getRuleList(@Param("storeId")String storeId);
+}
+
+
+
+

+ 18 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeDiscountCouponFriendRuleMapper.java

@@ -0,0 +1,18 @@
+package shop.alien.mapper;
+
+import shop.alien.entity.store.LifeDiscountCouponFriendRule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author youch
+* @description 针对表【life_discount_coupon_friend_rule(赠券规则)】的数据库操作Mapper
+* @createDate 2025-09-18 13:32:36
+* @Entity shop.alien.entity.store.LifeDiscountCouponFriendRule
+*/
+public interface LifeDiscountCouponFriendRuleMapper extends BaseMapper<LifeDiscountCouponFriendRule> {
+
+}
+
+
+
+

+ 15 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeDiscountCouponStoreFriendMapper.java

@@ -7,9 +7,12 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import shop.alien.entity.store.LifeDiscountCouponStoreFriend;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleVo;
 import shop.alien.entity.store.vo.LifeDiscountCouponStoreFriendVo;
 import shop.alien.entity.store.vo.LifeDiscountCouponVo;
 
+import java.util.List;
+
 /**
  * <p>
  * 优惠券商户发放好友优惠券关系表	 Mapper 接口
@@ -31,4 +34,16 @@ public interface LifeDiscountCouponStoreFriendMapper extends BaseMapper<LifeDisc
             "on si.id = ldc.store_id and si.delete_flag = 0\n" +
             "${ew.customSqlSegment}")
     IPage<LifeDiscountCouponVo> selectPage(IPage<LifeDiscountCouponStoreFriendVo> iPage, @Param(Constants.WRAPPER) QueryWrapper<LifeDiscountCouponStoreFriendVo> friendLifeDiscountCouponQueryWrapper);
+
+    @Select("select ldcsf.created_time endDate,ldc.nominal_value nominalValue,ldc.minimum_spending_amount minimumSpendingAmount,\n" +
+            "si.store_name storeName,\n" +
+            "ldc.name couponName,\n" +
+            "ldcsf.single_qty couponNum,\n" +
+            "from  life_discount_coupon_store_friend ldcsf\n" +
+            "left join life_discount_coupon ldc\n" +
+            "on ldc.id = ldcsf.coupon_id and ldc.delete_flag = 0\n" +
+            "left join store_info si\n" +
+            "on si.id = ldc.store_id and si.delete_flag = 0\n" +
+            "${ew.customSqlSegment}")
+    List<LifeDiscountCouponFriendRuleVo> getReceivedSendFriendCouponList(@Param(Constants.WRAPPER) QueryWrapper<LifeDiscountCouponFriendRuleVo> lifeDiscountCouponFriendRuleVoQueryWrapper);
 }

+ 25 - 0
alien-entity/src/main/resources/mapper/LifeDiscountCouponFriendRuleDetailMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="shop.alien.mapper.LifeDiscountCouponFriendRuleDetailMapper">
+
+    <resultMap id="BaseResultMap" type="shop.alien.entity.store.LifeDiscountCouponFriendRuleDetail">
+            <id property="id" column="id" />
+            <result property="ruleId" column="rule_id" />
+            <result property="couponId" column="coupon_id" />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,rule_id,coupon_id
+    </sql>
+
+    <insert id="insertList" parameterType="java.util.List">
+        INSERT INTO life_discount_coupon_friend_rule_detail (rule_id, coupon_id)
+        VALUES
+        <foreach collection="list" item="item" separator=",">
+            (#{item.ruleId}, #{item.couponId})
+        </foreach>
+    </insert>
+
+</mapper>

+ 18 - 0
alien-entity/src/main/resources/mapper/LifeDiscountCouponFriendRuleMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="shop.alien.mapper.LifeDiscountCouponFriendRuleMapper">
+
+    <resultMap id="BaseResultMap" type="shop.alien.entity.store.LifeDiscountCouponFriendRule">
+            <id property="id" column="id" />
+            <result property="acName" column="ac_name" />
+            <result property="moneyLow" column="money_low" />
+            <result property="moneyHigh" column="money_high" />
+            <result property="deleteFlag" column="delete_flag" />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,ac_name,money_low,money_high,delete_flag
+    </sql>
+</mapper>

+ 54 - 3
alien-store/src/main/java/shop/alien/store/controller/LifeDiscountCouponStoreFriendController.java

@@ -1,16 +1,20 @@
 package shop.alien.store.controller;
 
 import com.alibaba.fastjson.JSONObject;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
+import shop.alien.entity.store.LifeDiscountCouponFriendRule;
+import shop.alien.entity.store.LifeGroupBuyThali;
 import shop.alien.entity.store.UserLoginInfo;
 import shop.alien.entity.store.dto.LifeDiscountCouponStoreFriendDto;
+import shop.alien.entity.store.dto.LifeGroupBuyDto;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleDetailVo;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleVo;
 import shop.alien.entity.store.vo.LifeDiscountCouponStoreFriendVo;
+import shop.alien.entity.store.vo.LifeGroupBuyCountDateVo;
 import shop.alien.store.service.LifeDiscountCouponStoreFriendService;
 import shop.alien.util.common.TokenInfo;
 import springfox.documentation.annotations.ApiIgnore;
@@ -119,4 +123,51 @@ public class LifeDiscountCouponStoreFriendController {
         }
         return R.fail("删除失败");
     }
+
+    @ApiOperation("保存好友赠券规则")
+    @PostMapping("/saveFriendCouponRule")
+    public R saveFriendCouponRule(@RequestBody LifeDiscountCouponFriendRule lifeDiscountCouponFriendRule) {
+        log.info("LifeDiscountCouponStoreFriendController.saveFriendCouponRule?lifeDiscountCouponFriendRule={}", lifeDiscountCouponFriendRule.toString());
+        LifeDiscountCouponFriendRuleVo lifeDiscountCouponFriendRuleVo = lifeDiscountCouponStoreFriendService.saveFriendCouponRule(lifeDiscountCouponFriendRule);
+        return R.data(lifeDiscountCouponFriendRuleVo);
+    }
+
+    @ApiOperation("删除赠券规则")
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true)
+    })
+    @GetMapping("/delFriendCouponRule")
+    private R delFriendCouponRule(@RequestParam(value = "id") String id) {
+        log.info("LifeDiscountCouponStoreFriendController.delFriendCouponRule?id={}", id);
+        lifeDiscountCouponStoreFriendService.delFriendCouponRule(id);
+        return R.success("删除成功");
+    }
+
+    @ApiOperation("查询好友赠券")
+    @ApiImplicitParams({@ApiImplicitParam(name = "storeUserId", value = "当前登录店铺用户id", dataType = "String", paramType = "query", required = true)
+    ,@ApiImplicitParam(name = "friendStoreUserId", value = "选中好友店铺用户id", dataType = "String", paramType = "query", required = false)
+    })
+    @GetMapping("/getReceivedFriendCouponList")
+    private R<List<LifeDiscountCouponFriendRuleDetailVo>> getReceivedFriendCouponList(@RequestParam(value = "storeUserId") String storeUserId, @RequestParam(value = "friendStoreUserId",required = false)String friendStoreUserId) {
+        log.info("LifeDiscountCouponStoreFriendController.getReceivedFriendCouponList?storeId={},friendStoreUserId={}", storeUserId,friendStoreUserId);
+        return R.data(lifeDiscountCouponStoreFriendService.getReceivedFriendCouponList(storeUserId,friendStoreUserId));
+    }
+
+    @ApiOperation("查询赠券规则")
+    @ApiImplicitParams({@ApiImplicitParam(name = "storeId", value = "当前登录店铺id", dataType = "String", paramType = "query", required = true)
+    })
+    @GetMapping("/getRuleList")
+    private R<List<LifeDiscountCouponFriendRuleVo>> getRuleList(@RequestParam(value = "storeId") String storeId) {
+        log.info("LifeDiscountCouponStoreFriendController.getRuleList?storeId={}", storeId);
+        return R.data(lifeDiscountCouponStoreFriendService.getRuleList(storeId));
+    }
+
+    @ApiOperation("查询赠券记录")
+    @ApiImplicitParams({@ApiImplicitParam(name = "storeUserId", value = "好友赠我", dataType = "String", paramType = "query", required = false)
+            ,@ApiImplicitParam(name = "friendStoreUserId", value = "我赠好友", dataType = "String", paramType = "query", required = false)
+    })
+    @GetMapping("/getReceivedSendFriendCouponList")
+    private R<List<LifeDiscountCouponFriendRuleVo>> getReceivedSendFriendCouponList(@RequestParam(value = "storeUserId",required = false) String storeUserId, @RequestParam(value = "friendStoreUserId",required = false)String friendStoreUserId) {
+        log.info("LifeDiscountCouponStoreFriendController.getReceivedSendFriendCouponList?storeId={},friendStoreUserId={}", storeUserId,friendStoreUserId);
+        return R.data(lifeDiscountCouponStoreFriendService.getReceivedSendFriendCouponList(storeUserId,friendStoreUserId));
+    }
 }

+ 13 - 0
alien-store/src/main/java/shop/alien/store/service/LifeDiscountCouponStoreFriendService.java

@@ -1,9 +1,12 @@
 package shop.alien.store.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import shop.alien.entity.store.LifeDiscountCouponFriendRule;
 import shop.alien.entity.store.LifeDiscountCouponStoreFriend;
 import shop.alien.entity.store.UserLoginInfo;
 import shop.alien.entity.store.dto.LifeDiscountCouponStoreFriendDto;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleDetailVo;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleVo;
 import shop.alien.entity.store.vo.LifeDiscountCouponStoreFriendVo;
 
 import java.util.List;
@@ -45,4 +48,14 @@ public interface LifeDiscountCouponStoreFriendService extends IService<LifeDisco
      * @param releaseType
      */
     int releaseAndCancelFriendStoreCoupon(String giveCouponId, String releaseType);
+
+    LifeDiscountCouponFriendRuleVo saveFriendCouponRule(LifeDiscountCouponFriendRule lifeDiscountCouponFriendRule);
+
+    void delFriendCouponRule(String id);
+
+    List<LifeDiscountCouponFriendRuleDetailVo> getReceivedFriendCouponList(String storeUserId,String friendStoreUserId);
+
+    List<LifeDiscountCouponFriendRuleVo> getRuleList(String storeId);
+
+    List<LifeDiscountCouponFriendRuleVo> getReceivedSendFriendCouponList(String storeUserId, String friendStoreUserId);
 }

+ 67 - 0
alien-store/src/main/java/shop/alien/store/service/impl/LifeDiscountCouponStoreFriendServiceImpl.java

@@ -1,7 +1,9 @@
 package shop.alien.store.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
@@ -10,6 +12,8 @@ import org.springframework.beans.BeansException;
 import org.springframework.stereotype.Service;
 import shop.alien.entity.store.*;
 import shop.alien.entity.store.dto.LifeDiscountCouponStoreFriendDto;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleDetailVo;
+import shop.alien.entity.store.vo.LifeDiscountCouponFriendRuleVo;
 import shop.alien.entity.store.vo.LifeDiscountCouponStoreFriendVo;
 import shop.alien.entity.store.vo.LifeDiscountCouponVo;
 import shop.alien.mapper.*;
@@ -56,6 +60,10 @@ public class LifeDiscountCouponStoreFriendServiceImpl extends ServiceImpl<LifeDi
 
     private final LifeNoticeMapper lifeNoticeMapper;
 
+    private final LifeDiscountCouponFriendRuleMapper lifeDiscountCouponFriendRuleMapper;
+
+    private final LifeDiscountCouponFriendRuleDetailMapper lifeDiscountCouponFriendRuleDetailMapper;
+
     @Override
     public List<LifeDiscountCouponStoreFriendVo> getFriendCouponList(UserLoginInfo userLoginInfo, String friendUserId) {
         List<LifeDiscountCouponStoreFriendVo> result = new ArrayList<>();
@@ -353,4 +361,63 @@ public class LifeDiscountCouponStoreFriendServiceImpl extends ServiceImpl<LifeDi
                 .set(LifeDiscountCouponStoreFriend::getReleaseType, releaseType);
         return lifeDiscountCouponStoreFriendMapper.update(null, updateWrapper);
     }
+
+    @Override
+    public LifeDiscountCouponFriendRuleVo saveFriendCouponRule(LifeDiscountCouponFriendRule lifeDiscountCouponFriendRule) {
+        if (ObjectUtils.isNotEmpty(lifeDiscountCouponFriendRule.getId())) {
+            lifeDiscountCouponFriendRuleDetailMapper.delete(new LambdaQueryWrapper<LifeDiscountCouponFriendRuleDetail>().eq(LifeDiscountCouponFriendRuleDetail::getRuleId, lifeDiscountCouponFriendRule.getId()));
+            lifeDiscountCouponFriendRule.getDetails().forEach(detail -> detail.setRuleId(lifeDiscountCouponFriendRule.getId()));
+            lifeDiscountCouponFriendRuleDetailMapper.insertList(lifeDiscountCouponFriendRule.getDetails());
+            lifeDiscountCouponFriendRuleMapper.updateById(lifeDiscountCouponFriendRule);
+        }else {
+            lifeDiscountCouponFriendRuleMapper.insert(lifeDiscountCouponFriendRule);
+            if (ObjectUtils.isNotEmpty(lifeDiscountCouponFriendRule.getDetails())) {
+                lifeDiscountCouponFriendRule.getDetails().forEach(detail -> detail.setRuleId(lifeDiscountCouponFriendRule.getId()));
+                lifeDiscountCouponFriendRuleDetailMapper.insertList(lifeDiscountCouponFriendRule.getDetails());
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public void delFriendCouponRule(String id) {
+        lifeDiscountCouponFriendRuleDetailMapper.delete(new LambdaQueryWrapper<LifeDiscountCouponFriendRuleDetail>().eq(LifeDiscountCouponFriendRuleDetail::getRuleId, id));
+        lifeDiscountCouponFriendRuleMapper.deleteById(id);
+    }
+
+    /**
+     * 获取好友送的优惠券列表
+     *
+     * @param storeUserId 当前登录店铺用户id
+     * @param friendStoreUserId 选中好友店铺用户id
+     * @return 领取的优惠券列表
+     */
+    @Override
+    public List<LifeDiscountCouponFriendRuleDetailVo> getReceivedFriendCouponList(String storeUserId,String friendStoreUserId) {
+        QueryWrapper<LifeDiscountCouponFriendRuleDetailVo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("ldcsf.store_user_id", storeUserId);
+        queryWrapper.eq("ldcsf.delete_flag", 0);
+        //查询送过优惠券的店铺
+        if (StringUtils.isEmpty(friendStoreUserId)) {
+            queryWrapper.groupBy("ldcsf.friend_store_user_id").orderByDesc("couponNum");
+        }
+        //查询选中店铺送的优惠券
+        else {
+            queryWrapper.eq("ldcsf.friend_store_user_id", friendStoreUserId).groupBy("ldcsf.coupon_id").orderByDesc("couponNum");
+        }
+        return lifeDiscountCouponFriendRuleDetailMapper.getReceivedFriendCouponList(queryWrapper);
+    }
+
+    @Override
+    public List<LifeDiscountCouponFriendRuleVo> getRuleList(String storeId) {
+        return lifeDiscountCouponFriendRuleDetailMapper.getRuleList(storeId);
+    }
+
+    @Override
+    public List<LifeDiscountCouponFriendRuleVo> getReceivedSendFriendCouponList(String storeUserId, String friendStoreUserId) {
+        QueryWrapper<LifeDiscountCouponFriendRuleVo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotEmpty(friendStoreUserId),"ldcsf.store_user_id", storeUserId)
+                .eq(StringUtils.isNotEmpty(friendStoreUserId),"ldcsf.friend_store_user_id", friendStoreUserId);
+        return lifeDiscountCouponStoreFriendMapper.getReceivedSendFriendCouponList(queryWrapper);
+    }
 }