diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbShopCouponController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbShopCouponController.java index 7e0047e..641d310 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbShopCouponController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbShopCouponController.java @@ -4,6 +4,7 @@ import com.chaozhanggui.system.cashierservice.entity.dto.CouponDto; import com.chaozhanggui.system.cashierservice.service.TbShopCouponService; import com.chaozhanggui.system.cashierservice.sign.Result; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -29,7 +30,7 @@ public class TbShopCouponController { * @return 查询结果 */ @RequestMapping("find") - public Result find(@RequestBody CouponDto param) { + public Result find(@Validated @RequestBody CouponDto param) { return tbShopCouponService.find(param); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateInRecordMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateInRecordMapper.java index 6213860..a69145f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateInRecordMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateInRecordMapper.java @@ -31,10 +31,9 @@ public interface TbActivateInRecordMapper { List queryAll(TbActivateInRecord tbActivateInRecord); //未使用券 - List queryByVipIdAndShopId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId); - List queryByVipIdAndShopIdIn(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId); + List queryByVipIdAndShopId(@Param("vipUserIds") List vipUserIds, @Param("shopId") Integer shopId); //过期券 - List queryByVipIdAndShopIdExpire(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId); + List queryByVipIdAndShopIdExpire(@Param("vipUserIds") List vipUserIds, @Param("shopId") Integer shopId); int countCouponNum(@Param("userId") Integer userId); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateOutRecordMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateOutRecordMapper.java index 9fa28a6..6c9d6f7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateOutRecordMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbActivateOutRecordMapper.java @@ -32,7 +32,7 @@ public interface TbActivateOutRecordMapper { */ List queryAll(TbActivateOutRecord tbActivateOutRecord, @Param("pageable") Pageable pageable); - List queryByVipIdAndShopId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId); + List queryByVipIdAndShopId(@Param("vipUserIds") List vipUserIds, @Param("shopId") Integer shopId); /** * 新增数据 diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/CouponDto.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/CouponDto.java index 3e18d1e..a5165da 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/CouponDto.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/CouponDto.java @@ -1,11 +1,15 @@ package com.chaozhanggui.system.cashierservice.entity.dto; import lombok.Data; + +import javax.validation.constraints.NotNull; + @Data public class CouponDto { private Integer shopId; private Integer userId; //-1已过期 1未使用 2已使用 + @NotNull(message = "状态不允许为空") private Integer status; private Integer orderId; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopCouponServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopCouponServiceImpl.java index 3484c52..c4cb107 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopCouponServiceImpl.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopCouponServiceImpl.java @@ -43,9 +43,10 @@ public class TbShopCouponServiceImpl implements TbShopCouponService { @Resource private TbActivateOutRecordMapper outRecordMapper; + @Override public List getActivateCouponByAmount(Integer shopId, String userId, BigDecimal amount) { TbShopUser tbShopUser = shopUserMapper.selectByUserIdAndShopId(userId, String.valueOf(shopId)); - List tbUserCouponVos = inRecordMapper.queryByVipIdAndShopId(Integer.valueOf(tbShopUser.getId()), shopId); + List tbUserCouponVos = inRecordMapper.queryByVipIdAndShopId(Arrays.asList(Integer.valueOf(tbShopUser.getId())), shopId); ArrayList canUseCoupon = new ArrayList<>(); if (CollectionUtil.isNotEmpty(tbUserCouponVos)) { String week = DateUtil.dayOfWeekEnum(new Date()).toChinese("周"); @@ -112,13 +113,13 @@ public class TbShopCouponServiceImpl implements TbShopCouponService { @Override public Result find(CouponDto param) { - TbShopUser tbShopUser = shopUserMapper.selectByUserIdAndShopId(param.getUserId().toString(), param.getShopId().toString()); if (param.getOrderId() != null) { + TbShopUser tbShopUser = shopUserMapper.selectByUserIdAndShopId(param.getUserId().toString(), param.getShopId().toString()); TbOrderInfo tbOrderInfo = orderInfoMapper.selectByPrimaryKey(param.getOrderId()); List tbOrderDetails = orderDetailMapper.selectAllByOrderId(param.getOrderId()); Set pros = tbOrderDetails.stream().map(TbOrderDetail::getProductId).collect(Collectors.toSet()); if (CollectionUtil.isNotEmpty(tbOrderDetails)) { - List tbUserCouponVos = inRecordMapper.queryByVipIdAndShopId(Integer.valueOf(tbShopUser.getId()), param.getShopId()); + List tbUserCouponVos = inRecordMapper.queryByVipIdAndShopId(Arrays.asList(Integer.valueOf(tbShopUser.getId())), param.getShopId()); if (CollectionUtil.isNotEmpty(tbUserCouponVos)) { String week = DateUtil.dayOfWeekEnum(new Date()).toChinese("周"); LocalTime now = LocalTime.now(); @@ -145,12 +146,14 @@ public class TbShopCouponServiceImpl implements TbShopCouponService { } } } else { + List tbShopUser = shopUserMapper.selectAllByUserId(param.getUserId().toString()); + List ids = tbShopUser.stream().map(TbShopUser::getId).map(Integer::valueOf).collect(Collectors.toList()); if (param.getStatus().equals(1)) { - return new Result(CodeEnum.SUCCESS, inRecordMapper.queryByVipIdAndShopId(Integer.valueOf(tbShopUser.getId()), param.getShopId())); + return new Result(CodeEnum.SUCCESS, inRecordMapper.queryByVipIdAndShopId(ids, param.getShopId())); } else if (param.getStatus().equals(-1)) { - return new Result(CodeEnum.SUCCESS, inRecordMapper.queryByVipIdAndShopIdExpire(Integer.valueOf(tbShopUser.getId()), param.getShopId())); + return new Result(CodeEnum.SUCCESS, inRecordMapper.queryByVipIdAndShopIdExpire(ids, param.getShopId())); } else if (param.getStatus().equals(2)) { - return new Result(CodeEnum.SUCCESS, outRecordMapper.queryByVipIdAndShopId(Integer.valueOf(tbShopUser.getId()), param.getShopId())); + return new Result(CodeEnum.SUCCESS, outRecordMapper.queryByVipIdAndShopId(ids, param.getShopId())); } } return new Result(CodeEnum.SUCCESS); diff --git a/src/main/resources/mapper/TbActivateInRecordMapper.xml b/src/main/resources/mapper/TbActivateInRecordMapper.xml index 6f431e4..77825dd 100644 --- a/src/main/resources/mapper/TbActivateInRecordMapper.xml +++ b/src/main/resources/mapper/TbActivateInRecordMapper.xml @@ -49,10 +49,18 @@ id, vip_user_id, coupon_id, name, type, pro_id, full_amount, discount_amount, nu inRecord.use_end_time as endTime FROM tb_activate_in_record inRecord - LEFT JOIN tb_product pro ON inRecord.pro_id = pro.id and pro.shop_id = #{shopId} + LEFT JOIN tb_product pro ON inRecord.pro_id = pro.id + + and pro.shop_id = #{shopId} + WHERE - inRecord.vip_user_id = #{vipUserId} - and inRecord.shop_id = #{shopId} + inRecord.vip_user_id in + + #{item} + + + and inRecord.shop_id = #{shopId} + and inRecord.over_num != 0 and inRecord.use_start_time < now() and inRecord.use_end_time > now() @@ -70,30 +78,20 @@ id, vip_user_id, coupon_id, name, type, pro_id, full_amount, discount_amount, nu inRecord.use_end_time as endTime FROM tb_activate_in_record inRecord - LEFT JOIN tb_product pro ON inRecord.pro_id = pro.id and pro.shop_id = #{shopId} + LEFT JOIN tb_product pro ON inRecord.pro_id = pro.id + + and pro.shop_id = #{shopId} + WHERE - inRecord.vip_user_id = #{vipUserId} - and inRecord.shop_id = #{shopId} - and inRecord.over_num != 0 - and inRecord.use_end_time < now() - order by inRecord.use_end_time asc - - - diff --git a/src/main/resources/mapper/TbActivateOutRecordMapper.xml b/src/main/resources/mapper/TbActivateOutRecordMapper.xml index b1a5da6..df0e2e1 100644 --- a/src/main/resources/mapper/TbActivateOutRecordMapper.xml +++ b/src/main/resources/mapper/TbActivateOutRecordMapper.xml @@ -41,15 +41,24 @@ tb_activate_out_record outRecord INNER JOIN tb_activate_in_record inRecord on outRecord.give_id = inRecord.id - and inRecord.shop_id = #{shopId} - and inRecord.vip_user_id = #{vipUserId} + + and inRecord.shop_id = #{shopId} + LEFT JOIN tb_product pro - ON inRecord.pro_id = pro.id and pro.shop_id = #{shopId} + ON inRecord.pro_id = pro.id + + and pro.shop_id = #{shopId} + WHERE - outRecord.vip_user_id = #{vipUserId} - and outRecord.shop_id = #{shopId} - and outRecord.status = 'closed' - and outRecord.use_num-outRecord.ref_num >0 + outRecord.vip_user_id in + + #{item} + + + and outRecord.shop_id = #{shopId} + + and outRecord.status = 'closed' + and outRecord.use_num-outRecord.ref_num >0 order by outRecord.create_time desc