From 631a5aa09e0147ca81fffcb1434e57b1cd1ba6f6 Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期三, 09 八月 2023 09:34:53 +0800 Subject: [PATCH] app端口:积分变动记录增加变动类型字段,代码同步更新;积分兑换操作的数量校验功能完善 --- cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/AppUserGoodResp.java | 21 ++++++++++ cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 26 ++++-------- cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java | 1 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java | 4 ++ cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 26 ++++++++++-- cloud-server-activity/src/main/java/com/dsh/activity/model/request/AppUserGoodResp.java | 21 ++++++++++ 6 files changed, 77 insertions(+), 22 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java index 1b3d580..89f7713 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java @@ -49,4 +49,8 @@ @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode") public List<UserPointsMerchandise> queryUserPointMerchaseByCode(@RequestBody String code); + + + @PostMapping("/base/pointMerchars/queryUserHasGoodsNums") + int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/AppUserGoodResp.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/AppUserGoodResp.java new file mode 100644 index 0000000..8bf7be0 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/AppUserGoodResp.java @@ -0,0 +1,21 @@ +package com.dsh.account.feignclient.activity.model; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AppUserGoodResp { + /** + * 用户id + */ + Integer appUserId; + /** + * 商品id + */ + Integer goodId; + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java index ff27ba9..98b8e2f 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java @@ -868,29 +868,20 @@ if (ToolUtil.isEmpty(tAppUser)){ return ResultUtil.error("用户不存在"); } -// todo 积分商品明细 查询是否超出限领数量 - switch (exchangeType.getGoodsType()){ - case 1: - - break; - case 2: - - break; - case 3: - - break; - case 4: - - break; - default: - break; - } int goodsNums = 0; if (ToolUtil.isEmpty(exchangeType.getNums())){ goodsNums = 1; }else { goodsNums = exchangeType.getNums(); } + AppUserGoodResp goodResp = new AppUserGoodResp(); + goodResp.setAppUserId(userIdFormRedis); + goodResp.setGoodId(merchandise.getId()); + int count = mcClient.queryUserHasGoodsNums(goodResp); + if (ToolUtil.isNotEmpty(count) && count >= merchandise.getPickUpQuantity()){ + return ResultUtil.error("超过限领数量"); + } + for (int i = 0; i < goodsNums; i++) { // 新增积分商品兑换记录 UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise(); @@ -1133,6 +1124,7 @@ appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points); userIntegralChanges.setNewIntegral(appUser.getIntegral()); userIntegralChanges.setInsertTime(new Date()); + userIntegralChanges.setCategory(2); uicMapper.insert(userIntegralChanges); this.baseMapper.updateById(appUser); diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java index e4fa974..753b6a0 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java @@ -121,6 +121,7 @@ appUser.setIntegral(appUser.getIntegral() + vo.getIntegral()); userIntegralChanges.setNewIntegral(appUser.getIntegral()); userIntegralChanges.setInsertTime(new Date()); + userIntegralChanges.setCategory(1); this.save(userIntegralChanges); } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java index 857f6f4..0c446a5 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java @@ -12,6 +12,7 @@ import com.dsh.activity.feignclient.other.StoreClient; import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse; import com.dsh.activity.model.PointMerchandiseVo; +import com.dsh.activity.model.request.AppUserGoodResp; import com.dsh.activity.model.request.CommodityRequest; import com.dsh.activity.service.*; import com.dsh.activity.util.GDMapGeocodingUtil; @@ -160,7 +161,7 @@ int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>() .eq("pointsMerchandiseId",merchandise.getId() )); detailsVo.setRedeemedNum(coursePackageNums); - detailsVo.setResidueNum(merchandise.getQuantityIssued() - coursePackageNums); + detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0)); detailsVo.setPerLimit(merchandise.getPickUpQuantity()); if (merchandise.getRedemptionMethod() == 1){ detailsVo.setExchangeType(1); @@ -224,7 +225,7 @@ int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>() .eq("pointsMerchandiseId",merchandise.getId() )); detailsVo.setRedeemedNum(count); - detailsVo.setResidueNum(merchandise.getQuantityIssued()-count); + detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0)); detailsVo.setPerLimit(merchandise.getPickUpQuantity()); detailsVo.setExchangeType(merchandise.getRedemptionMethod()); if (merchandise.getRedemptionMethod() == 1){ @@ -276,10 +277,10 @@ }); detailsVo.setGoodName(coupon.getName()); detailsVo.setBelongsScope(coupon.getUserPopulation()); - int couponNums = uconService.count(new QueryWrapper<UserCoupon>() - .eq("couponId",coupon.getId() )); + int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>() + .eq("pointsMerchandiseId",merchandise.getId() )); detailsVo.setRedeemedNum(couponNums); - detailsVo.setResidueNum(coupon.getQuantityIssued()-couponNums); + detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponNums, 0)); detailsVo.setPerLimit(coupon.getPickUpQuantity()); detailsVo.setExchangeType(coupon.getRedemptionMethod()); if (coupon.getRedemptionMethod() == 1){ @@ -489,4 +490,19 @@ return storeIds; } + /** + * 获取用户已兑换商品的数量 + * @param goodResp + * @return 数量 + */ + @ResponseBody + @PostMapping("/base/pointMerchars/queryUserHasGoodsNums") + public int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp){ + int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getUserId,goodResp.getGoodId()) + .eq(UserPointsMerchandise::getPointsMerchandiseId,goodResp.getGoodId())); + System.out.println(count); + return count; + } + } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/AppUserGoodResp.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/AppUserGoodResp.java new file mode 100644 index 0000000..e584e8a --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/AppUserGoodResp.java @@ -0,0 +1,21 @@ +package com.dsh.activity.model.request; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AppUserGoodResp { + /** + * 用户id + */ + Integer appUserId; + /** + * 商品id + */ + Integer goodId; + +} -- Gitblit v1.7.1