Selaa lähdekoodia

获取可用的优惠券

xuhaifeng 9 kuukautta sitten
vanhempi
commit
7e3225d600

+ 1 - 0
yiqi-admin/src/main/java/com/yiqi/admin/controller/app/AppCouponItemController.java

@@ -67,6 +67,7 @@ public class AppCouponItemController extends BaseController {
                         .in(ClothItem::getId, appCouponItemQueryByAppUserIdDTO.getClothIds())).stream()
                 .collect(Collectors.toMap(ClothItem::getId, ClothItem -> ClothItem));
         appCouponItemQueryByAppUserIdDTO.setDiscountWay(null);
+        appCouponItemQueryByAppUserIdDTO.setStoreId(getStoreId());
         List<AppCouponItemVO> appCouponItemVOS = appCouponItemService.getlistByAppUserId(appCouponItemQueryByAppUserIdDTO);
         if (appCouponItemVOS == null || appCouponItemVOS.size() == 0) {
             return R.ok(appCouponItemVOS);

+ 41 - 0
yiqi-api/src/main/java/com/yiqi/api/controller/WeAppCouponItemController.java

@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yiqi.app.domain.AppCouponItem;
 import com.yiqi.app.domain.AppCouponTypeApplyCloth;
+import com.yiqi.app.domain.dto.AppCouponItemQueryByAppUserIdDTO;
 import com.yiqi.app.domain.dto.weapp.WeAppCouponItemQueryDTO;
+import com.yiqi.app.domain.vo.AppCouponItemVO;
+import com.yiqi.app.domain.vo.AppCouponTypeApplyClothVO;
 import com.yiqi.app.domain.vo.weapp.AppCouponItemListVO;
 import com.yiqi.app.service.IAppCouponItemService;
 import com.yiqi.app.service.IAppCouponTypeApplyClothService;
@@ -17,6 +20,7 @@ import com.yiqi.common.core.domain.AuthHolder;
 import com.yiqi.common.core.domain.R;
 import com.yiqi.common.enums.DeleteStatus;
 import com.yiqi.common.enums.SysBoolType;
+import com.yiqi.common.exception.ServiceException;
 import com.yiqi.common.utils.DateUtils;
 import com.yiqi.common.utils.StringUtils;
 import com.yiqi.common.utils.bean.BeanUtils;
@@ -91,6 +95,43 @@ public class WeAppCouponItemController extends BaseController {
         return R.ok(voList);
     }
 
+    @PostMapping(value = "getlistByAppUserId")
+    @ApiOperation("下单选择客户可使用的优惠券")
+    public R<List<AppCouponItemVO>> getlistByAppUserId(@RequestBody @Valid AppCouponItemQueryByAppUserIdDTO appCouponItemQueryByAppUserIdDTO) throws Exception {
+        if (appCouponItemQueryByAppUserIdDTO.getClothIds() == null || appCouponItemQueryByAppUserIdDTO.getClothIds().size() == 0) {
+            throw new ServiceException("未选择衣服");
+        }
+        Map<Long, ClothItem> clothItemMap = clothItemService.list(new QueryWrapper<ClothItem>().lambda()
+                        .in(ClothItem::getId, appCouponItemQueryByAppUserIdDTO.getClothIds())).stream()
+                .collect(Collectors.toMap(ClothItem::getId, ClothItem -> ClothItem));
+        appCouponItemQueryByAppUserIdDTO.setDiscountWay(null);
+        List<AppCouponItemVO> appCouponItemVOS = appCouponItemService.getlistByAppUserId(appCouponItemQueryByAppUserIdDTO);
+        if (appCouponItemVOS == null || appCouponItemVOS.size() == 0) {
+            return R.ok(appCouponItemVOS);
+        }
+        List<AppCouponTypeApplyCloth> appCouponTypeApplyCloths = appCouponTypeApplyClothService.list(
+                new QueryWrapper<AppCouponTypeApplyCloth>().lambda()
+                        .in(AppCouponTypeApplyCloth::getCouponTypeId
+                                , appCouponItemVOS.stream().map(AppCouponItemVO::getCouponTypeId).collect(Collectors.toSet()))
+                        .in(AppCouponTypeApplyCloth::getClothItemId, appCouponItemQueryByAppUserIdDTO.getClothIds()));
+        List<AppCouponTypeApplyClothVO> appCouponTypeApplyClothVOS = new ArrayList<>();
+        for (AppCouponTypeApplyCloth appCouponTypeApplyCloth : appCouponTypeApplyCloths) {
+            AppCouponTypeApplyClothVO appCouponTypeApplyClothVO = new AppCouponTypeApplyClothVO();
+            org.springframework.beans.BeanUtils.copyProperties(appCouponTypeApplyCloth, appCouponTypeApplyClothVO);
+            appCouponTypeApplyClothVO.setClothItemName(clothItemMap.get(appCouponTypeApplyCloth.getClothItemId()).getName());
+            appCouponTypeApplyClothVOS.add(appCouponTypeApplyClothVO);
+        }
+        Map<Long, List<AppCouponTypeApplyClothVO>> appCouponTypeApplyClothMap = appCouponTypeApplyClothVOS.stream()
+                .collect(Collectors.groupingBy(AppCouponTypeApplyClothVO::getCouponTypeId));
+
+        for (AppCouponItemVO appCouponItemVO : appCouponItemVOS) {
+            if (appCouponItemVO.getUseScope().equals(2)) {
+                appCouponItemVO.setAppCouponTypeApplyClothVOS(appCouponTypeApplyClothMap.get(appCouponItemVO.getCouponTypeId()));
+            }
+        }
+        return R.ok(appCouponItemVOS);
+    }
+
     private String getIsValidBy(AppCouponItem appCouponItem) {
         if (appCouponItem == null) {
             return SysBoolType.NO.getCode();

+ 2 - 0
yiqi-common/src/main/java/com/yiqi/app/domain/dto/AppCouponItemQueryByAppUserIdDTO.java

@@ -13,6 +13,8 @@ import java.util.List;
 @Data
 public class AppCouponItemQueryByAppUserIdDTO {
 
+    private Long storeId;
+
     @NotNull(message = "客户ID不能为空")
     @ApiModelProperty("客户ID")
     private Long appUserId;

+ 5 - 0
yiqi-common/src/main/java/com/yiqi/app/domain/vo/weapp/AppCouponItemListVO.java

@@ -140,6 +140,11 @@ public class AppCouponItemListVO extends BaseEntity
     @ApiModelProperty("抵扣充值金额")
     private BigDecimal deductRechargeAmount;
 
+    /**
+     * 适用范围 1:全部衣服 2:指定衣服
+     */
+    private Integer useScope;
+
     @ApiModelProperty("优惠券使用范围(0=仅本店可用,1=参与门店可用)")
     private String storeScope;
 

+ 1 - 2
yiqi-core/src/main/java/com/yiqi/app/mapper/AppCouponItemMapper.java

@@ -24,8 +24,7 @@ public interface AppCouponItemMapper extends BaseMapper<AppCouponItem> {
 
     public List<SysOrg> orgListByCouponId(@Param("couponItemId") Long couponItemId);
 
-    public List<AppCouponItemVO> getlistByAppUserId(@Param("appCouponItemQueryByAppUserIdDTO") AppCouponItemQueryByAppUserIdDTO appCouponItemQueryByAppUserIdDTO
-            , @Param("orgId") long orgId,@Param("sourceType") String sourceType);
+    public List<AppCouponItemVO> getlistByAppUserId(@Param("appCouponItemQueryByAppUserIdDTO") AppCouponItemQueryByAppUserIdDTO appCouponItemQueryByAppUserIdDTO);
 
     /**
      * 查询优惠券

+ 1 - 1
yiqi-core/src/main/java/com/yiqi/app/service/impl/AppCouponItemServiceImpl.java

@@ -65,7 +65,7 @@ public class AppCouponItemServiceImpl extends ServiceImpl<AppCouponItemMapper, A
 
     @Override
     public List<AppCouponItemVO> getlistByAppUserId(AppCouponItemQueryByAppUserIdDTO appCouponItemQueryByAppUserIdDTO) {
-        return baseMapper.getlistByAppUserId(appCouponItemQueryByAppUserIdDTO, SecurityUtils.getLoginUser().getOrgId(), SecurityUtils.getLoginUser().getSourceType());
+        return baseMapper.getlistByAppUserId(appCouponItemQueryByAppUserIdDTO);
     }
 
     /**

+ 1 - 1
yiqi-core/src/main/resources/mapper/app/AppCouponItemMapper.xml

@@ -90,7 +90,7 @@
                 #{clothId}
             </foreach>
         )))
-        and FIND_IN_SET(#{orgId}, c.store_ids)
+        and FIND_IN_SET(#{appCouponItemQueryByAppUserIdDTO.storeId}, c.store_ids)
         <![CDATA[and c.start_date <= now()]]>
         <![CDATA[and c.end_date >= now()]]>
         <if test="appCouponItemQueryByAppUserIdDTO.appUserId != null">