From 3a209f056b14719dcc047c1cd8c091df7d7a42ce Mon Sep 17 00:00:00 2001 From: tangqian Date: Fri, 19 May 2023 16:45:37 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E6=94=AF=E4=BB=98=E5=AE=9D?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/properties/AliPayProperties.java | 4 ++ .../member/AlipayNotifyParamRequest.java | 47 ------------- .../request/member/OrderContentRequest.java | 3 +- .../admin/notify/WxPayNotifyController.java | 19 +++++- .../recharge/RechargeOrderInfoController.java | 3 +- .../admin/recharge/vo/RechargeGearRespVO.java | 2 +- .../app/buy/TopUpOrderController.java | 3 + .../dataobject/recharge/RechargeOrderDO.java | 10 +++ .../recharge/RechargeOrderInfoDO.java | 18 ++++- .../order/impl/StoreOrderServiceImpl.java | 68 +++++++++++++------ .../recharge/RechargeGearServiceImpl.java | 2 +- .../recharge/RechargeOrderInfoService.java | 2 +- .../RechargeOrderInfoServiceImpl.java | 2 +- .../shop/support/pay/AliPayStrategy.java | 2 +- .../module/member/api/user/MemberUserApi.java | 3 + .../api/user/dto/MemberUserRespDTO.java | 5 +- .../member/api/user/dto/PromoterDTO.java | 27 ++++++++ .../member/api/user/MemberUserApiImpl.java | 14 ++++ .../service/promoter/PromoterService.java | 1 + .../service/promoter/PromoterServiceImpl.java | 48 +++++++------ 20 files changed, 185 insertions(+), 98 deletions(-) delete mode 100644 yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/AlipayNotifyParamRequest.java create mode 100644 yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/PromoterDTO.java diff --git a/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/properties/AliPayProperties.java b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/properties/AliPayProperties.java index 44d11e9f3..d435f161e 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/properties/AliPayProperties.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/properties/AliPayProperties.java @@ -36,5 +36,9 @@ public class AliPayProperties { * 回调地址. */ private String notifyUrl; + /** + * 回调地址. + */ + private String refundNotify; } diff --git a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/AlipayNotifyParamRequest.java b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/AlipayNotifyParamRequest.java deleted file mode 100644 index 7a91102f1..000000000 --- a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/AlipayNotifyParamRequest.java +++ /dev/null @@ -1,47 +0,0 @@ -package cn.iocoder.yudao.module.shop.request.member; - -import lombok.Data; -import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.util.Date; - -/** - * @Title:AlipayNotifyParamRequest - * @Description: TODO - * @author: tangqian - * @date: 2023/5/19 10:27 - * @version: V1.0.0 - */ -@Data -@Accessors(chain = true) -public class AlipayNotifyParamRequest implements Serializable { - private static final long serialVersionUID = 5839750515063699319L; - private String appId; - private String tradeNo; // 支付宝交易凭证号 - private String outTradeNo; // 原支付请求的商户订单号 - private String outBizNo; // 商户业务ID,主要是退款通知中返回退款申请的流水号 - private String buyerId; // 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字 - private String buyerLogonId; // 买家支付宝账号 - private String sellerId; // 卖家支付宝用户号 - private String sellerEmail; // 卖家支付宝账号 - private String tradeStatus; // 交易目前所处的状态,见交易状态说明 - private String totalAmount; // 本次交易支付的订单金额 - private String receiptAmount; // 商家在交易中实际收到的款项 - private String buyerPayAmount; // 用户在交易中支付的金额 - private String refundFee; // 退款通知中,返回总退款金额,单位为元,支持两位小数 - private String subject; // 商品的标题/交易标题/订单标题/订单关键字等 - private String body; // 该订单的备注、描述、明细等。对应请求时的body参数,原样通知回来 - private Date gmtCreate; // 该笔交易创建的时间。格式为yyyy-MM-dd HH:mm:ss - private Date gmtPayment; // 该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss - private Date notifyTime; // 通知时间。格式为yyyy-MM-dd HH:mm:ss - private Date gmtRefund; // 该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S - private Date gmtClose; // 该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss - private String fundBillList; // 支付成功的各个渠道金额信息,array - private String passbackParams; // 公共回传参数,如果请求时传递了该参数,则返回给商户时会在异步通知时将该参数原样返回。 - private String authAppId; - private String notifyId; - private String notifyType; - private String version; - private String invoiceAmount;//交易中可给用户开具发票的金额 -} diff --git a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/OrderContentRequest.java b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/OrderContentRequest.java index 9120c416d..73c9fe6d7 100644 --- a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/OrderContentRequest.java +++ b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/request/member/OrderContentRequest.java @@ -7,6 +7,7 @@ import lombok.experimental.Accessors; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; import java.io.Serializable; import java.util.List; @@ -43,7 +44,7 @@ public class OrderContentRequest implements Serializable { private static final long serialVersionUID = -4967251473044468810L; @Schema(description = "订单id") @NotNull(message = "挡位id不能为空") - private String gearId; + private Long gearId; @Schema(description = "档位名称") @NotEmpty(message = "挡位名称不能为空") diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/WxPayNotifyController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/WxPayNotifyController.java index ac69a1215..5b338c907 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/WxPayNotifyController.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/WxPayNotifyController.java @@ -1,8 +1,12 @@ package cn.iocoder.yudao.module.shop.controller.admin.notify; +import cn.hutool.core.util.NumberUtil; import cn.hutool.json.JSONUtil; +import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderDO; +import cn.iocoder.yudao.module.shop.dal.mysql.recharge.RechargeOrderMapper; import cn.iocoder.yudao.module.shop.service.order.StoreOrderService; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.binarywang.wxpay.bean.notify.OriginNotifyResponse; import com.github.binarywang.wxpay.bean.notify.SignatureHeader; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result; @@ -19,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; /** @@ -38,6 +43,8 @@ public class WxPayNotifyController { @Autowired private StoreOrderService storeOrderService; + @Autowired + private RechargeOrderMapper rechargeOrderMapper; /** @@ -113,13 +120,21 @@ public class WxPayNotifyController { log.info("退款原始通知=" + JSONUtil.toJsonPrettyStr(jsonData)); try { //解密后的数据 - v3Result = wxPayService.parseRefundNotifyV3Result(JSONUtil.toJsonPrettyStr(notifyResponse), this.getRequestHeader(request)); + v3Result = wxPayService.parseRefundNotifyV3Result(jsonData, this.getRequestHeader(request)); WxPayRefundNotifyV3Result.DecryptNotifyResult result = v3Result.getResult(); log.info("退款通知=" + JSONUtil.toJsonPrettyStr(result)); //退款状态 - if (StringUtils.equals("SUCCESS", result.getRefundId())) { + if (StringUtils.equals("SUCCESS", result.getRefundStatus())) { log.info("微信退款回调成功"); // 验证相关参数-金额 + // 用户支付金额 + BigDecimal payerTotal = NumberUtil.div(result.getAmount().getPayerTotal() + "", "100", 2); + // 处理相关逻辑 + RechargeOrderDO orderDO = rechargeOrderMapper.selectOne(Wrappers.lambdaQuery().eq(RechargeOrderDO::getOrderId, result.getOutRefundNo())); + if (payerTotal.compareTo(orderDO.getPayPrice()) != 0) { + log.error("支付金额不匹配,订单实际支付金额:{},微信入参验证金额:{}", orderDO.getPayPrice(), payerTotal); + return "failure"; + } // 修改订单状态 // 写入 response.setStatus(HttpServletResponse.SC_OK); diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderInfoController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderInfoController.java index df0328b74..e6873800b 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderInfoController.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderInfoController.java @@ -27,6 +27,7 @@ import cn.iocoder.yudao.module.shop.controller.admin.recharge.vo.*; import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderInfoDO; import cn.iocoder.yudao.module.shop.convert.recharge.RechargeOrderInfoConvert; import cn.iocoder.yudao.module.shop.service.recharge.RechargeOrderInfoService; +import sun.rmi.runtime.Log; @Tag(name = "管理后台 - 订单购物详情") @RestController @@ -40,7 +41,7 @@ public class RechargeOrderInfoController { @PostMapping("/create") @Operation(summary = "创建订单购物详情") @PreAuthorize("@ss.hasPermission('shop:recharge-order-info:create')") - public CommonResult createRechargeOrderInfo(@Valid @RequestBody RechargeOrderInfoCreateReqVO createReqVO) { + public CommonResult createRechargeOrderInfo(@Valid @RequestBody RechargeOrderInfoCreateReqVO createReqVO) { return success(rechargeOrderInfoService.createRechargeOrderInfo(createReqVO)); } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearRespVO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearRespVO.java index 0c1ac5524..9a6adde4d 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearRespVO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearRespVO.java @@ -11,7 +11,7 @@ import java.time.LocalDateTime; public class RechargeGearRespVO extends RechargeGearBaseVO { @Schema(description = "主键", required = true, example = "3324") - private String id; + private Long id; @Schema(description = "创建时间", required = true) private LocalDateTime createTime; diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/buy/TopUpOrderController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/buy/TopUpOrderController.java index 9e1dad4cd..4b944f022 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/buy/TopUpOrderController.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/buy/TopUpOrderController.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.shop.controller.app.buy; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.shop.request.member.OrderContentRequest; import cn.iocoder.yudao.module.shop.request.member.RefundRequest; import cn.iocoder.yudao.module.shop.response.member.InitOrderResponse; @@ -38,6 +39,7 @@ public class TopUpOrderController { log.info("initOrder会员充值===>{}", request); return CommonResult.success(storeOrderService.memberTopUp(request, servletRequest)); } + @TenantIgnore @PreAuthenticated @Operation(summary = "退款") @RequestMapping(value = "/memberRefund", method = RequestMethod.POST) @@ -45,6 +47,7 @@ public class TopUpOrderController { log.info("memberRefund会员退款===>{}", request); return CommonResult.success(storeOrderService.memberRefund(request, servletRequest)); } + @TenantIgnore @PreAuthenticated @Operation(summary = "申请退款") @RequestMapping(value = "/memberApplyRefund", method = RequestMethod.POST) diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java index d4d8d4efe..656f909bd 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java @@ -169,4 +169,14 @@ public class RechargeOrderDO extends BaseDO { private String updater; private Boolean deleted; + /** + * 推广员id + */ + private Long promoterId; + + /** + * 组织id + */ + private Long deptId; + } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java index 9abb9b89c..7824e1fee 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java @@ -28,7 +28,7 @@ public class RechargeOrderInfoDO extends BaseDO { * 主键 */ @TableId - private Integer id; + private Long id; /** * 充值订单id */ @@ -36,7 +36,7 @@ public class RechargeOrderInfoDO extends BaseDO { /** * 充值档位 */ - private Integer rechargeGearId; + private Long rechargeGearId; /** * 订单号 */ @@ -74,5 +74,19 @@ public class RechargeOrderInfoDO extends BaseDO { private String updater; private LocalDateTime createTime; private LocalDateTime updateTime; + /** + * 推广员id + */ + private Long promoterId; + + /** + * 组织id + */ + private Long deptId; + + /** + * 用户id + */ + private Long uid; } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java index 9146cdb12..d282a5652 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.shop.service.order.impl; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; @@ -15,9 +14,9 @@ import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.pay.properties.AliPayProperties; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; -import cn.iocoder.yudao.module.infra.api.config.ApiConfigApi; import cn.iocoder.yudao.module.member.api.user.MemberUserApi; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import cn.iocoder.yudao.module.member.api.user.dto.PromoterDTO; import cn.iocoder.yudao.module.shop.dal.dataobject.express.ExpressDO; import cn.iocoder.yudao.module.shop.dal.dataobject.order.StoreOrder; import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.PhoneRecordDO; @@ -27,7 +26,6 @@ import cn.iocoder.yudao.module.shop.dal.mysql.order.StoreOrderMapper; import cn.iocoder.yudao.module.shop.dal.mysql.recharge.PhoneRecordMapper; import cn.iocoder.yudao.module.shop.dal.mysql.recharge.RechargeOrderInfoMapper; import cn.iocoder.yudao.module.shop.dal.mysql.recharge.RechargeOrderMapper; -import cn.iocoder.yudao.module.shop.request.member.AlipayNotifyParamRequest; import cn.iocoder.yudao.module.shop.request.member.OrderContentRequest; import cn.iocoder.yudao.module.shop.request.member.RefundRequest; import cn.iocoder.yudao.module.shop.request.order.StoreOrderRefundRequest; @@ -43,7 +41,9 @@ import cn.iocoder.yudao.module.shop.service.order.StoreOrderService; import cn.iocoder.yudao.module.shop.service.order.StoreOrderStatusService; import cn.iocoder.yudao.module.shop.support.StrategySupport; import cn.iocoder.yudao.module.shop.support.pay.IPayStrategy; -import cn.iocoder.yudao.module.shop.utils.*; +import cn.iocoder.yudao.module.shop.utils.CommonPage; +import cn.iocoder.yudao.module.shop.utils.OrderUtil; +import cn.iocoder.yudao.module.shop.utils.RedisUtil; import cn.iocoder.yudao.module.shop.vo.order.LogisticsResultVo; import cn.iocoder.yudao.module.shop.vo.order.StoreDateRangeSqlPram; import cn.iocoder.yudao.module.shop.vo.order.StoreOrderInfoOldVo; @@ -61,7 +61,6 @@ import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken; import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.common.service.WxOAuth2Service; import me.chanjar.weixin.mp.api.WxMpService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -75,12 +74,12 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.BufferedWriter; import java.io.IOException; -import java.io.OutputStreamWriter; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -1154,12 +1153,13 @@ public class StoreOrderServiceImpl extends ServiceImpl>>>>>>>>>>>>>支付宝订单交易成功!订单号:{}<<<<<<<<<<<<<<<<<<<<", orderId); return "success"; } else { @@ -1253,6 +1264,8 @@ public class StoreOrderServiceImpl extends ServiceImpl params = new HashMap(); Map requestParams = request.getParameterMap(); for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) { @@ -1338,7 +1351,7 @@ public class StoreOrderServiceImpl extends ServiceImpl orderInfos = request.getOrderInfos(); orderDO.setOrderId(code); @@ -1357,6 +1370,8 @@ public class StoreOrderServiceImpl extends ServiceImpl infoDOS = new ArrayList<>(); orderInfos.forEach(info -> { @@ -1368,16 +1383,31 @@ public class StoreOrderServiceImpl extends ServiceImpl orderInfos = request.getOrderInfos(); + Assert.isTrue(!CollectionUtils.isEmpty(orderInfos), "订单信息不能为空!"); + List collect = orderInfos.stream().map(OrderContentRequest.OrderInfo::getGearId).collect(Collectors.toList()); + List infoDOS = rechargeOrderInfoMapper.selectList(Wrappers.lambdaQuery() + .eq(RechargeOrderInfoDO::getUid, user.getId()) + .in(RechargeOrderInfoDO::getRechargeGearId, collect)); + if (!CollectionUtils.isEmpty(infoDOS)) { + Map> collect1 = infoDOS.stream().collect(Collectors.groupingBy(RechargeOrderInfoDO::getRechargeGearId)); + orderInfos.forEach(info -> { + Assert.isTrue(CollectionUtils.isEmpty(collect1.get(info.getGearId())), "该挡位:" + info.getName() + "你已购买,请勿重复操作"); + }); + } if (StringUtils.isNotBlank(request.getUserPhone()) && StringUtils.isNotBlank(request.getConfirmPhone())) { Assert.isTrue(StringUtils.equals(request.getUserPhone(), request.getConfirmPhone()), "输入号码不一致!"); + Assert.isTrue(Pattern.matches("^[1][3,4,5,7,8][0,1,2,4,5,6,7,8,9][0-9]{8}$", request.getUserPhone()), "手机号前三位不能是190或193!"); MemberUserRespDTO userByMobile = userService.getUserByMobile(request.getUserPhone()); // 初始化一个账号 if (Objects.isNull(userByMobile)) { diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearServiceImpl.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearServiceImpl.java index 42beda78e..dab8315ec 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearServiceImpl.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearServiceImpl.java @@ -106,7 +106,7 @@ public class RechargeGearServiceImpl implements RechargeGearService { RechargeOrderDO orderDO = orderMapper.selectOne(Wrappers.lambdaQuery().eq(RechargeOrderDO::getUid, loginUser.getId()).last("LIMIT 1")); if (Objects.nonNull(orderDO)) { List infoDOS = orderInfoMapper.selectList(Wrappers.lambdaQuery().eq(RechargeOrderInfoDO::getOrderNo, orderDO.getOrderId())); - Map> collect = infoDOS.stream().collect(Collectors.groupingBy(RechargeOrderInfoDO::getRechargeGearId)); + Map> collect = infoDOS.stream().collect(Collectors.groupingBy(RechargeOrderInfoDO::getRechargeGearId)); rechargeGearRespVOS.forEach(vo -> { List infoDOS1 = collect.get(vo.getId()); if (!CollectionUtils.isEmpty(infoDOS1)) { diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java index 07247bf0c..c3cd32244 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java @@ -19,7 +19,7 @@ public interface RechargeOrderInfoService { * @param createReqVO 创建信息 * @return 编号 */ - Integer createRechargeOrderInfo(@Valid RechargeOrderInfoCreateReqVO createReqVO); + Long createRechargeOrderInfo(@Valid RechargeOrderInfoCreateReqVO createReqVO); /** * 更新订单购物详情 diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java index 16a7e0063..eef1934e7 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java @@ -29,7 +29,7 @@ public class RechargeOrderInfoServiceImpl implements RechargeOrderInfoService { private RechargeOrderInfoMapper rechargeOrderInfoMapper; @Override - public Integer createRechargeOrderInfo(RechargeOrderInfoCreateReqVO createReqVO) { + public Long createRechargeOrderInfo(RechargeOrderInfoCreateReqVO createReqVO) { // 插入 RechargeOrderInfoDO rechargeOrderInfo = RechargeOrderInfoConvert.INSTANCE.convert(createReqVO); rechargeOrderInfoMapper.insert(rechargeOrderInfo); diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/AliPayStrategy.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/AliPayStrategy.java index 4f562faa0..ffd6cfaeb 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/AliPayStrategy.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/AliPayStrategy.java @@ -72,7 +72,7 @@ public class AliPayStrategy implements IPayStrategy { bizContent.put("trade_no", orderDO.getPaySerialNumber()); bizContent.put("refund_amount", orderDO.getPayPrice()); bizContent.put("out_request_no", orderDO.getOrderId()); - + bizContent.put("notify_url",aliPayProperties.getRefundNotify()); request.setBizContent(bizContent.toString()); AlipayTradeRefundResponse response = null; try { diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java index 5499cccf3..8e511b3a4 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.api.user; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserBillDTO; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import cn.iocoder.yudao.module.member.api.user.dto.PromoterDTO; import java.util.Collection; import java.util.List; @@ -80,4 +81,6 @@ public interface MemberUserApi { void saveMemberUser(String phone); + + PromoterDTO getPromoterDOByUserId(Long userId); } diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java index 78d070873..a9ea59d13 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java @@ -36,5 +36,8 @@ public class MemberUserRespDTO { */ private String mobile; - + /** + * 推广员id + */ + private Long promoterId; } diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/PromoterDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/PromoterDTO.java new file mode 100644 index 000000000..aec281dd2 --- /dev/null +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/PromoterDTO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.member.api.user.dto; + +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +/** + * @Title:PromoterDTO + * @Description: TODO + * @author: tangqian + * @date: 2023/5/19 14:06 + * @version: V1.0.0 + */ +@Data +public class PromoterDTO { + /** + * 编号 + */ + private Long id; + /** + * 组织id + */ + private Long deptId; + /** + * 会员id + */ + private Long userId; +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java index 50858f1cf..0091bffb4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java @@ -4,8 +4,11 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import cn.iocoder.yudao.module.member.api.user.dto.PromoterDTO; import cn.iocoder.yudao.module.member.convert.user.UserConvert; +import cn.iocoder.yudao.module.member.dal.dataobject.promoter.PromoterDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.service.promoter.PromoterService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import com.thoughtworks.xstream.core.SecurityUtils; import org.springframework.stereotype.Service; @@ -26,6 +29,8 @@ public class MemberUserApiImpl implements MemberUserApi { @Resource private MemberUserService userService; + @Resource + private PromoterService promoterService; @Override @TenantIgnore @@ -102,6 +107,15 @@ public class MemberUserApiImpl implements MemberUserApi { userService.saveMemberUser(phone); } + @Override + public PromoterDTO getPromoterDOByUserId(Long userId) { + PromoterDTO promoterDTO = new PromoterDTO(); + PromoterDO promoterDO = promoterService.getPromoterDOByUserId(userId); + promoterDTO.setDeptId(promoterDO.getDeptId()); + promoterDO.setId(promoterDO.getId()); + return promoterDTO; + } + /** * 获取个人资料 * diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java index d43e6bcae..8f00e968d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java @@ -86,4 +86,5 @@ public interface PromoterService { */ PromoterImportRespVO importUserList(List importUsers, boolean isUpdateSupport); + PromoterDO getPromoterDOByUserId(Long userId); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java index 93c891c78..da5fd7568 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java @@ -16,6 +16,7 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; + import javax.annotation.Resource; import javax.validation.Validator; @@ -24,6 +25,7 @@ import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; import java.util.*; + import cn.iocoder.yudao.module.member.controller.admin.promoter.vo.*; import cn.iocoder.yudao.module.member.dal.dataobject.promoter.PromoterDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -62,20 +64,20 @@ public class PromoterServiceImpl implements PromoterService { public Long createPromoter(PromoterCreateReqVO createReqVO) { //判断手机号是否注册 MemberUserDO memberUserDO = memberUserService.getUserByMobile(createReqVO.getMobile()); - if(memberUserDO==null){ + if (memberUserDO == null) { //创建用户 memberUserDO = new MemberUserDO(); memberUserDO.setNickname(createReqVO.getNickname()); memberUserDO.setMobile(createReqVO.getMobile()); memberUserDO.setStatus(createReqVO.getStatus()); - memberUserDO.setPassword(createReqVO.getMobile().substring(createReqVO.getMobile().length()-6)); - memberUserService.createUserIfAbsent(createReqVO.getMobile(),createReqVO.getNickname(),getClientIP()); + memberUserDO.setPassword(createReqVO.getMobile().substring(createReqVO.getMobile().length() - 6)); + memberUserService.createUserIfAbsent(createReqVO.getMobile(), createReqVO.getNickname(), getClientIP()); } // 插入 PromoterDO promoter = PromoterConvert.INSTANCE.convert(createReqVO); promoter.setTenantId(SecurityFrameworkUtils.getLoginUser().getTenantId()); - Long count = promoterMapper.selectCount(Wrappers.lambdaQuery(PromoterDO.class).eq(PromoterDO::getUserId,memberUserDO.getId())); - if(count>0){ + Long count = promoterMapper.selectCount(Wrappers.lambdaQuery(PromoterDO.class).eq(PromoterDO::getUserId, memberUserDO.getId())); + if (count > 0) { throw new ServiceException(PROMOTER_EXISTS); } promoter.setUserId(memberUserDO.getId()); @@ -94,9 +96,9 @@ public class PromoterServiceImpl implements PromoterService { PromoterDO updateObj = PromoterConvert.INSTANCE.convert(updateReqVO); promoterMapper.updateById(updateObj); MemberUserDO memberUserDO = memberUserService.getUserByMobile(updateReqVO.getMobile()); - if(memberUserDO!=null&&!promoterDO.getUserId().equals(memberUserDO.getId())){ + if (memberUserDO != null && !promoterDO.getUserId().equals(memberUserDO.getId())) { throw new ServiceException(ErrorCodeConstants.USER_PHONE_EXISTS); - }else { + } else { memberUserDO.setMobile(updateReqVO.getMobile()); memberUserDO.setNickname(updateReqVO.getNickname()); memberUserService.updateById(memberUserDO); @@ -131,8 +133,8 @@ public class PromoterServiceImpl implements PromoterService { */ @Override public Boolean checkIsPromoterByUserId(Long userId) { - Long count = this.promoterMapper.selectCount(Wrappers.lambdaQuery(PromoterDO.class).eq(PromoterDO::getUserId,userId)); - return count>0; + Long count = this.promoterMapper.selectCount(Wrappers.lambdaQuery(PromoterDO.class).eq(PromoterDO::getUserId, userId)); + return count > 0; } @Override @@ -143,14 +145,14 @@ public class PromoterServiceImpl implements PromoterService { @Override public PageResult getPromoterPage(PromoterPageReqVO pageReqVO) { Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - if(StrUtil.isNotBlank(pageReqVO.getDeptId())){ + if (StrUtil.isNotBlank(pageReqVO.getDeptId())) { DeptRespDTO deptRespDTO = deptApi.getDept(Long.parseLong(pageReqVO.getDeptId())); - if(deptRespDTO!=null){ + if (deptRespDTO != null) { pageReqVO.setDeptId(deptRespDTO.getParentOrganizationIds()); } } - promoterMapper.findListPage(page,pageReqVO); + promoterMapper.findListPage(page, pageReqVO); return new PageResult<>(page.getRecords(), page.getTotal()); } @@ -174,37 +176,37 @@ public class PromoterServiceImpl implements PromoterService { PromoterImportRespVO respVO = PromoterImportRespVO.builder().createUsernames(new ArrayList<>()) .updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build(); List deptRespDTOList = deptApi.getDeptList(); - Map nameList = deptRespDTOList.stream().collect(toMap(DeptRespDTO::getParentOrganizationName, value -> value,(value1,value2)->value1)); + Map nameList = deptRespDTOList.stream().collect(toMap(DeptRespDTO::getParentOrganizationName, value -> value, (value1, value2) -> value1)); importUsers.forEach(importUser -> { try { - ValidationUtils.validate(validator,importUser); + ValidationUtils.validate(validator, importUser); } catch (ServiceException ex) { respVO.getFailureUsernames().put(importUser.getNickName(), ex.getMessage()); return; } //判断手机号是否注册 MemberUserDO memberUserDO = memberUserService.getUserByMobile(importUser.getMobile()); - if(memberUserDO==null){ + if (memberUserDO == null) { //创建用户 memberUserDO = new MemberUserDO(); memberUserDO.setNickname(importUser.getNickName()); memberUserDO.setMobile(importUser.getMobile()); - memberUserDO.setPassword(importUser.getMobile().substring(importUser.getMobile().length()-6)); + memberUserDO.setPassword(importUser.getMobile().substring(importUser.getMobile().length() - 6)); memberUserDO.setStatus(1); - memberUserService.createUserIfAbsent(importUser.getMobile(),importUser.getNickName(),getClientIP()); + memberUserService.createUserIfAbsent(importUser.getMobile(), importUser.getNickName(), getClientIP()); } // 插入 PromoterDO promoter = new PromoterDO(); promoter.setTenantId(SecurityFrameworkUtils.getLoginUser().getTenantId()); promoter.setUserId(memberUserDO.getId()); promoter.setCreateTime(LocalDateTime.now()); - Long count = promoterMapper.selectCount(Wrappers.lambdaQuery(PromoterDO.class).eq(PromoterDO::getUserId,memberUserDO.getId())); - if(count>0){ + Long count = promoterMapper.selectCount(Wrappers.lambdaQuery(PromoterDO.class).eq(PromoterDO::getUserId, memberUserDO.getId())); + if (count > 0) { respVO.getFailureUsernames().put(importUser.getNickName(), "已经是推广员"); return; } DeptRespDTO deptRespDTO = nameList.get(importUser.getOrgName()); - if(deptRespDTO==null){ + if (deptRespDTO == null) { respVO.getFailureUsernames().put(importUser.getNickName(), "组织不存在"); return; } @@ -215,6 +217,12 @@ public class PromoterServiceImpl implements PromoterService { }); return respVO; } + + @Override + public PromoterDO getPromoterDOByUserId(Long userId) { + return promoterMapper.selectOne(Wrappers.lambdaQuery().eq(PromoterDO::getUserId, userId).last("LIMIT 1")); + } + /** * 对密码进行加密 * From b106db5ca016a8336fd98b0482c210ad9e63407b Mon Sep 17 00:00:00 2001 From: tangqian Date: Fri, 19 May 2023 17:29:47 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20=E6=94=AF=E4=BB=98=E5=AE=9D?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/shop/dal/dataobject/recharge/RechargeOrderDO.java | 2 +- .../shop/dal/dataobject/recharge/RechargeOrderInfoDO.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java index 656f909bd..f4b3685e6 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java @@ -34,7 +34,7 @@ public class RechargeOrderDO extends BaseDO { /** * 订单ID */ - @TableId + @TableId(type=IdType.ASSIGN_ID) private Integer id; /** * 订单号 diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java index 7824e1fee..055a62784 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java @@ -27,7 +27,7 @@ public class RechargeOrderInfoDO extends BaseDO { /** * 主键 */ - @TableId + @TableId(type = IdType.ASSIGN_ID) private Long id; /** * 充值订单id From d194009324236d8f9f8ba14bb2d8b34777c75d7f Mon Sep 17 00:00:00 2001 From: TianYu <332368756@qq.com> Date: Fri, 19 May 2023 17:34:57 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yudao-ui-app/App.vue | 42 ++++++++++--------- yudao-ui-app/config/cache.js | 2 + yudao-ui-app/pages/users/register/index.vue | 4 +- yudao-ui-app/pages/users/user_info/index.vue | 5 +-- .../pages/users/user_spread_code/index.vue | 3 +- yudao-ui-app/store/modules/app.js | 4 +- 6 files changed, 33 insertions(+), 27 deletions(-) diff --git a/yudao-ui-app/App.vue b/yudao-ui-app/App.vue index e354edfd0..883ad3717 100644 --- a/yudao-ui-app/App.vue +++ b/yudao-ui-app/App.vue @@ -174,27 +174,30 @@ // #endif }, computed: mapGetters(['tenantId']), - async mounted() { - this.isQRCode() - if (this.$store.getters.isLogin && !this.$Cache.get('USER_INFO')) { - await this.$store.dispatch('USERINFO'); - } - if (!this.$Cache.get('TENANT_ID') || this.$route.query.tenantId) { - this.getTenantId() - } else { - this.getTenantInfo() - } - if (!this.$Cache.get('OPEN_ID') && this.$route.query.code) { - this.getWxChatCode() - } - this.setSpreadId() - setInterval(() => { - if (this.$store.getters.isLogin) { - this.setRefreshToken() - } - }, 60000) + mounted() { + this.initLoad() }, methods: { + async initLoad(){ + this.isQRCode() + this.setSpreadId() + if (this.$store.getters.isLogin && !this.$Cache.get('USER_INFO')) { + await this.$store.dispatch('USERINFO'); + } + if (!this.$Cache.get('TENANT_ID') || this.$route.query.tenantId) { + this.getTenantId() + } else { + this.getTenantInfo() + } + if (!this.$Cache.get('OPEN_ID') && this.$route.query.code) { + this.getWxChatCode() + } + setInterval(() => { + if (this.$store.getters.isLogin) { + this.setRefreshToken() + } + }, 60000) + }, // 是否扫码跳转 isQRCode() { const redirectUrl = this.$route.query.redirectUrl || '' @@ -226,6 +229,7 @@ // 获取推广员ID setSpreadId() { const spreadId = this.$route.query.spreadId || '' + console.log('spreadId', spreadId) if (spreadId) { this.$store.commit("SET_SPREADID", spreadId); } diff --git a/yudao-ui-app/config/cache.js b/yudao-ui-app/config/cache.js index 5292828cb..e211f4324 100644 --- a/yudao-ui-app/config/cache.js +++ b/yudao-ui-app/config/cache.js @@ -8,6 +8,8 @@ module.exports = { TENANT_ID: 'TENANT_ID', // 微信openId OPEN_ID: 'OPEN_ID', + // 推广员ID + SPREAD_ID: 'SPREAD_ID', //用户信息 USER_INFO: 'USER_INFO', //租户信息 diff --git a/yudao-ui-app/pages/users/register/index.vue b/yudao-ui-app/pages/users/register/index.vue index 9779eac34..264f330af 100644 --- a/yudao-ui-app/pages/users/register/index.vue +++ b/yudao-ui-app/pages/users/register/index.vue @@ -61,7 +61,7 @@ realName: '', mobile: '', code: '', - spreadId: '' + promoterId: '' } } }, @@ -69,7 +69,7 @@ async onRegister() { this.loading = true try { - this.registerForm.spreadId = store.state.app.spreadId || '' + this.registerForm.promoterId = store.state.app.spreadId || '' const res = await register(this.registerForm) this.$util.Tips({ title: res.code === 0 ? '注册成功' : res.msg diff --git a/yudao-ui-app/pages/users/user_info/index.vue b/yudao-ui-app/pages/users/user_info/index.vue index 3e0a36703..696e6ff71 100644 --- a/yudao-ui-app/pages/users/user_info/index.vue +++ b/yudao-ui-app/pages/users/user_info/index.vue @@ -59,10 +59,7 @@ - - 退出登录 - + 退出登录 diff --git a/yudao-ui-app/pages/users/user_spread_code/index.vue b/yudao-ui-app/pages/users/user_spread_code/index.vue index 8aeb8bb6a..32bd3dd10 100644 --- a/yudao-ui-app/pages/users/user_spread_code/index.vue +++ b/yudao-ui-app/pages/users/user_spread_code/index.vue @@ -203,8 +203,10 @@ let that = this; let href = ''; // href = window.location.href.split('/pages')[0]; + console.log('uid', that.uid) const baseUrl = 'http://yuxy.perrymake.com'; const url =`${baseUrl}/pages/index/index?redirectUrl=${baseUrl}&tenantId=${that.tenantId}&spreadId=${that.uid}` + console.log('url', url) uQRCode.make({ canvasId: 'qrcode', // text: href + '/pages/index/index?spreadId=' + that.uid, @@ -212,7 +214,6 @@ size: this.qrcodeSize, margin: 10, success: res => { - console.log('res', res) that.PromotionCode = res; setTimeout(() => { that.PosterCanvas(this.base64List[0], that.PromotionCode, that.userInfo diff --git a/yudao-ui-app/store/modules/app.js b/yudao-ui-app/store/modules/app.js index eba34c8a0..536c1857d 100644 --- a/yudao-ui-app/store/modules/app.js +++ b/yudao-ui-app/store/modules/app.js @@ -7,6 +7,7 @@ import { UID, TENANT_ID, OPEN_ID, + SPREAD_ID, PLATFORM } from '../../config/cache'; import Cache from '../../utils/cache'; @@ -23,7 +24,7 @@ const state = { tenantInfo: Cache.get(TENANT_INFO)?JSON.parse(Cache.get(TENANT_INFO)):null, uid: Cache.get(UID) || null, tenantId: Cache.get(TENANT_ID) || '', - spreadId: '', + spreadId: Cache.get(SPREAD_ID) || '', openId: Cache.get(OPEN_ID) || '', homeActive: false, chatUrl: Cache.get('chatUrl') || '', @@ -52,6 +53,7 @@ const mutations = { }, SET_SPREADID(state, val){ state.spreadId = val; + Cache.set(SPREAD_ID, val); }, SET_OPENID(state, val){ state.openId = val; From 797dd8cb9ca3bf041f3e826c78c537e2d6afda1b Mon Sep 17 00:00:00 2001 From: tangqian Date: Fri, 19 May 2023 17:35:32 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20=E6=94=AF=E4=BB=98=E5=AE=9D?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/dal/dataobject/recharge/RechargeOrderDO.java | 3 ++- .../shop/dal/dataobject/recharge/RechargeOrderInfoDO.java | 3 ++- .../shop/service/order/impl/StoreOrderServiceImpl.java | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java index f4b3685e6..3f9f5b217 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.shop.dal.dataobject.recharge; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; import lombok.*; import java.util.*; import java.math.BigDecimal; @@ -29,7 +30,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor -public class RechargeOrderDO extends BaseDO { +public class RechargeOrderDO extends TenantBaseDO { /** * 订单ID diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java index 055a62784..9af2deff2 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.shop.dal.dataobject.recharge; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -22,7 +23,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor -public class RechargeOrderInfoDO extends BaseDO { +public class RechargeOrderInfoDO extends TenantBaseDO { /** * 主键 diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java index d282a5652..2d810972a 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/StoreOrderServiceImpl.java @@ -14,6 +14,8 @@ import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.pay.properties.AliPayProperties; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.module.member.api.user.MemberUserApi; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.member.api.user.dto.PromoterDTO; @@ -1149,6 +1151,7 @@ public class StoreOrderServiceImpl extends ServiceImpl orderInfos = request.getOrderInfos(); orderDO.setOrderId(code); @@ -1372,6 +1376,7 @@ public class StoreOrderServiceImpl extends ServiceImpl infoDOS = new ArrayList<>(); orderInfos.forEach(info -> { @@ -1387,6 +1392,7 @@ public class StoreOrderServiceImpl extends ServiceImpl Date: Fri, 19 May 2023 17:49:39 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recharge/RechargeOrderController.java | 19 ++-- .../admin/recharge/vo/RechargeGearBaseVO.java | 11 ++- .../recharge/vo/RechargeOrderExcelVO.java | 35 +++++--- .../recharge/vo/RechargeOrderExportReqVO.java | 7 ++ .../recharge/vo/RechargeOrderInfoExcelVO.java | 13 +-- .../recharge/vo/RechargeOrderPageReqVO.java | 3 + .../app/banner/AppBannerController.java | 41 +++++++++ .../dataobject/recharge/RechargeGearDO.java | 10 ++- .../dataobject/recharge/RechargeOrderDO.java | 2 +- .../recharge/RechargeOrderInfoDO.java | 2 +- .../recharge/RefundFeeRecordDO.java | 2 +- .../recharge/RechargeOrderInfoMapper.java | 4 + .../mysql/recharge/RechargeOrderMapper.java | 3 + .../recharge/RechargeOrderInfoService.java | 2 +- .../RechargeOrderInfoServiceImpl.java | 4 +- .../recharge/RechargeOrderService.java | 5 +- .../recharge/RechargeOrderServiceImpl.java | 7 +- .../recharge/RechargeOrderInfoMapper.xml | 29 ++++++ .../mapper/recharge/RechargeOrderMapper.xml | 89 ++++++++++++++++++- .../member/api/user/MemberUserApiImpl.java | 1 + .../admin/promoter/vo/PromoterRespVO.java | 5 +- .../app/user/AppUserController.java | 4 + .../app/user/vo/AppUserInfoRespVO.java | 8 ++ .../dal/dataobject/user/MemberUserDO.java | 3 +- .../dal/mysql/promoter/PromoterMapper.java | 3 + .../service/auth/MemberAuthServiceImpl.java | 5 ++ .../service/promoter/PromoterService.java | 3 +- .../service/promoter/PromoterServiceImpl.java | 5 ++ .../mapper/promoter/PromoterMapper.xml | 10 +++ .../yudao-module-system-biz/pom.xml | 4 + .../admin/tenant/TenantController.java | 4 +- .../src/views/shop/rechargeGear/index.vue | 6 ++ .../src/views/shop/rechargeOrder/index.vue | 8 +- 33 files changed, 309 insertions(+), 48 deletions(-) create mode 100644 yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/banner/AppBannerController.java diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderController.java index bdd09c73c..cb28ea2cd 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderController.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/RechargeOrderController.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.shop.controller.admin.recharge; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.shop.controller.admin.recharge.method.Excel; import cn.iocoder.yudao.module.shop.convert.recharge.RechargeOrderInfoConvert; import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderInfoDO; @@ -46,7 +48,7 @@ public class RechargeOrderController { @PostMapping("/create") @Operation(summary = "创建订单") @PreAuthorize("@ss.hasPermission('shop:recharge-order:create')") - public CommonResult createRechargeOrder(@Valid @RequestBody RechargeOrderCreateReqVO createReqVO) { + public CommonResult createRechargeOrder(@Valid @RequestBody RechargeOrderCreateReqVO createReqVO) { return success(rechargeOrderService.createRechargeOrder(createReqVO)); } @@ -88,7 +90,9 @@ public class RechargeOrderController { @GetMapping("/page") @Operation(summary = "获得订单分页") @PreAuthorize("@ss.hasPermission('shop:recharge-order:query')") + @TenantIgnore public CommonResult> getRechargeOrderPage(@Valid RechargeOrderPageReqVO pageVO) { + pageVO.setTenantId(SecurityFrameworkUtils.getLoginUser().getTenantId()); PageResult pageResult = rechargeOrderService.getRechargeOrderPage(pageVO); return success(pageResult); } @@ -98,18 +102,17 @@ public class RechargeOrderController { @Operation(summary = "导出订单 Excel") @PreAuthorize("@ss.hasPermission('shop:recharge-order:export')") @OperateLog(type = EXPORT) + @TenantIgnore public void exportRechargeOrderExcel(@Valid RechargeOrderExportReqVO exportReqVO, HttpServletResponse response) throws IOException { - List list = rechargeOrderService.getRechargeOrderList(exportReqVO); - ArrayList s = new ArrayList<>(); + List list = rechargeOrderService.findListExcel(exportReqVO); + ArrayList s = new ArrayList<>(); list.forEach(x -> { - s.add(x.getOrderId()); + s.add(x.getId()); }); - List infoList = rechargeOrderInfoService.getRechargeOrderInfoList(s); + List infoList = rechargeOrderInfoService.getRechargeOrderInfoListExcel(s); // 导出 Excel - List datas = RechargeOrderConvert.INSTANCE.convertList02(list); - List infoDatas = RechargeOrderInfoConvert.INSTANCE.convertList02(infoList); - Excel.orderExport(response, datas, infoDatas); + Excel.orderExport(response, list, infoList); } } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearBaseVO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearBaseVO.java index 72e41fd50..6292f3dc8 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearBaseVO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeGearBaseVO.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.shop.controller.admin.recharge.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -24,6 +26,13 @@ public class RechargeGearBaseVO { @Schema(description = "档位显示金额", required = true) @NotNull(message = "档位显示金额不能为空") - private Integer gearAmount; + private BigDecimal gearAmount; + + /** + * 返费金额 + */ + @Schema(description = "返费金额", required = true) + @NotNull(message = "返费金额不能为空") + private BigDecimal refundAmount; } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExcelVO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExcelVO.java index de6e69d19..6ded77f0b 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExcelVO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExcelVO.java @@ -14,36 +14,43 @@ import java.time.LocalDateTime; @Data public class RechargeOrderExcelVO { - @ExcelProperty("订单号") + + @ExcelProperty("订单id") + private Long id; + + @ExcelProperty("订单编号") private String orderId; - @ExcelProperty("第三方支付流水号") + @ExcelProperty("交易流水号") private String paySerialNumber; + @ExcelProperty("商户名称") + private String tenantName; - @ExcelProperty("支付时间") + @ExcelProperty("订单支付时间") private LocalDateTime payTime; - //:0-普通订单,1-视频号订单 + + @ExcelProperty("交易完成时间") + private LocalDateTime payCompleteTime; @ExcelProperty("订单类型") - private Integer type; - //(0:待发货;1:待收货;2:已收货,待评价;3:已完成;) + private String type="普通订单"; @ExcelProperty("订单状态") - private String status; + private String status="已经完成"; @ExcelProperty("配送方式") - private String deliveryType; + private String deliveryType="快递(系统快递)(系统快递)"; - @ExcelProperty("用户姓名") + @ExcelProperty("姓名") private String realName; - @ExcelProperty("用户电话") + @ExcelProperty("充值号码") private String userPhone; - @ExcelProperty("确认手机号") + @ExcelProperty("确认号码") private String confirmPhone; @ExcelProperty("地址") private String address; - @ExcelProperty("备注") + @ExcelProperty("给卖家留言") private String mark; @ExcelProperty("取货地址") @@ -59,7 +66,7 @@ public class RechargeOrderExcelVO { private String remark; @ExcelProperty("产品合计金额") - private BigDecimal proTotalPrice; + private BigDecimal totalPrice; @ExcelProperty("运费") private BigDecimal shipPrice; @@ -74,6 +81,6 @@ public class RechargeOrderExcelVO { private String promoter; @ExcelProperty("组织名称") - private Integer depName; + private String depName; } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExportReqVO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExportReqVO.java index f6a846bfe..b2da768c3 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExportReqVO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderExportReqVO.java @@ -18,12 +18,19 @@ public class RechargeOrderExportReqVO { @Schema(description = "订单号", example = "3697") private String orderId; + @Schema(description = "租户id") + private Long tenantId; + @Schema(description = "用户id", example = "28969") private Integer uid; @Schema(description = "用户姓名", example = "张三") private String realName; + + @Schema(description = "推广员名称", example = "张三") + private String nickname; + @Schema(description = "用户电话") private String userPhone; diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderInfoExcelVO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderInfoExcelVO.java index e5908d7e0..cd216ffe8 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderInfoExcelVO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderInfoExcelVO.java @@ -18,7 +18,7 @@ import com.alibaba.excel.annotation.ExcelProperty; @Data public class RechargeOrderInfoExcelVO { - @ExcelProperty("订单号") + @ExcelProperty("订单编号") private String orderNo; @ExcelProperty("商户名称") @@ -31,18 +31,19 @@ public class RechargeOrderInfoExcelVO { private String shopOption; @ExcelProperty("产品分类") - private String productCategory; + private String productCategory="话费"; - @ExcelProperty("产品价格") + @ExcelProperty("产品单价") private BigDecimal price; @ExcelProperty("产品数量") - private Integer payNum; - + private Integer payNum=1; + @ExcelProperty("配送价格/运费") + private BigDecimal freight=new BigDecimal(0); @ExcelProperty("合计金额") private BigDecimal proTotalPrice; - @ExcelProperty("支付金额") + @ExcelProperty("实付金额") private BigDecimal payPrice; @ExcelProperty("售后状态") diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderPageReqVO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderPageReqVO.java index a66c4b2a1..6df2e0ff5 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderPageReqVO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/vo/RechargeOrderPageReqVO.java @@ -20,6 +20,9 @@ public class RechargeOrderPageReqVO extends PageParam { @Schema(description = "订单号", example = "3697") private String orderId; + @Schema(description = "租户id") + private Long tenantId; + @Schema(description = "用户id", example = "28969") private Integer uid; diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/banner/AppBannerController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/banner/AppBannerController.java new file mode 100644 index 000000000..672d10db1 --- /dev/null +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/banner/AppBannerController.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.shop.controller.app.banner; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.module.shop.controller.admin.banner.vo.BannerPageReqVO; +import cn.iocoder.yudao.module.shop.controller.admin.banner.vo.BannerRespVO; +import cn.iocoder.yudao.module.shop.convert.banner.BannerConvert; +import cn.iocoder.yudao.module.shop.dal.dataobject.banner.BannerDO; +import cn.iocoder.yudao.module.shop.service.banner.BannerService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户APP - 商户Banner 管理") +@RestController +@RequestMapping("/market/banner") +@Validated +public class AppBannerController { + + @Resource + private BannerService bannerService; + + + + @PostMapping("/list") + @Operation(summary = "获得 Banner 列表") + public CommonResult> getBannerList(@RequestBody@Valid BannerPageReqVO pageVO) { + pageVO.setTenantId(TenantContextHolder.getTenantId()); + pageVO.setPageSize(5); + PageResult pageResult = bannerService.getBannerPage(pageVO); + return success(BannerConvert.INSTANCE.convertPage(pageResult)); + } + +} diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeGearDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeGearDO.java index de83afb1a..9cfe1775d 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeGearDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeGearDO.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.shop.dal.dataobject.recharge; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -38,6 +40,12 @@ public class RechargeGearDO extends BaseDO { /** * 档位显示金额 */ - private Integer gearAmount; + private BigDecimal gearAmount; + + /** + * 返费金额 + */ + private BigDecimal refundAmount; + } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java index 3f9f5b217..f6b920dd8 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderDO.java @@ -36,7 +36,7 @@ public class RechargeOrderDO extends TenantBaseDO { * 订单ID */ @TableId(type=IdType.ASSIGN_ID) - private Integer id; + private Long id; /** * 订单号 */ diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java index 9af2deff2..cb5425226 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RechargeOrderInfoDO.java @@ -33,7 +33,7 @@ public class RechargeOrderInfoDO extends TenantBaseDO { /** * 充值订单id */ - private Integer rechargeOrderId; + private Long rechargeOrderId; /** * 充值档位 */ diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RefundFeeRecordDO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RefundFeeRecordDO.java index 9c166651b..05c38e2b4 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RefundFeeRecordDO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/dataobject/recharge/RefundFeeRecordDO.java @@ -26,7 +26,7 @@ public class RefundFeeRecordDO extends BaseDO { /** * 主键 */ - @TableId + @TableId(type = IdType.ASSIGN_ID) private Long id; /** * 档位记录id diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderInfoMapper.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderInfoMapper.java index 83e868442..9ea497efe 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderInfoMapper.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderInfoMapper.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderInfoDO; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.shop.controller.admin.recharge.vo.*; +import org.apache.ibatis.annotations.Param; /** * 订单购物详情 Mapper @@ -54,4 +55,7 @@ public interface RechargeOrderInfoMapper extends BaseMapperX getRechargeOrderInfoListExcel(@Param("ids") List ids); + + } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderMapper.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderMapper.java index 0219fc5da..764bd206b 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderMapper.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/dal/mysql/recharge/RechargeOrderMapper.java @@ -57,6 +57,9 @@ public interface RechargeOrderMapper extends BaseMapperX { .orderByDesc(RechargeOrderDO::getId)); } IPage findListPage(IPage page, @Param("data") RechargeOrderPageReqVO data); + + + List findListExcel(@Param("data") RechargeOrderExportReqVO data); default List selectList(RechargeOrderExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(RechargeOrderDO::getOrderId, reqVO.getOrderId()) diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java index c3cd32244..0a7a8688e 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoService.java @@ -67,6 +67,6 @@ public interface RechargeOrderInfoService { */ List getRechargeOrderInfoList(RechargeOrderInfoExportReqVO exportReqVO); - List getRechargeOrderInfoList(List ids); + List getRechargeOrderInfoListExcel(List ids); } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java index eef1934e7..1250e2714 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderInfoServiceImpl.java @@ -81,8 +81,8 @@ public class RechargeOrderInfoServiceImpl implements RechargeOrderInfoService { } @Override - public List getRechargeOrderInfoList(List s) { - return rechargeOrderInfoMapper.selectList(s); + public List getRechargeOrderInfoListExcel(List s) { + return rechargeOrderInfoMapper.getRechargeOrderInfoListExcel(s); } } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderService.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderService.java index de52e31cd..70d26799f 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderService.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderService.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.shop.controller.admin.recharge.vo.*; import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.shop.response.member.MemberHeadResponse; +import org.apache.ibatis.annotations.Param; /** * 订单 Service 接口 @@ -20,7 +21,7 @@ public interface RechargeOrderService { * @param createReqVO 创建信息 * @return 编号 */ - Integer createRechargeOrder(@Valid RechargeOrderCreateReqVO createReqVO); + Long createRechargeOrder(@Valid RechargeOrderCreateReqVO createReqVO); /** * 更新订单 @@ -68,6 +69,8 @@ public interface RechargeOrderService { */ List getRechargeOrderList(RechargeOrderExportReqVO exportReqVO); + List findListExcel(RechargeOrderExportReqVO data); + List memberOrderInfo(); MemberHeadResponse memberHeadInfo(); diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderServiceImpl.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderServiceImpl.java index 5a0e0d073..25ee53bcc 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderServiceImpl.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeOrderServiceImpl.java @@ -45,7 +45,7 @@ public class RechargeOrderServiceImpl implements RechargeOrderService { private RechargeOrderInfoMapper infoMapper; @Override - public Integer createRechargeOrder(RechargeOrderCreateReqVO createReqVO) { + public Long createRechargeOrder(RechargeOrderCreateReqVO createReqVO) { // 插入 RechargeOrderDO rechargeOrder = RechargeOrderConvert.INSTANCE.convert(createReqVO); rechargeOrderMapper.insert(rechargeOrder); @@ -98,6 +98,11 @@ public class RechargeOrderServiceImpl implements RechargeOrderService { return rechargeOrderMapper.selectList(exportReqVO); } + @Override + public List findListExcel(RechargeOrderExportReqVO data) { + return rechargeOrderMapper.findListExcel(data); + } + @Override public List memberOrderInfo() { LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderInfoMapper.xml b/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderInfoMapper.xml index 067e4bf52..db6c2be2d 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderInfoMapper.xml +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderInfoMapper.xml @@ -9,4 +9,33 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderMapper.xml b/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderMapper.xml index fa2d4d137..09dcad21f 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderMapper.xml +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/resources/mapper/recharge/RechargeOrderMapper.xml @@ -22,6 +22,8 @@ a.user_phone, a.confirm_phone, a.pay_type, + a.total_price, + a.pay_price, a.paid, d.parent_organization_name from cy_recharge_order a @@ -33,11 +35,14 @@ and a.order_id like CONCAT('%',#{data.orderId},'%') - - and a.pay_serial_number like CONCAT('%',#{data.payserialNumber},'%') + + and a.tenant_id =#{data.tenantId} + + + and a.pay_serial_number like CONCAT('%',#{data.paySerialNumber},'%') - and a.nickname like CONCAT('%',#{data.nickname},'%') + and b.nickname like CONCAT('%',#{data.nickname},'%') and a.real_name like CONCAT('%',#{data.realName},'%') @@ -53,4 +58,82 @@ + + + + + and a.paid=1 + + and a.order_id like CONCAT('%',#{data.orderId},'%') + + + and a.tenant_id =#{data.tenantId} + + + and a.pay_serial_number like CONCAT('%',#{data.paySerialNumber},'%') + + + and b.nickname like CONCAT('%',#{data.nickname},'%') + + + and a.real_name like CONCAT('%',#{data.realName},'%') + + + and a.user_phone like CONCAT('%',#{data.userPhone},'%') + + + and a.pay_time >=#{data.payTime[0]} + + + and a.pay_time <=#{data.payTime[1]} + + + diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java index 0091bffb4..4079e1408 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java @@ -108,6 +108,7 @@ public class MemberUserApiImpl implements MemberUserApi { } @Override + @TenantIgnore public PromoterDTO getPromoterDOByUserId(Long userId) { PromoterDTO promoterDTO = new PromoterDTO(); PromoterDO promoterDO = promoterService.getPromoterDOByUserId(userId); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterRespVO.java index 69f37c119..f00ad8a4b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterRespVO.java @@ -13,6 +13,9 @@ public class PromoterRespVO extends PromoterBaseVO { private Long id; @Schema(description = "组织名称", required = true, example = "18443") private String orgName; - @Schema(description = "组织名称", required = true, example = "18443") + @Schema(description = "用户id", required = true, example = "18443") private String userId; + + @Schema(description = "组织简称", required = true, example = "18443") + private String deptName; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppUserController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppUserController.java index 1d193a120..9121908f6 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppUserController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppUserController.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.member.controller.admin.promoter.vo.PromoterRespVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoReqVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; @@ -76,6 +77,9 @@ public class AppUserController { AppUserInfoRespVO appUserInfoRespVO = UserConvert.INSTANCE.convert(user); if(promoterService.checkIsPromoterByUserId(getLoginUserId())){ appUserInfoRespVO.setUserType(UserTypeEnum.PROMOTER); + PromoterRespVO promoterRespVO = promoterService.getPromoterInfo(getLoginUserId()); + appUserInfoRespVO.setDeptName(promoterRespVO.getDeptName()); + appUserInfoRespVO.setParentDeptName(promoterRespVO.getOrgName()); }else{ appUserInfoRespVO.setUserType(UserTypeEnum.MEMBER); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java index 8a11fad60..050bcfdc2 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/vo/AppUserInfoRespVO.java @@ -12,6 +12,8 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class AppUserInfoRespVO { + @Schema(description = "用户id", required = true, example = "芋艿") + private Long userId; @Schema(description = "用户昵称", required = true, example = "芋艿") private String nickname; @@ -23,4 +25,10 @@ public class AppUserInfoRespVO { @Schema(description = "用户类型", required = true, example = "15601691300") private UserTypeEnum userType; + + @Schema(description = "组织", required = true, example = "15601691300") + private String deptName; + + @Schema(description = "组织全称", required = true, example = "15601691300") + private String parentDeptName; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java index 3a58d39a3..4d24edc43 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.dal.dataobject.user; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -29,7 +30,7 @@ public class MemberUserDO extends TenantBaseDO { /** * 用户ID */ - @TableId + @TableId(type = IdType.ASSIGN_ID) private Long id; /** * 用户昵称 diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/promoter/PromoterMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/promoter/PromoterMapper.java index 394215498..c440161cf 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/promoter/PromoterMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/promoter/PromoterMapper.java @@ -25,6 +25,9 @@ public interface PromoterMapper extends BaseMapperX { .orderByDesc(PromoterDO::getId)); } IPage findListPage(IPage page, @Param("data") PromoterPageReqVO data); + + PromoterRespVO getPromoterInfo(@Param("userId") Long userId); + default List selectList(PromoterExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(PromoterDO::getDeptId, reqVO.getDeptId()) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java index b93e6ce5a..3a6df452f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java @@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; import cn.iocoder.yudao.module.member.convert.auth.AuthConvert; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; +import cn.iocoder.yudao.module.member.service.promoter.PromoterService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.system.api.logger.LoginLogApi; import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; @@ -39,6 +40,7 @@ import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; /** @@ -69,6 +71,9 @@ public class MemberAuthServiceImpl implements MemberAuthService { @Resource private MemberUserMapper userMapper; + @Resource + private PromoterService promoterService; + @Override public AppAuthLoginRespVO login(AppAuthLoginReqVO reqVO) { // 使用手机 + 密码,进行登录。 diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java index 8f00e968d..298117795 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterService.java @@ -77,6 +77,8 @@ public interface PromoterService { */ List getPromoterList(PromoterExportReqVO exportReqVO); + PromoterRespVO getPromoterInfo(Long userId); + /** * 批量导入推广员列表 * @@ -85,6 +87,5 @@ public interface PromoterService { * @return 导入结果 */ PromoterImportRespVO importUserList(List importUsers, boolean isUpdateSupport); - PromoterDO getPromoterDOByUserId(Long userId); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java index da5fd7568..d80564ea5 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/promoter/PromoterServiceImpl.java @@ -161,6 +161,11 @@ public class PromoterServiceImpl implements PromoterService { return promoterMapper.selectList(exportReqVO); } + @Override + public PromoterRespVO getPromoterInfo(Long userId) { + return promoterMapper.getPromoterInfo(userId); + } + /** * 批量导入推广员列表 * diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/promoter/PromoterMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/promoter/PromoterMapper.xml index ab426817b..1c0cf75cc 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/promoter/PromoterMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/promoter/PromoterMapper.xml @@ -29,4 +29,14 @@ + + + diff --git a/yudao-module-system/yudao-module-system-biz/pom.xml b/yudao-module-system/yudao-module-system-biz/pom.xml index 898029163..11d488395 100644 --- a/yudao-module-system/yudao-module-system-biz/pom.xml +++ b/yudao-module-system/yudao-module-system-biz/pom.xml @@ -115,6 +115,10 @@ org.springframework.boot spring-boot-starter-mail + + com.github.binarywang + wx-java-mp-spring-boot-starter + diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java index efc531911..7a2d21906 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.system.service.tenant.TenantService; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; +import me.chanjar.weixin.mp.api.WxMpService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -36,6 +37,7 @@ public class TenantController { @Resource private TenantService tenantService; + @GetMapping("/get-id-by-name") @PermitAll @Operation(summary = "使用租户名,获得租户编号", description = "登录界面,根据用户的租户名,获得租户编号") @@ -108,6 +110,4 @@ public class TenantController { List datas = TenantConvert.INSTANCE.convertList02(list); ExcelUtils.write(response, "租户.xls", "数据", TenantExcelVO.class, datas); } - - } diff --git a/yudao-ui-admin/src/views/shop/rechargeGear/index.vue b/yudao-ui-admin/src/views/shop/rechargeGear/index.vue index d16508727..37f70a36c 100644 --- a/yudao-ui-admin/src/views/shop/rechargeGear/index.vue +++ b/yudao-ui-admin/src/views/shop/rechargeGear/index.vue @@ -31,6 +31,8 @@ + +