From 07bac09786068876f541336bcb1ad343e2ef3829 Mon Sep 17 00:00:00 2001 From: 13233904609 <13233904609@163.cm> Date: Fri, 26 Jul 2024 14:42:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8A=BD=E5=A5=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../brokerage/AppBrokerageUserController.java | 25 +++ .../brokerage/BrokerageRecordMapper.java | 2 +- .../mysql/brokerage/BrokerageUserMapper.java | 4 +- .../brokerage/BrokerageUserServiceImpl.java | 60 +++++- .../BrokerageWithdrawServiceImpl.java | 15 +- .../order/TradeOrderUpdateServiceImpl.java | 15 +- .../mapper/brokerage/BrokerageUserMapper.xml | 24 ++- .../vo/DistributionLogPageReqVO.java | 9 +- .../vo/DistributionLogRespVO.java | 8 + .../vo/DistributionLogSaveReqVO.java | 10 +- .../AppDistributionLogController.java | 103 +++++++++ .../vo/AppDistributionLogPageReqVO.java | 54 +++++ .../vo/AppDistributionLogRespVO.java | 75 +++++++ .../vo/AppDistributionLogSaveReqVO.java | 45 ++++ .../distributionlog/DistributionLogDO.java | 7 +- .../DistributionLogMapper.java | 4 +- .../DistributionLogService.java | 9 +- .../DistributionLogServiceImpl.java | 29 ++- .../service/user/MemberUserServiceImpl.java | 195 ++++++++++-------- .../src/views/Login/SocialLogin.vue | 4 +- 20 files changed, 575 insertions(+), 122 deletions(-) create mode 100644 ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/AppDistributionLogController.java create mode 100644 ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogPageReqVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogRespVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogSaveReqVO.java diff --git a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java index 141ee68..387bf8b 100644 --- a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java +++ b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java @@ -93,6 +93,31 @@ public class AppBrokerageUserController { // 统计分销用户数量(一级) Long firstBrokerageUserCount = brokerageUserService.getBrokerageUserCountByBindUserId(brokerageUser.getId(), 1); // 统计分销用户数量(二级) + Long secondBrokerageUserCount = brokerageUserService.getBrokerageUserCountByBindUserId(brokerageUser.getId(), null); + + // 拼接返回 + return success(BrokerageUserConvert.INSTANCE.convert(yesterdayPrice, withdrawPrice, firstBrokerageUserCount, secondBrokerageUserCount, brokerageUser)); + } + @GetMapping("/get-zdscsummary") + @Operation(summary = "郑大商城获得个人分销统计") + @PreAuthenticated + public CommonResult getZdscBrokerageUserSummary() { + // 查询当前登录用户信息 + BrokerageUserDO brokerageUser = brokerageUserService.getBrokerageUser(getLoginUserId()); + // 统计用户昨日的佣金 + LocalDateTime yesterday = LocalDateTime.now().minusDays(1); + LocalDateTime beginTime = LocalDateTimeUtil.beginOfDay(yesterday); + LocalDateTime endTime = LocalDateTimeUtil.endOfDay(yesterday); + Integer yesterdayPrice = brokerageRecordService.getSummaryPriceByUserId(brokerageUser.getId(), + BrokerageRecordBizTypeEnum.ORDER, BrokerageRecordStatusEnum.SETTLEMENT, beginTime, endTime); + // 统计用户提现的佣金 + Integer withdrawPrice = brokerageWithdrawService.getWithdrawSummaryListByUserId(Collections.singleton(brokerageUser.getId()), + BrokerageWithdrawStatusEnum.AUDIT_SUCCESS).stream() + .findFirst().map(BrokerageWithdrawSummaryRespBO::getPrice).orElse(0); + + // 统计直销用户数量(一级) + Long firstBrokerageUserCount = brokerageUserService.getBrokerageUserCountByBindUserId(brokerageUser.getId(), 1); + // 统计分销用户数量(二级) Long secondBrokerageUserCount = brokerageUserService.getBrokerageUserCountByBindUserId(brokerageUser.getId(), 2); // 拼接返回 diff --git a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageRecordMapper.java b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageRecordMapper.java index 388f927..7e5cc2a 100644 --- a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageRecordMapper.java +++ b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageRecordMapper.java @@ -64,7 +64,7 @@ public interface BrokerageRecordMapper extends BaseMapperX { .selectCount(BrokerageRecordDO::getId, UserBrokerageSummaryRespBO::getCount) .selectSum(BrokerageRecordDO::getPrice) .in(BrokerageRecordDO::getUserId, userIds) - .eq(BrokerageRecordDO::getBizId, bizType) + .eq(BrokerageRecordDO::getBizType, bizType) .eq(BrokerageRecordDO::getStatus, status) .groupBy(BrokerageRecordDO::getUserId)); // 按照 userId 聚合 return BeanUtil.copyToList(list, UserBrokerageSummaryRespBO.class); diff --git a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageUserMapper.java b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageUserMapper.java index f7989f5..0be0dbb 100644 --- a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageUserMapper.java +++ b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageUserMapper.java @@ -63,7 +63,7 @@ public interface BrokerageUserMapper extends BaseMapperX { Assert.isTrue(incrCount > 0); LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper() .setSql(" brokerage_price = brokerage_price + " + incrCount) - .eq(BrokerageUserDO::getBindUserId, id); + .eq(BrokerageUserDO::getId, id); update(null, lambdaUpdateWrapper); } @@ -95,7 +95,7 @@ public interface BrokerageUserMapper extends BaseMapperX { Assert.isTrue(incrCount < 0); LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper() .setSql(" brokerage_price = brokerage_price + " + incrCount) // 负数,所以使用 + 号 - .eq(BrokerageUserDO::getBindUserId, id); + .eq(BrokerageUserDO::getId, id); return update(null, lambdaUpdateWrapper); } diff --git a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageUserServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageUserServiceImpl.java index 6416e12..0b50509 100644 --- a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageUserServiceImpl.java +++ b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageUserServiceImpl.java @@ -250,7 +250,7 @@ public class BrokerageUserServiceImpl implements BrokerageUserService { if (CollUtil.isEmpty(userMap)) { return PageResult.empty(); } - + Integer status = BrokerageRecordStatusEnum.SETTLEMENT.getStatus(); // 2. 分页查询 IPage pageResult = brokerageUserMapper.selectSummaryPageByUserId( MyBatisUtils.buildPage(pageReqVO), BrokerageRecordBizTypeEnum.ORDER.getType(), @@ -340,6 +340,64 @@ if(ObjectUtil.isNotEmpty(bindUser)){ * @return 下级用户编号列表 */ private List getChildUserIdsByLevel(Long bindUserId, Integer level) { + if (bindUserId == null) { + return Collections.emptyList(); + } + // 情况一:level 为空,查询所有级别---郑大商城无限级别需递归查询 + if (level == null) { + // 大商城无限级别需递归查询 + List bindUserIds = recursionChildUserIds(new ArrayList(), bindUserId); + return bindUserIds; + } + // 先查第 1 级 + List bindUserIds = brokerageUserMapper.selectIdListByBindUserIdIn(Collections.singleton(bindUserId)); + if (CollUtil.isEmpty(bindUserIds)) { + return Collections.emptyList(); + } + + // 情况二:level 为 1,只查询第 1 级 + if (level == 1) { + return bindUserIds; + } + // 情况三:level 为 1,只查询第 2 级 + if (level == 2) { + return brokerageUserMapper.selectIdListByBindUserIdIn(bindUserIds); + } + throw exception(BROKERAGE_USER_LEVEL_NOT_SUPPORT); + } + + /** + * 递归查询所有下级用户,获得下级用户编号列表 + * + * @param bindUserIds 绑定用户编号数组 + * @param bindUserId 绑定用户编号 + * 如果 level 为空,则查询 1+2 两个层级 + * @return 下级用户编号列表 + */ + private List recursionChildUserIds(List bindUserIds,Long bindUserId){ + if (bindUserId == null) { + return Collections.emptyList(); + } + //查询下级 + List childbindUserIds = brokerageUserMapper.selectIdListByBindUserIdIn(Collections.singleton(bindUserId)); + if (CollUtil.isNotEmpty(childbindUserIds)) { + bindUserIds.addAll(childbindUserIds); + for (Long userId:childbindUserIds) { + recursionChildUserIds(bindUserIds,userId); + } + } + return bindUserIds; + } + + /** + * 原查询------根据绑定用户编号,获得下级用户编号列表 + * + * @param bindUserId 绑定用户编号 + * @param level 下级用户的层级。 + * 如果 level 为空,则查询 1+2 两个层级 + * @return 下级用户编号列表 + */ + private List getChildUserIdsByLevelCopy(Long bindUserId, Integer level) { if (bindUserId == null) { return Collections.emptyList(); } diff --git a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java index b6b4034..08e2329 100644 --- a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java +++ b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; +import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum; import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw.BrokerageWithdrawPageReqVO; @@ -93,13 +94,13 @@ public class BrokerageWithdrawServiceImpl implements BrokerageWithdrawService { } // 4. 通知用户 - Map templateParams = MapUtil.builder() - .put("createTime", LocalDateTimeUtil.formatNormal(withdraw.getCreateTime())) - .put("price", MoneyUtils.fenToYuanStr(withdraw.getPrice())) - .put("reason", withdraw.getAuditReason()) - .build(); - notifyMessageSendApi.sendSingleMessageToMember(new NotifySendSingleToUserReqDTO() - .setUserId(withdraw.getUserId()).setTemplateCode(templateCode).setTemplateParams(templateParams)); +// Map templateParams = MapUtil.builder() +// .put("createTime", LocalDateTimeUtil.formatNormal(withdraw.getCreateTime())) +// .put("price", MoneyUtils.fenToYuanStr(withdraw.getPrice())) +// .put("reason", withdraw.getAuditReason()) +// .build(); +// notifyMessageSendApi.sendSingleMessageToMember(new NotifySendSingleToUserReqDTO() +// .setUserId(withdraw.getUserId()).setTemplateCode(templateCode).setTemplateParams(templateParams)); } private BrokerageWithdrawDO validateBrokerageWithdrawExists(Integer id) { diff --git a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java index 5754eba..30f4f79 100644 --- a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java +++ b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java @@ -27,14 +27,19 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreate import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO; import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO; import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO; +import cn.iocoder.yudao.module.trade.convert.brokerage.BrokerageRecordConvert; import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; +import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageRecordDO; +import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; import cn.iocoder.yudao.module.trade.dal.dataobject.cart.CartDO; import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; +import cn.iocoder.yudao.module.trade.dal.mysql.brokerage.BrokerageRecordMapper; import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper; import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper; import cn.iocoder.yudao.module.trade.dal.redis.no.TradeNoRedisDAO; +import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum; import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; import cn.iocoder.yudao.module.trade.enums.order.*; import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; @@ -111,6 +116,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @Resource private BrokerageUserService brokerageUserService; + @Resource + private BrokerageRecordMapper brokerageRecordMapper; + // =================== Order =================== @@ -685,7 +693,12 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @Override @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_PICK_UP_RECEIVE) public void pickUpOrderByAdmin(Long id, String pickUpVerifyCode) { - boolean b = brokerageUserService.updateUserPriceByBindUserId(id, 30); + boolean b = brokerageUserService.updateUserPriceByBindUserId(id, 3000); + // 3. 新增记录 + BrokerageUserDO user = brokerageUserService.getBrokerageUser(id); + BrokerageRecordDO record = BrokerageRecordConvert.INSTANCE.convert(user, BrokerageRecordBizTypeEnum.ORDER, "", 0, 3000, + null, "门店核销佣金", null, null); + brokerageRecordMapper.insert(record); getSelf().pickUpOrder(tradeOrderMapper.selectOneByPickUpVerifyCode(pickUpVerifyCode)); } diff --git a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/resources/mapper/brokerage/BrokerageUserMapper.xml b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/resources/mapper/brokerage/BrokerageUserMapper.xml index 066f75d..aa2353f 100644 --- a/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/resources/mapper/brokerage/BrokerageUserMapper.xml +++ b/ruoyi-vue-pro-master/yudao-module-mall/yudao-module-trade-biz/src/main/resources/mapper/brokerage/BrokerageUserMapper.xml @@ -5,22 +5,18 @@ diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogPageReqVO.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogPageReqVO.java index b16eb32..4c19de3 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogPageReqVO.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogPageReqVO.java @@ -43,4 +43,11 @@ public class DistributionLogPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; -} \ No newline at end of file + + /** + * 出线时间 + */ + @Schema(description = "出线时间") + private LocalDateTime outTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogRespVO.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogRespVO.java index 9f5d504..38f136e 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogRespVO.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogRespVO.java @@ -64,4 +64,12 @@ public class DistributionLogRespVO { @ExcelProperty("手机号") private String phone; + /** + * 出线时间 + */ + @Schema(description = "出线时间") + private LocalDateTime outTime; + + + } diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogSaveReqVO.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogSaveReqVO.java index 2e0635b..2fcb279 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogSaveReqVO.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/distributionlog/vo/DistributionLogSaveReqVO.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.member.controller.admin.distributionlog.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.time.LocalDateTime; import java.util.*; import javax.validation.constraints.*; @@ -36,4 +38,10 @@ public class DistributionLogSaveReqVO { @Schema(description = "推荐人会员等级id", example = "10242") private Long levelId; -} \ No newline at end of file + /** + * 出线时间 + */ + @Schema(description = "出线时间") + private LocalDateTime outTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/AppDistributionLogController.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/AppDistributionLogController.java new file mode 100644 index 0000000..28b7c36 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/AppDistributionLogController.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.module.member.controller.app.distributionlog; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.member.controller.admin.distributionlog.vo.DistributionLogPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.distributionlog.vo.DistributionLogRespVO; +import cn.iocoder.yudao.module.member.controller.app.distributionlog.vo.AppDistributionLogPageReqVO; +import cn.iocoder.yudao.module.member.controller.app.distributionlog.vo.AppDistributionLogRespVO; +import cn.iocoder.yudao.module.member.controller.app.distributionlog.vo.AppDistributionLogSaveReqVO; +import cn.iocoder.yudao.module.member.convert.distributionlog.DistributionLogConvert; +import cn.iocoder.yudao.module.member.dal.dataobject.distributionlog.DistributionLogDO; +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.service.distributionlog.DistributionLogService; +import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import com.alibaba.fastjson.JSONObject; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +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.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId; + +@Tag(name = "app五占一接口 - 分销记录") +@RestController +@RequestMapping("/member/distribution-log") +@Validated +public class AppDistributionLogController { + + @Resource + private DistributionLogService distributionLogService; + + @Resource + private MemberUserService memberUserService; + + @GetMapping("/getUserId") + @Operation(summary = "获取登录用户排名") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getDistributionLog() { + //获取用户id + JSONObject obj = new JSONObject(); + String rankNum = "请先购买1188产品"; + Integer totalNum = 0; + Long loginUserId = getLoginUserId(); + DistributionLogDO distributionLogDO1 = new DistributionLogDO(); + distributionLogDO1.setGameStatus("1"); + //查询所有未出线用户记录 + List list1 = distributionLogService.getDistributionLogList(distributionLogDO1); + if(ObjectUtil.isNotEmpty(list1)){ + totalNum = list1.size(); + } + //先查询是否购买 + DistributionLogDO distributionLogDO = new DistributionLogDO(); + distributionLogDO.setMebId(loginUserId); + //查询用户记录 + List list = distributionLogService.getDistributionLogList(distributionLogDO); + if(ObjectUtil.isNotEmpty(list)){ + DistributionLogDO dto = list.get(0); + if(ObjectUtil.equal(dto.getGameStatus(),"0")){ + rankNum = "已出线"; + }else{ + if(ObjectUtil.isNotEmpty(list1)){ + for (int i = 0; i> getDistributionLogPage(@Valid DistributionLogPageReqVO pageReqVO) { + pageReqVO.setGameStatus("0"); + PageResult pageResult = distributionLogService.getDistributionLogPage(pageReqVO); + // 拼接结果返回 + List users = memberUserService.getUserList( + convertSet(pageResult.getList(), DistributionLogDO::getMebId)); + return success(DistributionLogConvert.INSTANCE.convertPage(pageResult, users)); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogPageReqVO.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogPageReqVO.java new file mode 100644 index 0000000..980fc84 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogPageReqVO.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.member.controller.app.distributionlog.vo; + +import cn.iocoder.yudao.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; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销记录分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AppDistributionLogPageReqVO extends PageParam { + + @Schema(description = "推荐人id", example = "5267") + private Long referrerId; + + @Schema(description = "推荐人id(便于回溯)", example = "23906") + private Long oldReferrerId; + + @Schema(description = "购买人id", example = "6637") + private Long mebId; + + @Schema(description = "佣金") + private Integer brokerage; + + @Schema(description = "分佣结算核销状态", example = "2") + private String status; + + @Schema(description = "游戏状态", example = "2") + private String gameStatus; + + @Schema(description = "游戏兑换状态", example = "1") + private String convertStatus; + + @Schema(description = "推荐人会员等级id", example = "10242") + private Long levelId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + /** + * 出线时间 + */ + @Schema(description = "出线时间") + private LocalDateTime outTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogRespVO.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogRespVO.java new file mode 100644 index 0000000..8e56ddb --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogRespVO.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.member.controller.app.distributionlog.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 分销记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppDistributionLogRespVO { + + @Schema(description = "id主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4693") + @ExcelProperty("id主键") + private Long id; + + @Schema(description = "推荐人id", example = "5267") + @ExcelProperty("推荐人id") + private Long referrerId; + + @Schema(description = "推荐人id(便于回溯)", example = "23906") + @ExcelProperty("推荐人id(便于回溯)") + private Long oldReferrerId; + + @Schema(description = "购买人id", example = "6637") + @ExcelProperty("购买人id") + private Long mebId; + + @Schema(description = "佣金") + @ExcelProperty("佣金") + private Integer brokerage; + + @Schema(description = "分佣结算核销状态", example = "2") + @ExcelProperty("分佣结算核销状态") + private String status; + + @Schema(description = "游戏状态", example = "2") + @ExcelProperty("游戏状态") + private String gameStatus; + + @Schema(description = "游戏兑换状态", example = "1") + @ExcelProperty("游戏兑换状态") + private String convertStatus; + + @Schema(description = "推荐人会员等级id", example = "10242") + @ExcelProperty("推荐人会员等级id") + private Long levelId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "用户昵称", example = "2") + @ExcelProperty("用户昵称") + private String nickname; + + @Schema(description = "用户名称", example = "2") + @ExcelProperty("用户名称") + private String userName; + + @Schema(description = "手机号", example = "2") + @ExcelProperty("手机号") + private String phone; + + + /** + * 出线时间 + */ + @Schema(description = "出线时间") + @ExcelProperty("出线时间") + private LocalDateTime outTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogSaveReqVO.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogSaveReqVO.java new file mode 100644 index 0000000..1cd7287 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/distributionlog/vo/AppDistributionLogSaveReqVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.member.controller.app.distributionlog.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 分销记录新增/修改 Request VO") +@Data +public class AppDistributionLogSaveReqVO { + + @Schema(description = "id主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4693") + private Long id; + + @Schema(description = "推荐人id", example = "5267") + private Long referrerId; + + @Schema(description = "推荐人id(便于回溯)", example = "23906") + private Long oldReferrerId; + + @Schema(description = "购买人id", example = "6637") + private Long mebId; + + @Schema(description = "佣金") + private Integer brokerage; + + @Schema(description = "分佣结算核销状态", example = "2") + private String status; + + @Schema(description = "游戏状态", example = "2") + private String gameStatus; + + @Schema(description = "游戏兑换状态", example = "1") + private String convertStatus; + + @Schema(description = "推荐人会员等级id", example = "10242") + private Long levelId; + + + /** + * 出线时间 + */ + @Schema(description = "出线时间") + private LocalDateTime outTime; +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/distributionlog/DistributionLogDO.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/distributionlog/DistributionLogDO.java index 3dcb22e..d4de9bc 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/distributionlog/DistributionLogDO.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/distributionlog/DistributionLogDO.java @@ -60,4 +60,9 @@ public class DistributionLogDO extends BaseDO { */ private Long levelId; -} \ No newline at end of file + /** + * 出线时间 + */ + private LocalDateTime outTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/distributionlog/DistributionLogMapper.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/distributionlog/DistributionLogMapper.java index ea5c7c2..0573ea3 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/distributionlog/DistributionLogMapper.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/distributionlog/DistributionLogMapper.java @@ -28,7 +28,7 @@ public interface DistributionLogMapper extends BaseMapperX { .eqIfPresent(DistributionLogDO::getConvertStatus, reqVO.getConvertStatus()) .eqIfPresent(DistributionLogDO::getLevelId, reqVO.getLevelId()) .betweenIfPresent(DistributionLogDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(DistributionLogDO::getId)); + .orderByAsc(DistributionLogDO::getId)); } -} \ No newline at end of file +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogService.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogService.java index 598c6ec..8b3fdd8 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogService.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogService.java @@ -51,5 +51,12 @@ public interface DistributionLogService { * @return 分销记录分页 */ PageResult getDistributionLogPage(DistributionLogPageReqVO pageReqVO); + /** + * 查询五占一游戏记录 + * + * @param pageReqVO 分页查询 + * @return 分销记录分页 + */ + List getDistributionLogList(DistributionLogDO pageReqVO); -} \ No newline at end of file +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogServiceImpl.java index b0d2283..e9d9980 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogServiceImpl.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/distributionlog/DistributionLogServiceImpl.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.member.service.distributionlog; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -71,4 +73,29 @@ public class DistributionLogServiceImpl implements DistributionLogService { return distributionLogMapper.selectPage(pageReqVO); } -} \ No newline at end of file + @Override + public List getDistributionLogList(DistributionLogDO pageReqVO) { + LambdaQueryWrapperX queryWrapperX = new LambdaQueryWrapperX<>(); + if(ObjectUtil.isNotEmpty(pageReqVO.getMebId())){ + queryWrapperX.eq(DistributionLogDO::getMebId,pageReqVO.getMebId()); + } + if(ObjectUtil.isNotEmpty(pageReqVO.getStatus())){ + queryWrapperX.eq(DistributionLogDO::getStatus,pageReqVO.getStatus()); + } + if(ObjectUtil.isNotEmpty(pageReqVO.getConvertStatus())){ + queryWrapperX.eq(DistributionLogDO::getConvertStatus,pageReqVO.getConvertStatus()); + } + if(ObjectUtil.isNotEmpty(pageReqVO.getGameStatus())){ + queryWrapperX.eq(DistributionLogDO::getGameStatus,pageReqVO.getGameStatus()); + } + if(ObjectUtil.isNotEmpty(pageReqVO.getLevelId())){ + queryWrapperX.eq(DistributionLogDO::getLevelId,pageReqVO.getLevelId()); + } + if(ObjectUtil.isNotEmpty(pageReqVO.getReferrerId())){ + queryWrapperX.eq(DistributionLogDO::getReferrerId,pageReqVO.getReferrerId()); + } + queryWrapperX.orderByAsc(DistributionLogDO::getId); + return distributionLogMapper.selectList(queryWrapperX); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index f47e8bb..4f115f0 100644 --- a/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/ruoyi-vue-pro-master/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -444,28 +444,33 @@ public class MemberUserServiceImpl implements MemberUserService { .orderByAsc(DistributionMebConfigDO::getLevelId)); //添加5占一 if(ObjectUtil.isNotEmpty(distributionMebConfigDOS)){ - //添加5占一游戏 - DistributionLogDO distributionLogDO = new DistributionLogDO(); - distributionLogDO.setMebId(userId); - distributionLogDO.setStatus("1"); -// distributionLogDO.setBrokerage(); - distributionLogDO.setGameStatus("1"); - distributionLogDO.setConvertStatus("1"); - distributionLogMapper.insert(distributionLogDO); - //查询5占一总数 - List distributionLogDOS = distributionLogMapper.selectList(new LambdaQueryWrapperX() + Long l = distributionLogMapper.selectCount(new LambdaQueryWrapperX().eq(DistributionLogDO::getMebId, userId) .orderByAsc(DistributionLogDO::getCreateTime)); - int i1 = distributionLogDOS.size() % 5; - if(i1 == 0){ -// DistributionLogDO vo = distributionLogDOS.get((distributionLogDOS.size()/5)-1); -// vo.setGameStatus("0"); -// distributionLogMapper.updateById(vo); - List distributionLogDOS1 = distributionLogDOS.subList(0, (distributionLogDOS.size() / 5)); - for (DistributionLogDO dt:distributionLogDOS1) { - dt.setGameStatus("0"); - } - distributionLogMapper.updateBatch(distributionLogDOS1); + if(l == 0){ + //添加5占一游戏 + DistributionLogDO distributionLogDO = new DistributionLogDO(); + distributionLogDO.setMebId(userId); + distributionLogDO.setStatus("1"); +// distributionLogDO.setBrokerage(); + distributionLogDO.setGameStatus("1"); + distributionLogDO.setConvertStatus("1"); + distributionLogDO.setOutTime(LocalDateTime.now()); + distributionLogMapper.insert(distributionLogDO); + //查询5占一总数 + List distributionLogDOS = distributionLogMapper.selectList(new LambdaQueryWrapperX() + .orderByAsc(DistributionLogDO::getCreateTime)); + int i1 = distributionLogDOS.size() % 5; + if(i1 == 0){ + DistributionLogDO vo = distributionLogDOS.get((distributionLogDOS.size()/5)-1); + vo.setGameStatus("0"); + distributionLogMapper.updateById(vo); +// List distributionLogDOS1 = distributionLogDOS.subList(0, (distributionLogDOS.size() / 5)); +// for (DistributionLogDO dt:distributionLogDOS1) { +// dt.setGameStatus("0"); +// } +// distributionLogMapper.updateBatch(distributionLogDOS1); // distributionLogMapper.up + } } } @@ -482,6 +487,8 @@ public class MemberUserServiceImpl implements MemberUserService { if(eg.getLevelId() == memberUserDO.getLevelId()){ //添加佣金记录 BrokerageRecordDO brokerageRecordDO = new BrokerageRecordDO(); +// brokerageRecordDO.setId(Math.toIntExact(brokerageUserDO.getBindUserId())); + brokerageRecordDO.setBizId(orderId+""); brokerageRecordDO.setUserId(memberUserDO.getId()); brokerageRecordDO.setBizType(1); brokerageRecordDO.setTitle("分销直推佣金"); @@ -500,11 +507,15 @@ public class MemberUserServiceImpl implements MemberUserService { brokerageRecordDO.setSourceUserLevel(configLevelDO.getLevel()); brokerageRecordDO.setSourceUserId(userId); brokerageRecordMapper.insert(brokerageRecordDO); + //修改推广员佣金 + BrokerageUserDO brokerageUserDO1 = brokerageUserMapper.selectById(brokerageUserDO.getBindUserId()); + brokerageUserDO1.setBrokeragePrice(eg.getBrokerage()*100+brokerageUserDO1.getBrokeragePrice()); + brokerageUserMapper.updateById(brokerageUserDO1); break; } } } - recursionMemberLevel(brokerageUserDO.getId(),orderId); + recursionMemberLevel(brokerageUserDO.getBindUserId(),orderId); } } } @@ -514,80 +525,82 @@ public class MemberUserServiceImpl implements MemberUserService { private void recursionMemberLevel(Long userId,Long orderId){ //查询会员信息 MemberUserDO memberUserDO = memberUserMapper.selectById(userId); - DistributionStatisticsDO distributionStatisticsDO = new DistributionStatisticsDO(); - distributionStatisticsDO.setLevelId(memberUserDO.getLevelId()); - distributionStatisticsDO.setMebId(memberUserDO.getId()); - distributionStatisticsDO.setLogId(orderId); - distributionStatisticsDO.setStatus("1"); - distributionStatisticsMapper.insert(distributionStatisticsDO); - //查询会员当前等级 - MemberLevelDO memberLevelDO = memberLevelMapper.selectById(memberUserDO.getLevelId()); - if(ObjectUtil.isNotEmpty(memberLevelDO)){ - //查询上一级会员等级 - MemberLevelDO upLevelDO = memberLevelMapper.selectOne(new LambdaQueryWrapperX() - .eq(MemberLevelDO::getStatus, 0) - .eq(MemberLevelDO::getDeleted, 0) - .eq(MemberLevelDO::getLevel, (memberLevelDO.getLevel()+1)) - .orderByAsc(MemberLevelDO::getLevel)); - if(ObjectUtil.isNotEmpty(upLevelDO)){ - if(ObjectUtil.equal(memberLevelDO.getLevel(),1)){//帮扶人不升级 - //添加推荐统计 - } - if(ObjectUtil.equal(memberLevelDO.getLevel(),2)){//帮扶员升级帮扶驿站 - //查询会员邀请记录下级会员 - List brokerageUserDOS = brokerageUserMapper.selectList(new LambdaQueryWrapperX() - .eq(BrokerageUserDO::getBindUserId, userId) - .ge(BrokerageUserDO::getLevel, memberLevelDO.getLevel()) - .eq(BrokerageUserDO::getDeleted, 0) - ); - if(ObjectUtil.isNotEmpty(brokerageUserDOS)){ - if(brokerageUserDOS.size()>=3){ - //升级会员 - memberUserMapper.updateById(new MemberUserDO() - .setId(userId) - .setLevelId(upLevelDO.getId()) - ); - brokerageUserMapper.updateById(new BrokerageUserDO() - .setId(userId) - .setLevel(upLevelDO.getLevel()) - ); + if(ObjectUtil.isNotEmpty(memberUserDO)){ + DistributionStatisticsDO distributionStatisticsDO = new DistributionStatisticsDO(); + distributionStatisticsDO.setLevelId(memberUserDO.getLevelId()); + distributionStatisticsDO.setMebId(memberUserDO.getId()); + distributionStatisticsDO.setLogId(orderId); + distributionStatisticsDO.setStatus("1"); + distributionStatisticsMapper.insert(distributionStatisticsDO); + //查询会员当前等级 + MemberLevelDO memberLevelDO = memberLevelMapper.selectById(memberUserDO.getLevelId()); + if(ObjectUtil.isNotEmpty(memberLevelDO)){ + //查询上一级会员等级 + MemberLevelDO upLevelDO = memberLevelMapper.selectOne(new LambdaQueryWrapperX() + .eq(MemberLevelDO::getStatus, 0) + .eq(MemberLevelDO::getDeleted, 0) + .eq(MemberLevelDO::getLevel, (memberLevelDO.getLevel()+1)) + .orderByAsc(MemberLevelDO::getLevel)); + if(ObjectUtil.isNotEmpty(upLevelDO)){ + if(ObjectUtil.equal(memberLevelDO.getLevel(),1)){//帮扶人不升级 + //添加推荐统计 + } + if(ObjectUtil.equal(memberLevelDO.getLevel(),2)){//帮扶员升级帮扶驿站 + //查询会员邀请记录下级会员 + List brokerageUserDOS = brokerageUserMapper.selectList(new LambdaQueryWrapperX() + .eq(BrokerageUserDO::getBindUserId, userId) + .ge(BrokerageUserDO::getLevel, memberLevelDO.getLevel()) + .eq(BrokerageUserDO::getDeleted, 0) + ); + if(ObjectUtil.isNotEmpty(brokerageUserDOS)){ + if(brokerageUserDOS.size()>=3){ + //升级会员 + memberUserMapper.updateById(new MemberUserDO() + .setId(userId) + .setLevelId(upLevelDO.getId()) + ); + brokerageUserMapper.updateById(new BrokerageUserDO() + .setId(userId) + .setLevel(upLevelDO.getLevel()) + ); + } } + //判断上级会员是否升级 + BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(userId); + recursionMemberLevel(brokerageUserDO.getBindUserId(),orderId); } - //判断上级会员是否升级 - BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(userId); - recursionMemberLevel(brokerageUserDO.getBindUserId(),orderId); - } - if(ObjectUtil.equal(memberLevelDO.getLevel(),3)){//帮扶驿站升级帮扶中心 - //查询会员邀请记录下级会员 - List brokerageUserDOS = brokerageUserMapper.selectList(new LambdaQueryWrapperX() - .eq(BrokerageUserDO::getBindUserId, userId) - .ge(BrokerageUserDO::getLevel, memberLevelDO.getLevel()) - .eq(BrokerageUserDO::getDeleted, 0) - ); - //查询会员邀请记录下级会员 - List brokerageUserDOS1 = brokerageUserMapper.selectList(new LambdaQueryWrapperX() - .eq(BrokerageUserDO::getBindUserId, userId) - .ge(BrokerageUserDO::getLevel, 2) - .eq(BrokerageUserDO::getDeleted, 0) - ); - if(ObjectUtil.isNotEmpty(brokerageUserDOS)){ - if(brokerageUserDOS.size()>=10 || brokerageUserDOS1.size()>=300){ - //升级会员 - memberUserMapper.updateById(new MemberUserDO() - .setId(userId) - .setLevelId(upLevelDO.getId()) - ); - brokerageUserMapper.updateById(new BrokerageUserDO() - .setId(userId) - .setLevel(upLevelDO.getLevel()) - ); + if(ObjectUtil.equal(memberLevelDO.getLevel(),3)){//帮扶驿站升级帮扶中心 + //查询会员邀请记录下级会员 + List brokerageUserDOS = brokerageUserMapper.selectList(new LambdaQueryWrapperX() + .eq(BrokerageUserDO::getBindUserId, userId) + .ge(BrokerageUserDO::getLevel, memberLevelDO.getLevel()) + .eq(BrokerageUserDO::getDeleted, 0) + ); + //查询会员邀请记录下级会员 + List brokerageUserDOS1 = brokerageUserMapper.selectList(new LambdaQueryWrapperX() + .eq(BrokerageUserDO::getBindUserId, userId) + .ge(BrokerageUserDO::getLevel, 2) + .eq(BrokerageUserDO::getDeleted, 0) + ); + if(ObjectUtil.isNotEmpty(brokerageUserDOS)){ + if(brokerageUserDOS.size()>=10 || brokerageUserDOS1.size()>=300){ + //升级会员 + memberUserMapper.updateById(new MemberUserDO() + .setId(userId) + .setLevelId(upLevelDO.getId()) + ); + brokerageUserMapper.updateById(new BrokerageUserDO() + .setId(userId) + .setLevel(upLevelDO.getLevel()) + ); + } } + //判断上级会员是否升级 + BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(userId); + recursionMemberLevel(brokerageUserDO.getBindUserId(),orderId); + } + if(ObjectUtil.equal(memberLevelDO.getLevel(),4)){//帮扶中心不做升级 } - //判断上级会员是否升级 - BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(userId); - recursionMemberLevel(brokerageUserDO.getBindUserId(),orderId); - } - if(ObjectUtil.equal(memberLevelDO.getLevel(),4)){//帮扶中心不做升级 } } } diff --git a/yudao-ui-admin-vue3-master/src/views/Login/SocialLogin.vue b/yudao-ui-admin-vue3-master/src/views/Login/SocialLogin.vue index 40246f1..4a34def 100644 --- a/yudao-ui-admin-vue3-master/src/views/Login/SocialLogin.vue +++ b/yudao-ui-admin-vue3-master/src/views/Login/SocialLogin.vue @@ -197,8 +197,8 @@ const loginData = reactive({ tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE !== 'false', loginForm: { tenantName: '郑大钒水', - username: 'admin', - password: 'admin123', + username: 'zhengdafanshui', + password: '123456', captchaVerification: '', rememberMe: false } From 08146bb1999f43a7e4dc2aa42a5980e62a684178 Mon Sep 17 00:00:00 2001 From: 13233904609 <13233904609@163.cm> Date: Fri, 26 Jul 2024 14:46:57 +0800 Subject: [PATCH 2/2] u --- yudao-ui-admin-vue3-master/.env | 4 ++-- yudao-ui-admin-vue3-master/.env.dev | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/yudao-ui-admin-vue3-master/.env b/yudao-ui-admin-vue3-master/.env index fc5eee0..416b9b9 100644 --- a/yudao-ui-admin-vue3-master/.env +++ b/yudao-ui-admin-vue3-master/.env @@ -21,5 +21,5 @@ VITE_APP_BAIDU_CODE = a1ff8825baa73c3a78eb96aa40325abc # 默认账户密码 VITE_APP_DEFAULT_LOGIN_TENANT = 郑大钒水 -VITE_APP_DEFAULT_LOGIN_USERNAME = admin -VITE_APP_DEFAULT_LOGIN_PASSWORD = admin123 +VITE_APP_DEFAULT_LOGIN_USERNAME = zhengdafanshui +VITE_APP_DEFAULT_LOGIN_PASSWORD = 123456 diff --git a/yudao-ui-admin-vue3-master/.env.dev b/yudao-ui-admin-vue3-master/.env.dev index 9ec935f..92626f9 100644 --- a/yudao-ui-admin-vue3-master/.env.dev +++ b/yudao-ui-admin-vue3-master/.env.dev @@ -4,12 +4,12 @@ NODE_ENV=production VITE_DEV=true # 请求路径 -VITE_BASE_URL='http://zda.huamar.com' +VITE_BASE_URL='http://zd.huamar.com' # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务 VITE_UPLOAD_TYPE=server # 上传路径 -VITE_UPLOAD_URL='http://zda.huamar.com/admin-api/infra/file/upload' +VITE_UPLOAD_URL='http://zd.huamar.com/admin-api/infra/file/upload' # 接口地址 VITE_API_URL=/admin-api