From 477d29d69f4bace9858ebb31a8fea9b96ef9a9d6 Mon Sep 17 00:00:00 2001 From: moxiangrong Date: Tue, 20 Feb 2024 19:33:50 +0800 Subject: [PATCH] fix bug --- .../core/util/DesensitizeUtil.java | 48 +++++++++++++++++++ .../DistributorWagesLogController.java | 2 + .../distributor/DistributorFacadeImpl.java | 8 +--- .../RechargeOrderController.java | 3 +- .../vo/RechargeOrderPageReqVO.java | 15 ++++-- .../rechargeorder/vo/RechargeOrderRespVO.java | 3 ++ .../storeorder/StoreOrderController.java | 6 +++ .../rechargeorder/RechargeOrderMapper.java | 14 ++++-- .../rechargeorder/RechargeOrderService.java | 2 +- .../RechargeOrderServiceImpl.java | 48 +++++++++++++------ .../rechargeorder/RechargeOrderMapper.xml | 28 +++++++++++ .../mapper/storeorder/StoreOrderMapper.xml | 2 +- .../campaigninfo/CampaignInfoController.java | 23 ++++----- .../ProductCouponController.java | 7 +++ .../teamworkinfo/TeamworkInfoController.java | 2 +- .../campaigninfo/CampaignInfoServiceImpl.java | 1 + .../campaigninfo/CampaignInfoMapper.xml | 2 +- .../admin/popup/PopupController.java | 4 +- .../ShopAssistantServiceImpl.java | 24 +++++----- .../member/enums/ErrorCodeConstants.java | 1 + .../vo/IntegralRuleExportReqVO.java | 12 ++--- .../vo/IntegralRulePageReqVO.java | 12 +++-- .../admin/user/MemberUserController.java | 9 +++- .../AppSignInRecordController.java | 4 +- .../integralrule/IntegralRuleDO.java | 23 ++++++++- .../integralrule/IntegralRuleMapper.java | 2 + .../integralrule/IntegralRuleServiceImpl.java | 2 +- .../signinrecord/SignInRecordServiceImpl.java | 10 ++-- .../UserLevelConfigServiceImpl.java | 7 ++- .../mapper/userbill/UserBillMapper.xml | 3 ++ .../backuprecord/BackupRecordServiceImpl.java | 2 +- 31 files changed, 246 insertions(+), 83 deletions(-) create mode 100644 yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/util/DesensitizeUtil.java diff --git a/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/util/DesensitizeUtil.java b/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/util/DesensitizeUtil.java new file mode 100644 index 0000000..df5947c --- /dev/null +++ b/yshop-framework/yshop-spring-boot-starter-desensitize/src/main/java/co/yixiang/yshop/framework/desensitize/core/util/DesensitizeUtil.java @@ -0,0 +1,48 @@ +package co.yixiang.yshop.framework.desensitize.core.util; + +import cn.hutool.core.util.ReflectUtil; +import co.yixiang.yshop.framework.desensitize.core.slider.annotation.MobileDesensitize; +import co.yixiang.yshop.framework.desensitize.core.slider.handler.MobileDesensitization; + +import java.lang.annotation.Annotation; +import java.util.List; + +/** + * @author pepis + * @apiNote + **/ +public class DesensitizeUtil { + public static void mobileDesensitize(List voList, String fieldName) { + MobileDesensitization mobileDesensitize = new MobileDesensitization(); + + MobileDesensitize desensitize = new MobileDesensitize() { + + @Override + public Class annotationType() { + return MobileDesensitize.class; + } + + @Override + public int prefixKeep() { + return 3; + } + + @Override + public int suffixKeep() { + return 4; + } + + @Override + public String replacer() { + return "*"; + } + }; + voList.forEach(vo -> { + Object value = ReflectUtil.getFieldValue(vo, fieldName); + if (value != null) { + String desensitized = mobileDesensitize.desensitize((String) value, desensitize); + ReflectUtil.setFieldValue(vo, fieldName, desensitized); + } + }); + } +} diff --git a/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/controller/admin/distributorwageslog/DistributorWagesLogController.java b/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/controller/admin/distributorwageslog/DistributorWagesLogController.java index eb49dc3..dafce0e 100644 --- a/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/controller/admin/distributorwageslog/DistributorWagesLogController.java +++ b/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/controller/admin/distributorwageslog/DistributorWagesLogController.java @@ -20,6 +20,7 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; +import java.math.BigDecimal; import java.util.*; import java.io.IOException; @@ -151,6 +152,7 @@ public class DistributorWagesLogController { if (wagesLogDO.getType().equals(DistributorWagesLogTypeEnum.WITHDRAW_FAIL.getType())) { excelVO.setStatusStr(DistributorWagesLogTypeEnum.WITHDRAW_FAIL.getName()); } + excelVO.setAmountStr(wagesLogDO.getAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toString()); datas.add(excelVO); } diff --git a/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/service/distributor/DistributorFacadeImpl.java b/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/service/distributor/DistributorFacadeImpl.java index b6f4394..f27b95b 100644 --- a/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/service/distributor/DistributorFacadeImpl.java +++ b/yshop-module-mall/yshop-module-distributor-biz/src/main/java/co/yixiang/yshop/module/distributor/service/distributor/DistributorFacadeImpl.java @@ -40,7 +40,6 @@ import co.yixiang.yshop.module.product.api.product.dto.ProductPageReqVO; import co.yixiang.yshop.module.system.enums.DistributorDictEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -50,10 +49,7 @@ import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -205,7 +201,7 @@ public class DistributorFacadeImpl implements DistributorFacade { respVO.setFirstWages(level.getFirstWages()); respVO.setSecondWages(level.getSecondWages()); - MemberUserRespDTO user = memberUserApi.getUser(distributorDO.getUserId()); + MemberUserRespDTO user = Optional.ofNullable(memberUserApi.getUser(distributorDO.getUserId())).orElseGet(MemberUserRespDTO::new); respVO.setMobile(user.getMobile()); // 获取我的用户 diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/RechargeOrderController.java b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/RechargeOrderController.java index 9a950f5..c2b92e0 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/RechargeOrderController.java +++ b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/RechargeOrderController.java @@ -87,8 +87,7 @@ public class RechargeOrderController { @Operation(summary = "获得充值订单分页") @PreAuthorize("@ss.hasPermission('order:recharge-order:query')") public CommonResult> getRechargeOrderPage(@Valid RechargeOrderPageReqVO pageVO) { - PageResult pageResult = rechargeOrderService.getRechargeOrderPage(pageVO); - return success(RechargeOrderConvert.INSTANCE.convertPage(pageResult)); + return success(rechargeOrderService.getRechargeOrderPage(pageVO)); } @GetMapping("/export-excel") diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderPageReqVO.java b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderPageReqVO.java index 71cea27..26f7653 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderPageReqVO.java +++ b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderPageReqVO.java @@ -1,11 +1,10 @@ package co.yixiang.yshop.module.order.controller.admin.rechargeorder.vo; -import lombok.*; - -import java.util.*; - -import io.swagger.v3.oas.annotations.media.Schema; import co.yixiang.yshop.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @@ -18,6 +17,9 @@ import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class RechargeOrderPageReqVO extends PageParam { + @Schema(description = "充值订单id", example = "15798") + private String id; + @Schema(description = "用户id", example = "15798") private Long userId; @@ -37,4 +39,7 @@ public class RechargeOrderPageReqVO extends PageParam { @Schema(description = "充值套餐ID", example = "8014") private Long packageId; + @Schema(description = "昵称") + private String nickname; + } diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderRespVO.java b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderRespVO.java index f4a195e..2459486 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderRespVO.java +++ b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/rechargeorder/vo/RechargeOrderRespVO.java @@ -14,6 +14,9 @@ public class RechargeOrderRespVO extends RechargeOrderBaseVO { @Schema(description = "订单ID", required = true, example = "12534") private String id; + @Schema(description = "昵称", required = true, example = "12534") + private String nickname; + @Schema(description = "创建时间", required = true) private LocalDateTime createTime; diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java index 29b3f19..222a55f 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java +++ b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/controller/admin/storeorder/StoreOrderController.java @@ -2,6 +2,7 @@ package co.yixiang.yshop.module.order.controller.admin.storeorder; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.desensitize.core.util.DesensitizeUtil; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.framework.security.core.annotations.PreAuthenticated; @@ -140,9 +141,14 @@ public class StoreOrderController { List list = storeOrderService.getStoreOrderList(exportReqVO); // 导出 Excel List datas = StoreOrderConvert.INSTANCE.convertList02(list); + desensitize(datas); ExcelUtils.write(response, "订单.xls", "数据", StoreOrderExcelVO.class, datas); } + private void desensitize(List datas) { + DesensitizeUtil.mobileDesensitize(datas, "userPhone"); + } + @GetMapping("/printOrder") @Operation(summary = "打印电子面单") @Parameters({ diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/rechargeorder/RechargeOrderMapper.java b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/rechargeorder/RechargeOrderMapper.java index 3eb0d40..672a937 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/rechargeorder/RechargeOrderMapper.java +++ b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/dal/mysql/rechargeorder/RechargeOrderMapper.java @@ -1,13 +1,17 @@ package co.yixiang.yshop.module.order.dal.mysql.rechargeorder; -import java.util.*; - import co.yixiang.yshop.framework.common.pojo.PageResult; -import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX; +import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX; +import co.yixiang.yshop.module.order.controller.admin.rechargeorder.vo.RechargeOrderExportReqVO; +import co.yixiang.yshop.module.order.controller.admin.rechargeorder.vo.RechargeOrderPageReqVO; +import co.yixiang.yshop.module.order.controller.admin.rechargeorder.vo.RechargeOrderRespVO; import co.yixiang.yshop.module.order.dal.dataobject.rechargeorder.RechargeOrderDO; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Mapper; -import co.yixiang.yshop.module.order.controller.admin.rechargeorder.vo.*; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 充值订单 Mapper @@ -20,6 +24,7 @@ public interface RechargeOrderMapper extends BaseMapperX { default PageResult selectPage(RechargeOrderPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(RechargeOrderDO::getUserId, reqVO.getUserId()) + .likeIfPresent(RechargeOrderDO::getId, reqVO.getId()) .eqIfPresent(RechargeOrderDO::getStatus, reqVO.getStatus()) .betweenIfPresent(RechargeOrderDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(RechargeOrderDO::getRechargeAmount, reqVO.getRechargeAmount()) @@ -39,4 +44,5 @@ public interface RechargeOrderMapper extends BaseMapperX { .orderByDesc(RechargeOrderDO::getId)); } + IPage selectPageVO(IPage mpPage, @Param("param") RechargeOrderPageReqVO pageReqVO); } diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderService.java b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderService.java index 37f8f61..dd4ec22 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderService.java +++ b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderService.java @@ -58,7 +58,7 @@ public interface RechargeOrderService { * @param pageReqVO 分页查询 * @return 充值订单分页 */ - PageResult getRechargeOrderPage(RechargeOrderPageReqVO pageReqVO); + PageResult getRechargeOrderPage(RechargeOrderPageReqVO pageReqVO); /** * 获得充值订单列表, 用于 Excel 导出 diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderServiceImpl.java b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderServiceImpl.java index 0f790f7..7268bc8 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderServiceImpl.java +++ b/yshop-module-mall/yshop-module-order-biz/src/main/java/co/yixiang/yshop/module/order/service/rechargeorder/RechargeOrderServiceImpl.java @@ -1,27 +1,29 @@ package co.yixiang.yshop.module.order.service.rechargeorder; +import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.mybatis.core.util.MyBatisUtils; +import co.yixiang.yshop.module.member.api.user.MemberUserApi; +import co.yixiang.yshop.module.order.controller.admin.rechargeorder.vo.*; +import co.yixiang.yshop.module.order.convert.rechargeorder.RechargeOrderConvert; +import co.yixiang.yshop.module.order.dal.dataobject.rechargeorder.RechargeOrderDO; +import co.yixiang.yshop.module.order.dal.mysql.rechargeorder.RechargeOrderMapper; import co.yixiang.yshop.module.pay.strategy.weixin.skd.PaymentKit; import co.yixiang.yshop.module.pay.strategy.weixin.skd.WXPayUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - import org.springframework.validation.annotation.Validated; +import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.*; - -import co.yixiang.yshop.module.order.controller.admin.rechargeorder.vo.*; -import co.yixiang.yshop.module.order.dal.dataobject.rechargeorder.RechargeOrderDO; -import co.yixiang.yshop.framework.common.pojo.PageResult; - -import co.yixiang.yshop.module.order.convert.rechargeorder.RechargeOrderConvert; -import co.yixiang.yshop.module.order.dal.mysql.rechargeorder.RechargeOrderMapper; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; -import static co.yixiang.yshop.module.order.enums.ErrorCodeConstants.*; +import static co.yixiang.yshop.module.order.enums.ErrorCodeConstants.RECHARGE_ORDER_NOT_EXISTS; /** * 充值订单 Service 实现类 @@ -36,6 +38,9 @@ public class RechargeOrderServiceImpl implements RechargeOrderService { @Resource private RechargeOrderMapper rechargeOrderMapper; + @Resource + private MemberUserApi memberUserApi; + @Value("${weixin.certurl}") private String cert_url; @@ -82,8 +87,23 @@ public class RechargeOrderServiceImpl implements RechargeOrderService { } @Override - public PageResult getRechargeOrderPage(RechargeOrderPageReqVO pageReqVO) { - return rechargeOrderMapper.selectPage(pageReqVO); + public PageResult getRechargeOrderPage(RechargeOrderPageReqVO pageReqVO) { +// PageResult pageResult = +// RechargeOrderConvert.INSTANCE.convertPage(rechargeOrderMapper.selectPage(pageReqVO)); +// if(CollectionUtils.isNotEmpty(pageResult.getList())){ +// List ids = +// pageResult.getList().stream().map(RechargeOrderRespVO::getUserId).collect(Collectors.toList()); +// List users = memberUserApi.getUsers(ids); +// Map userMap = +// users.stream().collect(Collectors.toMap(MemberUserRespDTO::getId, MemberUserRespDTO::getNickname)); +// for (RechargeOrderRespVO vo :pageResult.getList()){ +// vo.setNickname(userMap.get(vo.getUserId())); +// } +// } + // MyBatis Plus 查询 + IPage mpPage = MyBatisUtils.buildPage(pageReqVO); + rechargeOrderMapper.selectPageVO(mpPage,pageReqVO); + return new PageResult<>(mpPage.getRecords(), mpPage.getTotal()); } @Override diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/rechargeorder/RechargeOrderMapper.xml b/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/rechargeorder/RechargeOrderMapper.xml index ffca5e0..5aea853 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/rechargeorder/RechargeOrderMapper.xml +++ b/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/rechargeorder/RechargeOrderMapper.xml @@ -9,4 +9,32 @@ 文档可见:https://www.yixiang.co/MyBatis/x-plugins/ --> + diff --git a/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/storeorder/StoreOrderMapper.xml b/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/storeorder/StoreOrderMapper.xml index c4095f3..fd72a21 100644 --- a/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/storeorder/StoreOrderMapper.xml +++ b/yshop-module-mall/yshop-module-order-biz/src/main/resources/mapper/storeorder/StoreOrderMapper.xml @@ -18,7 +18,7 @@ diff --git a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/campaigninfo/CampaignInfoController.java b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/campaigninfo/CampaignInfoController.java index 6ac0da7..7f7ce36 100644 --- a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/campaigninfo/CampaignInfoController.java +++ b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/campaigninfo/CampaignInfoController.java @@ -48,14 +48,14 @@ public class CampaignInfoController { @PostMapping("/create") @Operation(summary = "创建活动信息") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:create')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:create')") public CommonResult createCampaignInfo(@Valid @RequestBody CampaignInfoCreateReqVO createReqVO) { return success(campaignInfoService.createCampaignInfo(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新活动信息") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:update')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:update')") public CommonResult updateCampaignInfo(@Valid @RequestBody CampaignInfoUpdateReqVO updateReqVO) { campaignInfoService.updateCampaignInfo(updateReqVO); return success(true); @@ -64,7 +64,7 @@ public class CampaignInfoController { @DeleteMapping("/delete") @Operation(summary = "删除活动信息") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:delete')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:delete')") public CommonResult deleteCampaignInfo(@RequestParam("id") Long id) { campaignInfoService.deleteCampaignInfo(id); return success(true); @@ -73,7 +73,7 @@ public class CampaignInfoController { @GetMapping("/close") @Operation(summary = "结束活动信息") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:close')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:close')") public CommonResult closeCampaignInfo(@RequestParam("id") Long id) { campaignInfoService.closeCampaignInfo(id); return success(true); @@ -82,7 +82,7 @@ public class CampaignInfoController { @GetMapping("/start") @Operation(summary = "开始活动信息") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:start')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:start')") public CommonResult startCampaignInfo(@RequestParam("id") Long id) { campaignInfoService.startCampaignInfo(id); return success(true); @@ -91,21 +91,21 @@ public class CampaignInfoController { @GetMapping("/get") @Operation(summary = "获得活动信息") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:query')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:get')") public CommonResult getCampaignInfo(@RequestParam("id") Long id) { return success(campaignInfoService.getCampaignInfo(id)); } @GetMapping("/page") @Operation(summary = "获得活动信息分页") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:query')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:query')") public CommonResult> getCampaignInfoPage(@Valid CampaignInfoPageReqVO pageVO) { return success(campaignInfoService.getCampaignInfoPage(pageVO)); } @GetMapping("/export-excel") @Operation(summary = "导出活动信息 Excel") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:export')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:export')") @OperateLog(type = EXPORT) public void exportCampaignInfoExcel(@Valid CampaignInfoExportReqVO exportReqVO, HttpServletResponse response) throws IOException { @@ -118,27 +118,28 @@ public class CampaignInfoController { @GetMapping("/data") @Operation(summary = "获得活动数据") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:data')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:data')") public CommonResult getCampaignData(@RequestParam("id") Long id) { return success(campaignInfoService.getCampaignData(id)); } @GetMapping("/data-detail") @Operation(summary = "获得活动信息分页") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:data-detail')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:data-detail')") public CommonResult> getCampaignDataDetail(@Valid CampaignDataDetailPageReqVO pageVO) { return success(campaignInfoService.getCampaignDataDetail(pageVO)); } @GetMapping("/canvas/page") @Operation(summary = "获得画布活动分页") - @PreAuthorize("@ss.hasPermission('yshop:campaign-info:canvas:page')") + @PreAuthorize("@ss.hasPermission('product:campaign-info:canvas:page')") public CommonResult> getCanvasCampaignPage(@Valid CanvasCampaignPageReqVO pageVO) { return success(campaignInfoService.getCanvasCampaignPage(pageVO)); } @PostMapping("/canvas/product-page") @Operation(summary = "获得营销活动商品列表") + @PreAuthorize("@ss.hasPermission('product:campaign-info:canvas:product-page')") public CommonResult> getCampaignProductPage(@RequestBody CampaignProductReqVO reqVO) { return success(appCampaignInfoService.getCampaignProductPage(reqVO)); } diff --git a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/productcoupon/ProductCouponController.java b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/productcoupon/ProductCouponController.java index d9a2d5f..ca2f723 100644 --- a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/productcoupon/ProductCouponController.java +++ b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/productcoupon/ProductCouponController.java @@ -6,6 +6,7 @@ import co.yixiang.yshop.module.product.controller.admin.productcoupon.vo.*; import co.yixiang.yshop.module.product.service.productcoupon.ProductCouponService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -26,12 +27,14 @@ public class ProductCouponController { @PostMapping("/create") @Operation(summary = "创建优惠券") + @PreAuthorize("@ss.hasPermission('product:coupon:create')") public CommonResult createCoupon(@Validated @RequestBody ProductCouponCreateReqVO vo) { return success(couponService.createCoupon(vo)); } @PostMapping("/update") @Operation(summary = "修改优惠券") + @PreAuthorize("@ss.hasPermission('product:coupon:update')") public CommonResult updateCoupon(@Validated @RequestBody ProductCouponUpdateReqVO vo) { couponService.updateCoupon(vo); return success(true); @@ -39,24 +42,28 @@ public class ProductCouponController { @GetMapping("/detail/{id}") @Operation(summary = "优惠券详情") + @PreAuthorize("@ss.hasPermission('product:coupon:detail')") public CommonResult getCouponDetail(@PathVariable Long id) { return success(couponService.getCouponDetail(id)); } @GetMapping("/page") @Operation(summary = "优惠券分页") + @PreAuthorize("@ss.hasPermission('product:coupon:query')") public CommonResult> getStoreProductPage(@Valid StoreProductCouponPageReqVO pageVO) { return success(couponService.getStoreProductPage(pageVO)); } @GetMapping("/delete/{id}") @Operation(summary = "删除优惠券") + @PreAuthorize("@ss.hasPermission('product:coupon:delete')") public CommonResult deleteCoupon(@PathVariable Long id) { return success(couponService.deleteCoupon(id)); } @GetMapping("/canvas/page") @Operation(summary = "画布优惠券分页") + @PreAuthorize("@ss.hasPermission('product:coupon:canvas:page')") public CommonResult> getCanvasProductPage(@Valid CanvasProductCouponPageReqVO pageVO) { return success(couponService.getCanvasProductPage(pageVO)); } diff --git a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/teamworkinfo/TeamworkInfoController.java b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/teamworkinfo/TeamworkInfoController.java index 7f0277a..7601db2 100644 --- a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/teamworkinfo/TeamworkInfoController.java +++ b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/controller/admin/teamworkinfo/TeamworkInfoController.java @@ -50,7 +50,7 @@ public class TeamworkInfoController { @GetMapping("/order-page") @Operation(summary = "获得拼团订单信息分页") - @PreAuthorize("@ss.hasPermission('product:teamwork-info:order-pag')") + @PreAuthorize("@ss.hasPermission('product:teamwork-info:order-page')") public CommonResult> getTeamworkInfoPage(@Valid TeamworkOrderInfoPageReqVO pageVO) { return success(teamworkInfoService.getTeamworkOrderInfoPage(pageVO)); } diff --git a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/campaigninfo/CampaignInfoServiceImpl.java b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/campaigninfo/CampaignInfoServiceImpl.java index cf2494e..5174abd 100644 --- a/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/campaigninfo/CampaignInfoServiceImpl.java +++ b/yshop-module-mall/yshop-module-product-biz/src/main/java/co/yixiang/yshop/module/product/service/campaigninfo/CampaignInfoServiceImpl.java @@ -560,6 +560,7 @@ public class CampaignInfoServiceImpl implements CampaignInfoService { StoreProductDO updateProduct = updateProductMap.get(detail.getProductId()); if (ObjectUtil.isNull(updateProduct)) { StoreProductDO product = productMap.get(detail.getProductId()); + if (ObjectUtil.isNull(product)) continue; product.setStock(product.getStock() + detail.getStock()); updateProductMap.put(detail.getProductId(), product); } else { diff --git a/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/campaigninfo/CampaignInfoMapper.xml b/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/campaigninfo/CampaignInfoMapper.xml index 008db67..8666d43 100644 --- a/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/campaigninfo/CampaignInfoMapper.xml +++ b/yshop-module-mall/yshop-module-product-biz/src/main/resources/mapper/campaigninfo/CampaignInfoMapper.xml @@ -56,7 +56,7 @@ inner join yshop_store_product_attr_value as yspav on ycd.sku_id = yspav.id inner join yshop_store_product as ysp on ycd.product_id = ysp.id where - yci.state in (1,3) and yci.deleted = 0 and ycd.deleted = 0 + yci.state in (1,3) and yci.deleted = 0 and ycd.deleted = 0 and ysp.deleted = 0 and ysp.is_show = 1 and yci.type = #{reqVO.type} diff --git a/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/popup/PopupController.java b/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/popup/PopupController.java index f5a06b7..2559a9b 100644 --- a/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/popup/PopupController.java +++ b/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/controller/admin/popup/PopupController.java @@ -67,7 +67,7 @@ public class PopupController { @GetMapping("/get") @Operation(summary = "获得弹窗") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('shop:popup:query')") + @PreAuthorize("@ss.hasPermission('shop:popup:get')") public CommonResult getPopup(@RequestParam("id") Long id) { PopupDO popup = popupService.getPopup(id); return success(PopupConvert.INSTANCE.convert(popup)); @@ -76,7 +76,7 @@ public class PopupController { @GetMapping("/list") @Operation(summary = "获得弹窗列表") @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('shop:popup:query')") + @PreAuthorize("@ss.hasPermission('shop:popup:list')") public CommonResult> getPopupList(@RequestParam("ids") Collection ids) { List list = popupService.getPopupList(ids); return success(PopupConvert.INSTANCE.convertList(list)); diff --git a/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopassistant/ShopAssistantServiceImpl.java b/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopassistant/ShopAssistantServiceImpl.java index ad20ef3..b6cbb41 100644 --- a/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopassistant/ShopAssistantServiceImpl.java +++ b/yshop-module-mall/yshop-module-shop-biz/src/main/java/co/yixiang/yshop/module/shop/service/shopassistant/ShopAssistantServiceImpl.java @@ -139,18 +139,20 @@ public class ShopAssistantServiceImpl implements ShopAssistantService { } private void fillData(PageResult resPage) { - List userIds = resPage.getList().stream().map(ShopAssistantRespVO::getUserId).distinct().collect(Collectors.toList()); - List storeIds = resPage.getList().stream().map(ShopAssistantRespVO::getStoreId).distinct().collect(Collectors.toList()); - Map userMap = userService.getUserList(userIds).stream().collect(Collectors.toMap(MemberUserDO::getId, Function.identity())); - Map storeMap = shopService.getShopList(storeIds).stream().collect(Collectors.toMap(ShopDO::getId, Function.identity())); + if(resPage.getTotal() > 0){ + List userIds = resPage.getList().stream().map(ShopAssistantRespVO::getUserId).distinct().collect(Collectors.toList()); + List storeIds = resPage.getList().stream().map(ShopAssistantRespVO::getStoreId).distinct().collect(Collectors.toList()); + Map userMap = userService.getUserList(userIds).stream().collect(Collectors.toMap(MemberUserDO::getId, Function.identity())); + Map storeMap = shopService.getShopList(storeIds).stream().collect(Collectors.toMap(ShopDO::getId, Function.identity())); - resPage.getList().forEach(item -> { - MemberUserDO user = userMap.getOrDefault(item.getUserId(), new MemberUserDO()); - ShopDO shop = storeMap.getOrDefault(item.getStoreId(), new ShopDO()); - item.setAvatar(user.getAvatar()); - item.setNickname(user.getNickname()); - item.setStoreName(shop.getStoreName()); - }); + resPage.getList().forEach(item -> { + MemberUserDO user = userMap.getOrDefault(item.getUserId(), new MemberUserDO()); + ShopDO shop = storeMap.getOrDefault(item.getStoreId(), new ShopDO()); + item.setAvatar(user.getAvatar()); + item.setNickname(user.getNickname()); + item.setStoreName(shop.getStoreName()); + }); + } } @Override diff --git a/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java b/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java index 12e5d00..0e0c8c3 100644 --- a/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java +++ b/yshop-module-member/yshop-module-member-api/src/main/java/co/yixiang/yshop/module/member/enums/ErrorCodeConstants.java @@ -37,6 +37,7 @@ public interface ErrorCodeConstants { // ========== 签到记录 ========== ErrorCode SIGN_IN_RECORD_NOT_EXISTS = new ErrorCode(1004009000, "签到记录不存在"); ErrorCode TODAY_SIGN_IN_RECORD_EXISTS = new ErrorCode(100409001, "今日已签到"); + ErrorCode SIGN_IN_CLOSED = new ErrorCode(100409002, "已关闭签到"); // ========== 会员等级配置 ========== ErrorCode USER_LEVEL_CONFIG_NOT_EXISTS = new ErrorCode(1004011000, "会员等级配置不存在"); // ========== 会员等级权益配置========== diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRuleExportReqVO.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRuleExportReqVO.java index a88bed9..2582bbb 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRuleExportReqVO.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRuleExportReqVO.java @@ -1,16 +1,11 @@ package co.yixiang.yshop.module.member.controller.admin.integralrule.vo; -import lombok.*; - -import java.util.*; - import io.swagger.v3.oas.annotations.media.Schema; -import co.yixiang.yshop.framework.common.pojo.PageParam; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; -import org.springframework.format.annotation.DateTimeFormat; - import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 会员积分规则 Excel 导出 Request VO,参数和 IntegralRulePageReqVO 是一致的") @@ -33,4 +28,7 @@ public class IntegralRuleExportReqVO { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "是否开启") + private Boolean enable; + } diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRulePageReqVO.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRulePageReqVO.java index 7cfe751..267b400 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRulePageReqVO.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/integralrule/vo/IntegralRulePageReqVO.java @@ -1,11 +1,10 @@ package co.yixiang.yshop.module.member.controller.admin.integralrule.vo; -import lombok.*; - -import java.util.*; - -import io.swagger.v3.oas.annotations.media.Schema; import co.yixiang.yshop.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @@ -34,4 +33,7 @@ public class IntegralRulePageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "是否开启") + private Boolean enable; + } diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java index bc92dfa..4d56db5 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/admin/user/MemberUserController.java @@ -2,6 +2,7 @@ package co.yixiang.yshop.module.member.controller.admin.user; import co.yixiang.yshop.framework.common.pojo.CommonResult; import co.yixiang.yshop.framework.common.pojo.PageResult; +import co.yixiang.yshop.framework.desensitize.core.util.DesensitizeUtil; import co.yixiang.yshop.framework.excel.core.util.ExcelUtils; import co.yixiang.yshop.framework.operatelog.core.annotations.OperateLog; import co.yixiang.yshop.module.member.controller.admin.user.vo.*; @@ -112,11 +113,17 @@ public class MemberUserController { public void exportMaterialExcel(@Valid UserExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = userService.getUserList(exportReqVO); - // 导出 Excel List voList = UserConvert.INSTANCE.convertListExcel(list); + desensitize(voList); + // 导出 Excel ExcelUtils.write(response, "会员用户.xls", "数据", MemberUserExcelVO.class, voList); } + private void desensitize(List voList) { + DesensitizeUtil.mobileDesensitize(voList, "mobile"); + } + + @PostMapping("updateTag") @Operation(summary = "更新用户标签") @PreAuthorize("@ss.hasPermission('member:user:update')") diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/signinrecord/AppSignInRecordController.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/signinrecord/AppSignInRecordController.java index a129fe7..be80af3 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/signinrecord/AppSignInRecordController.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/controller/app/signinrecord/AppSignInRecordController.java @@ -58,7 +58,9 @@ public class AppSignInRecordController { @Operation(summary = "每日任务") @PreAuthenticated public CommonResult> integralRule() { - List list = integralRuleService.getIntegralRuleList(new IntegralRuleExportReqVO()); + IntegralRuleExportReqVO reqVO = new IntegralRuleExportReqVO(); + reqVO.setEnable(Boolean.TRUE); + List list = integralRuleService.getIntegralRuleList(reqVO); return CommonResult.success(IntegralRuleConvert.INSTANCE.convertList(list)); } } diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/integralrule/IntegralRuleDO.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/integralrule/IntegralRuleDO.java index b814033..8a8f029 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/integralrule/IntegralRuleDO.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/dataobject/integralrule/IntegralRuleDO.java @@ -17,8 +17,6 @@ import lombok.*; @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder -@NoArgsConstructor -@AllArgsConstructor public class IntegralRuleDO extends BaseDO { /** @@ -53,4 +51,25 @@ public class IntegralRuleDO extends BaseDO { */ private Boolean enable; + public IntegralRuleDO() { + } + + public IntegralRuleDO(Integer integral) { + this.integral = integral; + } + + public IntegralRuleDO(Long id, String type, String typeName, Integer integral, String attribute1, String iconUrl, Boolean enable) { + this.id = id; + this.type = type; + this.typeName = typeName; + this.integral = integral; + this.attribute1 = attribute1; + this.iconUrl = iconUrl; + this.enable = enable; + } + + public IntegralRuleDO(Integer integral, Boolean enable) { + this.integral = integral; + this.enable = enable; + } } diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/integralrule/IntegralRuleMapper.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/integralrule/IntegralRuleMapper.java index 9cdce9b..c846ad6 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/integralrule/IntegralRuleMapper.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/dal/mysql/integralrule/IntegralRuleMapper.java @@ -25,6 +25,7 @@ public interface IntegralRuleMapper extends BaseMapperX { .likeIfPresent(IntegralRuleDO::getTypeName, reqVO.getTypeName()) .eqIfPresent(IntegralRuleDO::getIntegral, reqVO.getIntegral()) .eqIfPresent(IntegralRuleDO::getAttribute1, reqVO.getAttribute1()) + .eqIfPresent(IntegralRuleDO::getEnable, reqVO.getEnable()) .betweenIfPresent(IntegralRuleDO::getCreateTime, reqVO.getCreateTime()) .orderByAsc(IntegralRuleDO::getId)); } @@ -35,6 +36,7 @@ public interface IntegralRuleMapper extends BaseMapperX { .likeIfPresent(IntegralRuleDO::getTypeName, reqVO.getTypeName()) .eqIfPresent(IntegralRuleDO::getIntegral, reqVO.getIntegral()) .eqIfPresent(IntegralRuleDO::getAttribute1, reqVO.getAttribute1()) + .eqIfPresent(IntegralRuleDO::getEnable, reqVO.getEnable()) .betweenIfPresent(IntegralRuleDO::getCreateTime, reqVO.getCreateTime()) .orderByAsc(IntegralRuleDO::getId)); } diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/integralrule/IntegralRuleServiceImpl.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/integralrule/IntegralRuleServiceImpl.java index eca8978..80ba67d 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/integralrule/IntegralRuleServiceImpl.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/integralrule/IntegralRuleServiceImpl.java @@ -88,7 +88,7 @@ public class IntegralRuleServiceImpl implements IntegralRuleService { @Override public List getIntegralRuleByTypes(List typeList) { - return integralRuleMapper.selectList(Wrappers.lambdaQuery().in(IntegralRuleDO::getType, typeList)); + return integralRuleMapper.selectList(Wrappers.lambdaQuery().in(IntegralRuleDO::getType, typeList).eq(IntegralRuleDO::getEnable,Boolean.TRUE)); } @Override diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/signinrecord/SignInRecordServiceImpl.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/signinrecord/SignInRecordServiceImpl.java index 7bfb75a..87bd98e 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/signinrecord/SignInRecordServiceImpl.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/signinrecord/SignInRecordServiceImpl.java @@ -41,8 +41,7 @@ import java.util.stream.Collectors; import static co.yixiang.yshop.framework.common.constant.ShopConstants.DAY_FORMAT_STR; import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception; -import static co.yixiang.yshop.module.member.enums.ErrorCodeConstants.SIGN_IN_RECORD_NOT_EXISTS; -import static co.yixiang.yshop.module.member.enums.ErrorCodeConstants.TODAY_SIGN_IN_RECORD_EXISTS; +import static co.yixiang.yshop.module.member.enums.ErrorCodeConstants.*; /** * 签到记录 Service 实现类 @@ -168,7 +167,7 @@ public class SignInRecordServiceImpl implements SignInRecordService { //查询签到相关积分规则 List integralRuleList = integralRuleService.getIntegralRuleByTypes(ListUtil.of(BillDetailEnum.SIGN.getValue())); //每日签到规则 - IntegralRuleDO everydayIntegralRuleDO = integralRuleList.stream().filter(item -> item.getAttribute1().equals("1")).findFirst().get(); + IntegralRuleDO everydayIntegralRuleDO = integralRuleList.stream().filter(item -> item.getAttribute1().equals("1")).findFirst().orElse(new IntegralRuleDO(0)); AtomicInteger predictCount = new AtomicInteger(count); List dateTimes = DateUtil.rangeToList(DateUtils.of(startTime), DateUtils.of(endTime), DateField.DAY_OF_WEEK); @@ -205,6 +204,9 @@ public class SignInRecordServiceImpl implements SignInRecordService { verifyExistSignInToday(userId); //获取当前签到规则 IntegralRuleDO currentIntegralRule = getIntegralRule(userId); + if(!currentIntegralRule.getEnable()){ + throw exception(SIGN_IN_CLOSED); + } //领取积分 IntegralRuleDTO rule = new IntegralRuleDTO(); rule.setUserId(userId); @@ -232,7 +234,7 @@ public class SignInRecordServiceImpl implements SignInRecordService { //查询签到相关积分规则 List integralRuleList = integralRuleService.getIntegralRuleByTypes(ListUtil.of(BillDetailEnum.SIGN.getValue())); //每日签到规则 - IntegralRuleDO everydayIntegralRuleDO = integralRuleList.stream().filter(item -> item.getAttribute1().equals("1")).findFirst().get(); + IntegralRuleDO everydayIntegralRuleDO = integralRuleList.stream().filter(item -> item.getAttribute1().equals("1")).findFirst().orElse(new IntegralRuleDO(0,Boolean.FALSE)); //当前签到天数 Integer count = countByUserIdThisWeek(userId) + 1; //获取当前签到规则 diff --git a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userlevelconfig/UserLevelConfigServiceImpl.java b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userlevelconfig/UserLevelConfigServiceImpl.java index 0fd0bd2..72d5e09 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userlevelconfig/UserLevelConfigServiceImpl.java +++ b/yshop-module-member/yshop-module-member-biz/src/main/java/co/yixiang/yshop/module/member/service/userlevelconfig/UserLevelConfigServiceImpl.java @@ -1,6 +1,7 @@ package co.yixiang.yshop.module.member.service.userlevelconfig; import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import co.yixiang.yshop.framework.common.pojo.PageResult; @@ -207,8 +208,10 @@ public class UserLevelConfigServiceImpl implements UserLevelConfigService { couponEquityOpt.ifPresent(equity -> { Long couponId = equity.getEquityValue(); if (Objects.nonNull(couponId)) { - couponApi.receiveCoupon(couponId, userId); - log.warn("会员:{},升级:{},发放优惠券:{}", userId, levelId, equity.getEquityValue()); + ThreadUtil.execute(() -> { + couponApi.receiveCoupon(couponId, userId); + log.warn("会员:{},升级:{},发放优惠券:{}", userId, levelId, equity.getEquityValue()); + }); } }); } diff --git a/yshop-module-member/yshop-module-member-biz/src/main/resources/mapper/userbill/UserBillMapper.xml b/yshop-module-member/yshop-module-member-biz/src/main/resources/mapper/userbill/UserBillMapper.xml index 74d54a3..79265b4 100644 --- a/yshop-module-member/yshop-module-member-biz/src/main/resources/mapper/userbill/UserBillMapper.xml +++ b/yshop-module-member/yshop-module-member-biz/src/main/resources/mapper/userbill/UserBillMapper.xml @@ -30,6 +30,9 @@ and t1.pm = #{param.pm} + + and t1.create_time between #{param.createTime[0]} and #{param.createTime[1]} + and ( t2.nickname like concat('%',#{param.nickname},'%') or t2.mobile like concat('%',#{param.nickname},'%') diff --git a/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/backuprecord/BackupRecordServiceImpl.java b/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/backuprecord/BackupRecordServiceImpl.java index 90cab82..cdea1bb 100644 --- a/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/backuprecord/BackupRecordServiceImpl.java +++ b/yshop-module-system/yshop-module-system-biz/src/main/java/co/yixiang/yshop/module/system/service/backuprecord/BackupRecordServiceImpl.java @@ -104,7 +104,7 @@ public class BackupRecordServiceImpl extends ServiceImpl().orderByDesc(