diff --git a/buyer-api/src/main/java/cn/lili/controller/trade/WalletLogBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/trade/WalletLogBuyerController.java index 3da33ba4..aabb6b58 100644 --- a/buyer-api/src/main/java/cn/lili/controller/trade/WalletLogBuyerController.java +++ b/buyer-api/src/main/java/cn/lili/controller/trade/WalletLogBuyerController.java @@ -37,7 +37,8 @@ public class WalletLogBuyerController { //获取当前登录用户 AuthUser authUser = UserContext.getCurrentUser(); //构建查询 返回数据 - IPage depositLogPage = walletLogService.page(PageUtil.initPage(page), new QueryWrapper().eq("member_id", authUser.getId())); + IPage depositLogPage = walletLogService.page(PageUtil.initPage(page), + new QueryWrapper().eq("member_id", authUser.getId()).orderByDesc("create_time")); return ResultUtil.data(depositLogPage); } } diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/dos/CategoryParameterGroup.java b/framework/src/main/java/cn/lili/modules/goods/entity/dos/CategoryParameterGroup.java index 5c97992d..3737862d 100644 --- a/framework/src/main/java/cn/lili/modules/goods/entity/dos/CategoryParameterGroup.java +++ b/framework/src/main/java/cn/lili/modules/goods/entity/dos/CategoryParameterGroup.java @@ -41,7 +41,7 @@ public class CategoryParameterGroup extends BaseEntity { @NotNull(message = "关联的分类不能为空") private String categoryId; /** - * + * 排序 */ @ApiModelProperty(value = "排序", hidden = true) private Integer sort; diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java index b93dbeca..a2560973 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java @@ -16,13 +16,16 @@ import cn.lili.config.rocketmq.RocketmqCustomProperties; import cn.lili.modules.goods.entity.dos.Category; import cn.lili.modules.goods.entity.dos.Goods; import cn.lili.modules.goods.entity.dos.GoodsGallery; +import cn.lili.modules.goods.entity.dos.Parameters; import cn.lili.modules.goods.entity.dto.GoodsOperationDTO; import cn.lili.modules.goods.entity.dto.GoodsParamsDTO; +import cn.lili.modules.goods.entity.dto.GoodsParamsItemDTO; import cn.lili.modules.goods.entity.dto.GoodsSearchParams; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.vos.GoodsSkuVO; import cn.lili.modules.goods.entity.vos.GoodsVO; +import cn.lili.modules.goods.entity.vos.ParameterGroupVO; import cn.lili.modules.goods.mapper.GoodsMapper; import cn.lili.modules.goods.service.*; import cn.lili.modules.member.entity.dos.MemberEvaluation; @@ -84,6 +87,8 @@ public class GoodsServiceImpl extends ServiceImpl implements //rocketMq配置 @Autowired private RocketmqCustomProperties rocketmqCustomProperties; + @Autowired + private CategoryParameterGroupService categoryParameterGroupService; @Override @@ -108,6 +113,9 @@ public class GoodsServiceImpl extends ServiceImpl implements this.setGoodsGalleryParam(goodsOperationDTO.getGoodsGalleryList().get(0), goods); //添加商品参数 if (goodsOperationDTO.getGoodsParamsDTOList() != null && !goodsOperationDTO.getGoodsParamsDTOList().isEmpty()) { + //检测商品参数是否合法 + //this.checkGoodsParams(goodsOperationDTO.getGoodsParamsDTOList(), goodsOperationDTO.getCategoryPath().substring(goodsOperationDTO.getCategoryPath().lastIndexOf(",") + 1)); + //给商品参数填充值 goods.setParams(JSONUtil.toJsonStr(goodsOperationDTO.getGoodsParamsDTOList())); } //添加商品 @@ -323,6 +331,52 @@ public class GoodsServiceImpl extends ServiceImpl implements goods.setThumbnail(goodsGallery.getThumbnail()); } + /** + * 检测商品参数是否非法传递 + * + * @param goodsParamsDTOS 商品参数 + * @param categoryId 分类id + */ + private void checkGoodsParams(List goodsParamsDTOS, String categoryId) { + //根据绑定的分了id查询出参数信息 + List parameterGroupVOS = categoryParameterGroupService.getCategoryParams(categoryId); + if (parameterGroupVOS.size() > 0) { + //绑定分类的参数集合 + List parametersList = new ArrayList<>(); + //循环分类绑定的参数信息 把它整理到新的分类参数集合中 用于最后的参数信息对比 + for (ParameterGroupVO parameterGroupVO : parameterGroupVOS) { + List parameters = parameterGroupVO.getParams(); + for (Parameters param : parameters) { + parametersList.add(param); + } + } + List goodsOperationParamList = new ArrayList<>(); + //循环添加商品传递的参数信息 把它整理到新的分类参数集合中 用于最后的参数信息对比 + for (GoodsParamsDTO goodsParamsDTO : goodsParamsDTOS) { + List goodsParamsItemDTOS = goodsParamsDTO.getGoodsParamsItemDTOList(); + for (GoodsParamsItemDTO goodsParamsItemDTO : goodsParamsItemDTOS) { + goodsOperationParamList.add(goodsParamsItemDTO); + } + } + //两个参数集合进行对比 + for (Parameters parameters :parametersList){ + for (GoodsParamsItemDTO goodsParamsItemDTO :goodsOperationParamList){ + if(parameters.getId().equals(goodsParamsItemDTO.getParamId())){ + //校验是否可以索引参数是否正确 + if(!parameters.getIsIndex().equals(goodsParamsItemDTO.getIsIndex())){ + throw new ServiceException("商品参数错误,刷新后重试"); + } + //校验是否必填参数是否正确 + if(!parameters.getRequired().equals(goodsParamsItemDTO.getRequired())){ + throw new ServiceException("商品参数错误,刷新后重试"); + } + } + } + } + + } + } + /** * 检查商品信息 * 如果商品是虚拟商品则无需配置配送模板 diff --git a/framework/src/main/java/cn/lili/modules/order/trade/service/RechargeService.java b/framework/src/main/java/cn/lili/modules/order/trade/service/RechargeService.java index c8919ded..a4b51e39 100644 --- a/framework/src/main/java/cn/lili/modules/order/trade/service/RechargeService.java +++ b/framework/src/main/java/cn/lili/modules/order/trade/service/RechargeService.java @@ -37,8 +37,9 @@ public interface RechargeService extends IService { * * @param sn 充值订单编号 * @param receivableNo 流水no + * @param paymentMethod 支付方式 */ - void paySuccess(String sn, String receivableNo); + void paySuccess(String sn, String receivableNo,String paymentMethod); /** * 根据充值订单号查询充值信息 diff --git a/framework/src/main/java/cn/lili/modules/order/trade/serviceimpl/RechargeServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/trade/serviceimpl/RechargeServiceImpl.java index dffa172a..8504ac30 100644 --- a/framework/src/main/java/cn/lili/modules/order/trade/serviceimpl/RechargeServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/trade/serviceimpl/RechargeServiceImpl.java @@ -1,9 +1,11 @@ package cn.lili.modules.order.trade.serviceimpl; +import cn.hutool.core.date.DateTime; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.security.AuthUser; import cn.lili.common.security.context.UserContext; +import cn.lili.common.utils.DateUtil; import cn.lili.common.utils.PageUtil; import cn.lili.common.utils.SnowFlake; import cn.lili.common.utils.StringUtils; @@ -68,19 +70,22 @@ public class RechargeServiceImpl extends ServiceImpl i Date end = cn.hutool.core.date.DateUtil.parse(rechargeQueryVO.getEndDate()); queryWrapper.between("pay_time", start, end); } + queryWrapper.orderByDesc("create_time"); //查询返回数据 return this.page(PageUtil.initPage(page), queryWrapper); } @Override - public void paySuccess(String sn, String receivableNo) { + public void paySuccess(String sn, String receivableNo,String paymentMethod) { //根据sn获取支付账单 Recharge recharge = this.getOne(new QueryWrapper().eq("recharge_sn", sn)); //如果支付账单不为空则进行一下逻辑 - if (recharge != null) { + if (recharge != null && !recharge.getPayStatus().equals(PayStatusEnum.PAID.name())) { //将此账单支付状态更改为已支付 recharge.setPayStatus(PayStatusEnum.PAID.name()); recharge.setReceivableNo(receivableNo); + recharge.setPayTime(new DateTime()); + recharge.setRechargeWay(paymentMethod); //执行保存操作 this.updateById(recharge); //增加预存款余额 diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/params/impl/RechargeCashier.java b/framework/src/main/java/cn/lili/modules/payment/kit/params/impl/RechargeCashier.java index f60bd762..75fc952e 100644 --- a/framework/src/main/java/cn/lili/modules/payment/kit/params/impl/RechargeCashier.java +++ b/framework/src/main/java/cn/lili/modules/payment/kit/params/impl/RechargeCashier.java @@ -45,7 +45,7 @@ public class RechargeCashier implements CashierExecute { public void paymentSuccess(PaymentSuccessParams paymentSuccessParams) { PayParam payParam = paymentSuccessParams.getPayParam(); if (payParam.getOrderType().equals(CashierEnum.RECHARGE.name())) { - rechargeService.paySuccess(payParam.getSn(), paymentSuccessParams.getReceivableNo()); + rechargeService.paySuccess(payParam.getSn(), paymentSuccessParams.getReceivableNo(),paymentSuccessParams.getPaymentMethod()); log.info("会员充值-订单号{},第三方流水:{}", payParam.getSn(), paymentSuccessParams.getReceivableNo()); } }