Przeglądaj źródła

赠券规则管理,评论bug

jyc 2 miesięcy temu
rodzic
commit
305c9b20a1

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

@@ -34,4 +34,18 @@ public class LifeDiscountCouponFriendRuleDetail {
     @ApiModelProperty(value = "优惠券id")
     @TableField("coupon_id")
     private Integer couponId;
+
+    /**
+     * 好友店铺id
+     */
+    @ApiModelProperty(value = "好友店铺id")
+    @TableField("friend_store_user_id")
+    private Integer friendStoreUserId;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty(value = "店铺id")
+    @TableField("store_id")
+    private Integer storeId;
 }

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

@@ -27,6 +27,12 @@ public class LifeDiscountCouponFriendRuleVo extends LifeDiscountCouponFriendRule
     @ApiModelProperty(value = "店铺名称")
     private String storeName;
 
+    @ApiModelProperty(value = "0启用/1禁用")
+    private String status;
+
+    @ApiModelProperty(value = "img")
+    private String imgUrl;
+
     @ApiModelProperty(value = "优惠券名称")
     private String couponName;
 

+ 16 - 3
alien-entity/src/main/java/shop/alien/mapper/LifeDiscountCouponFriendRuleDetailMapper.java

@@ -27,12 +27,25 @@ public interface LifeDiscountCouponFriendRuleDetailMapper extends BaseMapper<Lif
 
     @Select("SELECT\n" +
             "\ta.*,\n" +
-            "\tMAX( c.end_date ) endDate \n" +
+            "\t(select MAX( end_get_date ) from life_discount_coupon c left join life_discount_coupon_friend_rule_detail b on c.id = b.coupon_id where b.rule_id = a.id) 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")
+            "\t where a.store_id = #{storeId} and a.delete_flag = 0 order by endDate")
     List<LifeDiscountCouponFriendRuleVo> getRuleList(@Param("storeId")String storeId);
+
+    @Select("SELECT a.*, c.name as couponName, c.id as couponId,si.store_name storeName, " +
+            "(SELECT\n" +
+            "\t\tsum( single_qty ) \n" +
+            "\tFROM\n" +
+            "\t\tlife_discount_coupon_store_friend b\n" +
+            "\tWHERE\n" +
+            "\t\tb.friend_store_user_id = a.friend_store_user_id \n" +
+            "\t\tAND b.coupon_id = a.coupon_id \n" +
+            "\t\tAND b.store_user_id = a.store_id) couponNum " +
+            "FROM life_discount_coupon_friend_rule_detail a " +
+            "LEFT JOIN life_discount_coupon c ON a.coupon_id = c.id LEFT JOIN store_info si on c.store_id = si.id " +
+            "WHERE a.rule_id = #{ruleId}")
+    List<LifeDiscountCouponFriendRuleDetailVo> getDetailList(@Param("ruleId")String ruleId);
 }
 
 

+ 2 - 1
alien-entity/src/main/java/shop/alien/mapper/LifeDiscountCouponStoreFriendMapper.java

@@ -35,7 +35,7 @@ public interface LifeDiscountCouponStoreFriendMapper extends BaseMapper<LifeDisc
             "${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" +
+    @Select("select ldcsf.created_time endDate,ldc.nominal_value nominalValue,ldc.minimum_spending_amount minimumSpendingAmount,su.head_img imgUrl,\n" +
             "si.store_name storeName,\n" +
             "ldc.name couponName,\n" +
             "ldcsf.single_qty couponNum\n" +
@@ -44,6 +44,7 @@ public interface LifeDiscountCouponStoreFriendMapper extends BaseMapper<LifeDisc
             "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" +
+            "left join store_user su on si.id = su.store_id\n" +
             "${ew.customSqlSegment}")
     List<LifeDiscountCouponFriendRuleVo> getReceivedSendFriendCouponList(@Param(Constants.WRAPPER) QueryWrapper<LifeDiscountCouponFriendRuleVo> lifeDiscountCouponFriendRuleVoQueryWrapper);
 }

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

@@ -15,10 +15,10 @@
     </sql>
 
     <insert id="insertList" parameterType="java.util.List">
-        INSERT INTO life_discount_coupon_friend_rule_detail (rule_id, coupon_id)
+        INSERT INTO life_discount_coupon_friend_rule_detail (rule_id, coupon_id, friend_store_user_id,store_id)
         VALUES
         <foreach collection="list" item="item" separator=",">
-            (#{item.ruleId}, #{item.couponId})
+            (#{item.ruleId}, #{item.couponId}, #{item.friendStoreUserId}, #{item.storeId})
         </foreach>
     </insert>
 

+ 9 - 0
alien-store/src/main/java/shop/alien/store/controller/LifeDiscountCouponStoreFriendController.java

@@ -142,6 +142,15 @@ public class LifeDiscountCouponStoreFriendController {
         return R.success("删除成功");
     }
 
+    @ApiOperation("查询赠券规则明细")
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true)
+    })
+    @GetMapping("/getRuleById")
+    private R<LifeDiscountCouponFriendRuleVo> getRuleById(@RequestParam(value = "id") String id) {
+        log.info("LifeDiscountCouponStoreFriendController.getRuleById?id={}", id);
+        return R.data(lifeDiscountCouponStoreFriendService.getRuleById(id));
+    }
+
     @ApiOperation("查询好友赠券")
     @ApiImplicitParams({@ApiImplicitParam(name = "storeId", value = "当前登录店铺id", dataType = "String", paramType = "query", required = true)
     ,@ApiImplicitParam(name = "friendStoreUserId", value = "选中好友店铺用户id", dataType = "String", paramType = "query", required = false)

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

@@ -57,5 +57,7 @@ public interface LifeDiscountCouponStoreFriendService extends IService<LifeDisco
 
     List<LifeDiscountCouponFriendRuleVo> getRuleList(String storeId);
 
+    LifeDiscountCouponFriendRuleVo getRuleById(String id);
+
     List<LifeDiscountCouponFriendRuleVo> getReceivedSendFriendCouponList(String storeUserId, String friendStoreUserId);
 }

+ 24 - 3
alien-store/src/main/java/shop/alien/store/service/impl/LifeDiscountCouponStoreFriendServiceImpl.java

@@ -365,9 +365,13 @@ public class LifeDiscountCouponStoreFriendServiceImpl extends ServiceImpl<LifeDi
     @Override
     public LifeDiscountCouponFriendRuleVo saveFriendCouponRule(LifeDiscountCouponFriendRule lifeDiscountCouponFriendRule) {
         if (ObjectUtils.isNotEmpty(lifeDiscountCouponFriendRule.getId())) {
+            List<LifeDiscountCouponFriendRuleDetail> details = lifeDiscountCouponFriendRule.getDetails();
             lifeDiscountCouponFriendRuleDetailMapper.delete(new LambdaQueryWrapper<LifeDiscountCouponFriendRuleDetail>().eq(LifeDiscountCouponFriendRuleDetail::getRuleId, lifeDiscountCouponFriendRule.getId()));
-            lifeDiscountCouponFriendRule.getDetails().forEach(detail -> detail.setRuleId(lifeDiscountCouponFriendRule.getId()));
-            lifeDiscountCouponFriendRuleDetailMapper.insertList(lifeDiscountCouponFriendRule.getDetails());
+            for (LifeDiscountCouponFriendRuleDetail detail : details) {
+                detail.setRuleId(lifeDiscountCouponFriendRule.getId());
+                detail.setStoreId(lifeDiscountCouponFriendRule.getStoreId());
+            }
+            lifeDiscountCouponFriendRuleDetailMapper.insertList(details);
             lifeDiscountCouponFriendRuleMapper.updateById(lifeDiscountCouponFriendRule);
         }else {
             lifeDiscountCouponFriendRuleMapper.insert(lifeDiscountCouponFriendRule);
@@ -397,6 +401,7 @@ public class LifeDiscountCouponStoreFriendServiceImpl extends ServiceImpl<LifeDi
         QueryWrapper<LifeDiscountCouponFriendRuleDetailVo> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("ldcsf.store_user_id", storeId);
         queryWrapper.eq("ldcsf.delete_flag", 0);
+        queryWrapper.eq("ldcsf.release_type", 1);
         //查询送过优惠券的店铺
         if (StringUtils.isEmpty(friendStoreUserId)) {
             queryWrapper.groupBy("ldcsf.friend_store_user_id").orderByDesc("couponNum");
@@ -410,7 +415,23 @@ public class LifeDiscountCouponStoreFriendServiceImpl extends ServiceImpl<LifeDi
 
     @Override
     public List<LifeDiscountCouponFriendRuleVo> getRuleList(String storeId) {
-        return lifeDiscountCouponFriendRuleDetailMapper.getRuleList(storeId);
+        List<LifeDiscountCouponFriendRuleVo> ruleList = lifeDiscountCouponFriendRuleDetailMapper.getRuleList(storeId);
+        if (ObjectUtils.isNotEmpty(ruleList)) {
+            ruleList.forEach(i -> i.setStatus(i.getEndDate().after(new Date()) ? "0" : "1"));
+        }
+        return ruleList;
+    }
+
+    @Override
+    public LifeDiscountCouponFriendRuleVo getRuleById(String id) {
+        LifeDiscountCouponFriendRule lifeDiscountCouponFriendRule = lifeDiscountCouponFriendRuleMapper.selectById(id);
+        LifeDiscountCouponFriendRuleVo ruleVo = new LifeDiscountCouponFriendRuleVo();
+        BeanUtils.copyProperties(lifeDiscountCouponFriendRule, ruleVo);
+        if (ObjectUtils.isNotEmpty(lifeDiscountCouponFriendRule)) {
+            List<LifeDiscountCouponFriendRuleDetailVo> lifeDiscountCouponFriendRuleDetails = lifeDiscountCouponFriendRuleDetailMapper.getDetailList(lifeDiscountCouponFriendRule.getId().toString());
+            ruleVo.setLifeDiscountCouponFriendRuleDetailVos(lifeDiscountCouponFriendRuleDetails);
+        }
+        return ruleVo;
     }
 
     @Override