diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java index d9e8e848d..59996bd39 100644 --- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java @@ -137,6 +137,13 @@ public class GlobalExceptionHandler { assert fieldError != null; // 断言,避免告警 return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数不正确:%s", fieldError.getDefaultMessage())); } + @ExceptionHandler(IllegalArgumentException.class) + public CommonResult IllegalArgumentExceptionHandler(BindException ex) { + log.warn("[IllegalArgumentException]", ex); + FieldError fieldError = ex.getFieldError(); + assert fieldError != null; // 断言,避免告警 + return CommonResult.error(INTERNAL_SERVER_ERROR.getCode(), fieldError.getDefaultMessage()); + } /** * 处理 Validator 校验不通过产生的异常 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 5b338c907..32a5f41cb 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 @@ -135,6 +135,8 @@ public class WxPayNotifyController { log.error("支付金额不匹配,订单实际支付金额:{},微信入参验证金额:{}", orderDO.getPayPrice(), payerTotal); return "failure"; } + orderDO.setRefundStatus(2); + rechargeOrderMapper.updateById(orderDO); // 修改订单状态 // 写入 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/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 f4b3685e6..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 @@ -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,13 +30,13 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor -public class RechargeOrderDO extends BaseDO { +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 055a62784..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 @@ -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 { /** * 主键 @@ -32,7 +33,7 @@ public class RechargeOrderInfoDO extends BaseDO { /** * 充值订单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/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 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..c165524dd 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,11 +108,15 @@ public class MemberUserApiImpl implements MemberUserApi { } @Override + @TenantIgnore public PromoterDTO getPromoterDOByUserId(Long userId) { PromoterDTO promoterDTO = new PromoterDTO(); PromoterDO promoterDO = promoterService.getPromoterDOByUserId(userId); - promoterDTO.setDeptId(promoterDO.getDeptId()); - promoterDO.setId(promoterDO.getId()); + if(promoterDO != null){ + promoterDTO.setDeptId(promoterDO.getDeptId()); + promoterDO.setId(promoterDO.getId()); + return promoterDTO; + } return promoterDTO; } 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..7c9c6ab85 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 @@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.*; import cn.iocoder.yudao.module.system.convert.tenant.TenantConvert; import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; 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 io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -22,7 +22,6 @@ import javax.validation.Valid; import java.io.IOException; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalUnit; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -36,6 +35,7 @@ public class TenantController { @Resource private TenantService tenantService; + @GetMapping("/get-id-by-name") @PermitAll @Operation(summary = "使用租户名,获得租户编号", description = "登录界面,根据用户的租户名,获得租户编号") @@ -108,6 +108,4 @@ public class TenantController { List datas = TenantConvert.INSTANCE.convertList02(list); ExcelUtils.write(response, "租户.xls", "数据", TenantExcelVO.class, datas); } - - } diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 3bff69743..cbed8c6d9 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -220,11 +220,11 @@ yudao: - eb_express - eb_store_order_status sms-code: # 短信验证码相关的配置项 - expire-times: 10m - send-frequency: 1m + expire-times: 5m + send-frequency: 10m send-maximum-quantity-per-day: 10 - begin-code: 9999 # 这里配置 9999 的原因是,测试方便。 - end-code: 9999 # 这里配置 9999 的原因是,测试方便。 + begin-code: 100000 # 这里配置 9999 的原因是,测试方便。 + end-code: 999999 # 这里配置 9999 的原因是,测试方便。 trade: order: app-id: 1 # 商户编号 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 @@ + +