From 06a36c666822b4f3f3e37d4555f984f0684a806b Mon Sep 17 00:00:00 2001 From: perry <292303709@qq.com> Date: Wed, 17 May 2023 09:55:53 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- yudao-ui-admin/.env.dev | 2 +- yudao-ui-admin/.env.prod | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 78402f6d3..c69f3bdb5 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ##前端部署 修改前端访问后端地址 -在 yudao-ui-admin 目录下,执行 npm run build:dev 命令,编译前端项目 +在 yudao-ui-admin 目录下,执行 npm run build:prod 命令,编译前端项目 将打包的dist文件内容放nginx服务访问 diff --git a/yudao-ui-admin/.env.dev b/yudao-ui-admin/.env.dev index a836d5806..26b38c703 100644 --- a/yudao-ui-admin/.env.dev +++ b/yudao-ui-admin/.env.dev @@ -5,7 +5,7 @@ ENV = 'development' VUE_APP_TITLE = 创盈商户管理系统 # 芋道管理系统/开发环境 -VUE_APP_BASE_API = 'http://192.168.2.71:48080' +VUE_APP_BASE_API = 'http://192.168.1.147:48080' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/yudao-ui-admin/.env.prod b/yudao-ui-admin/.env.prod index 1734c6100..df0e4935c 100644 --- a/yudao-ui-admin/.env.prod +++ b/yudao-ui-admin/.env.prod @@ -22,4 +22,4 @@ VUE_APP_CAPTCHA_ENABLE = true VUE_APP_DOC_ENABLE = false # 百度统计 -VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab +VUE_APP_BAIDU_CODE = From 3efa1384c8419c2afd16828a9586d95036d36012 Mon Sep 17 00:00:00 2001 From: luli <3280552144@qq.com> Date: Wed, 17 May 2023 10:36:46 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recharge/RechargeOrderController.java | 17 ++- .../admin/recharge/method/Excel.java | 47 ++++++ .../recharge/vo/RechargeOrderExcelVO.java | 135 ++++++------------ .../recharge/vo/RechargeOrderInfoExcelVO.java | 59 ++++++-- .../dataobject/recharge/RechargeOrderDO.java | 4 + .../recharge/RechargeOrderInfoDO.java | 5 + .../recharge/RechargeOrderInfoMapper.java | 5 + .../recharge/RechargeOrderInfoService.java | 2 + .../RechargeOrderInfoServiceImpl.java | 6 + 9 files changed, 170 insertions(+), 110 deletions(-) create mode 100644 yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/method/Excel.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 875832e69..0c4f5a820 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,9 @@ package cn.iocoder.yudao.module.shop.controller.admin.recharge; +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; +import cn.iocoder.yudao.module.shop.service.recharge.RechargeOrderInfoService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -36,6 +40,8 @@ public class RechargeOrderController { @Resource private RechargeOrderService rechargeOrderService; + @Resource + private RechargeOrderInfoService rechargeOrderInfoService; @PostMapping("/create") @Operation(summary = "创建订单") @@ -87,6 +93,7 @@ public class RechargeOrderController { return success(RechargeOrderConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/export-excel") @Operation(summary = "导出订单 Excel") @PreAuthorize("@ss.hasPermission('shop:recharge-order:export')") @@ -94,9 +101,15 @@ public class RechargeOrderController { public void exportRechargeOrderExcel(@Valid RechargeOrderExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = rechargeOrderService.getRechargeOrderList(exportReqVO); + ArrayList s = new ArrayList<>(); + list.forEach(x -> { + s.add(x.getOrderId()); + }); + List infoList = rechargeOrderInfoService.getRechargeOrderInfoList(s); // 导出 Excel List datas = RechargeOrderConvert.INSTANCE.convertList02(list); - ExcelUtils.write(response, "订单.xls", "数据", RechargeOrderExcelVO.class, datas); - } + List infoDatas = RechargeOrderInfoConvert.INSTANCE.convertList02(infoList); + Excel.orderExport(response, datas, infoDatas); + } } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/method/Excel.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/method/Excel.java new file mode 100644 index 000000000..0b9ebffdd --- /dev/null +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/recharge/method/Excel.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.shop.controller.admin.recharge.method; + +import cn.iocoder.yudao.module.shop.controller.admin.recharge.vo.RechargeOrderExcelVO; +import cn.iocoder.yudao.module.shop.controller.admin.recharge.vo.RechargeOrderInfoExcelVO; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.builder.ExcelWriterBuilder; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.google.common.net.HttpHeaders; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.List; + +/** + * @Author: ignite + * @Date: 2023/5/16 18:25 + * @Description: + */ +public class Excel { + + public static ExcelWriter orderExport(HttpServletResponse response, List z, List x) throws IOException { + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 + String encodedFileName = URLEncoder.encode(System.currentTimeMillis() + "", StandardCharsets.UTF_8.name()).replaceAll("\\+", "%20"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename*=utf-8''" + encodedFileName + ".xlsx"); + + + ExcelWriterBuilder writerBuilder = EasyExcel.write(response.getOutputStream()) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()); + ExcelWriter excelWriter = writerBuilder.build(); + + WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "订单列表").head(RechargeOrderExcelVO.class).build(); + WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "订单明细表").head(RechargeOrderInfoExcelVO.class).build(); + + excelWriter.write(z, writeSheet1); + excelWriter.write(x, writeSheet2); + + excelWriter.finish(); + return excelWriter; + } +} 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 5d80cd479..de6e69d19 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 @@ -1,21 +1,10 @@ package cn.iocoder.yudao.module.shop.controller.admin.recharge.vo; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.math.BigDecimal; - import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; /** * 订单 Excel VO @@ -25,14 +14,23 @@ import com.alibaba.excel.annotation.ExcelProperty; @Data public class RechargeOrderExcelVO { - @ExcelProperty("订单ID") - private Integer id; - @ExcelProperty("订单号") private String orderId; - @ExcelProperty("用户id") - private Integer uid; + @ExcelProperty("第三方支付流水号") + private String paySerialNumber; + + @ExcelProperty("支付时间") + private LocalDateTime payTime; + //:0-普通订单,1-视频号订单 + @ExcelProperty("订单类型") + private Integer type; + //(0:待发货;1:待收货;2:已收货,待评价;3:已完成;) + @ExcelProperty("订单状态") + private String status; + + @ExcelProperty("配送方式") + private String deliveryType; @ExcelProperty("用户姓名") private String realName; @@ -42,89 +40,40 @@ public class RechargeOrderExcelVO { @ExcelProperty("确认手机号") private String confirmPhone; - - @ExcelProperty("订单商品总数") - private Integer totalNum; - - @ExcelProperty("订单总价") - private BigDecimal totalPrice; - - @ExcelProperty("实际支付金额") - private BigDecimal payPrice; - - @ExcelProperty("支付状态") - private Byte paid; - - @ExcelProperty("支付截止时间") - private LocalDateTime payTime; - - @ExcelProperty("支付截止时间") - private LocalDateTime payEndTime; - - @ExcelProperty("支付方式") - private String payType; - - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @ExcelProperty("订单状态(0:待发货;1:待收货;2:已收货,待评价;3:已完成;)") - private Boolean status; - - @ExcelProperty("0 未退款 1 申请中 2 已退款 3 退款中") - private Byte refundStatus; - - @ExcelProperty("退款图片") - private String refundReasonWapImg; - - @ExcelProperty("退款用户说明") - private String refundReasonWapExplain; - - @ExcelProperty("前台退款原因") - private String refundReasonWap; - - @ExcelProperty("不退款的理由") - private String refundReason; - - @ExcelProperty("退款时间") - private LocalDateTime refundReasonTime; - - @ExcelProperty("退款金额") - private BigDecimal refundPrice; + @ExcelProperty("地址") + private String address; @ExcelProperty("备注") private String mark; - @ExcelProperty("管理员备注") + @ExcelProperty("取货地址") + private String pickUpAddr; + + @ExcelProperty("自提地址") + private String SelfPickupAddr; + + @ExcelProperty("支付方式") + private String payType; + + @ExcelProperty("订单备注") private String remark; - @ExcelProperty("成本价") - private BigDecimal cost; - - @ExcelProperty("支付渠道(0微信公众号1微信小程序2余额)") - private Byte isChannel; - - @ExcelProperty("消息提醒") - private Byte isRemind; - - @ExcelProperty("后台是否删除") - private Boolean isSystemDel; - - @ExcelProperty("订单类型:0-普通订单,1-视频号订单") - private Integer type; - - @ExcelProperty("商品总价") + @ExcelProperty("产品合计金额") private BigDecimal proTotalPrice; - @ExcelProperty("改价前支付金额") - private BigDecimal beforePayPrice; + @ExcelProperty("运费") + private BigDecimal shipPrice; - @ExcelProperty("是否改价,0-否,1-是") - private Boolean isAlterPrice; + @ExcelProperty("会员账号") + private String vipAccount; - @ExcelProperty("商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号") - private String outTradeNo; + @ExcelProperty("会员姓名") + private String vipName; - @ExcelProperty("第三方支付流水号") - private String paySerialNumber; + @ExcelProperty("推广员") + private String promoter; + + @ExcelProperty("组织名称") + private Integer depName; } 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 9662629ae..e5908d7e0 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,30 +18,59 @@ import com.alibaba.excel.annotation.ExcelProperty; @Data public class RechargeOrderInfoExcelVO { - @ExcelProperty("主键") - private Integer id; - - @ExcelProperty("充值订单id") - private Integer rechargeOrderId; - - @ExcelProperty("充值档位") - private Integer rechargeGearId; - - @ExcelProperty("创建时间") - private LocalDateTime createTime; - @ExcelProperty("订单号") private String orderNo; - @ExcelProperty("商品名称") + @ExcelProperty("商户名称") + private String shopName; + + @ExcelProperty("产品名称") private String productName; - @ExcelProperty("商品价格") + @ExcelProperty("购物选项") + private String shopOption; + + @ExcelProperty("产品分类") + private String productCategory; + + @ExcelProperty("产品价格") private BigDecimal price; - @ExcelProperty("购买数量") + @ExcelProperty("产品数量") private Integer payNum; + @ExcelProperty("合计金额") + private BigDecimal proTotalPrice; + + @ExcelProperty("支付金额") + private BigDecimal payPrice; + + @ExcelProperty("售后状态") + private String afterStatus; + + @ExcelProperty("退款金额") + private BigDecimal refundPrice; + + @ExcelProperty("会员账号") + private String vipAccount; + + @ExcelProperty("会员姓名") + private String vipName; + //(0:待发货;1:待收货;2:已收货,待评价;3:已完成;) + @ExcelProperty("订单状态") + private String status; + + @ExcelProperty("地址") + private String address; + + @ExcelProperty("订单备注") + private String mark; + + + + + + @ExcelProperty("赠送积分") private Integer giveIntegral; 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 4db369218..6ad3696b0 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 @@ -165,4 +165,8 @@ public class RechargeOrderDO extends BaseDO { */ private String paySerialNumber; + private String creator; + private String updater; + private Boolean deleted; + } 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 5afe858d6..9abb9b89c 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 @@ -70,4 +70,9 @@ public class RechargeOrderInfoDO extends BaseDO { */ private Integer productType; + private String creator; + private String updater; + private LocalDateTime createTime; + private LocalDateTime updateTime; + } 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 185710d14..83e868442 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 @@ -49,4 +49,9 @@ public interface RechargeOrderInfoMapper extends BaseMapperX selectList(List s) { + return selectList(new LambdaQueryWrapperX().in(RechargeOrderInfoDO::getOrderNo, s)); + + } + } 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 d34582d5e..07247bf0c 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,4 +67,6 @@ public interface RechargeOrderInfoService { */ List getRechargeOrderInfoList(RechargeOrderInfoExportReqVO exportReqVO); + List getRechargeOrderInfoList(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 833d1c99b..16a7e0063 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 @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.shop.service.recharge; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -79,4 +80,9 @@ public class RechargeOrderInfoServiceImpl implements RechargeOrderInfoService { return rechargeOrderInfoMapper.selectList(exportReqVO); } + @Override + public List getRechargeOrderInfoList(List s) { + return rechargeOrderInfoMapper.selectList(s); + } + } From 34c0db7cf11e3c545ccd8dc47ae7124f2786cb8c Mon Sep 17 00:00:00 2001 From: tangqian Date: Wed, 17 May 2023 10:53:59 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E4=BC=9A=E5=91=98=E5=85=85?= =?UTF-8?q?=E5=80=BC,=E9=80=80=E6=AC=BE,=E4=BC=9A=E5=91=98=E5=B1=95?= =?UTF-8?q?=E7=A4=BA,=E5=85=85=E5=80=BC=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/member/OrderContentRequest.java | 2 +- .../response/member/InitOrderResponse.java | 7 ++- .../admin/notify/AliPayNotifyController.java | 8 +-- .../admin/notify/WxPayNotifyController.java | 24 ++++++-- .../app/member/MemberController.java | 56 +++++++++++++++++ .../order/impl/StoreOrderServiceImpl.java | 61 ++++++++++++------- .../service/recharge/RechargeGearService.java | 1 + .../recharge/RechargeGearServiceImpl.java | 7 +++ .../recharge/RechargeOrderService.java | 2 + .../recharge/RechargeOrderServiceImpl.java | 12 ++++ .../shop/support/pay/AliPayStrategy.java | 7 +-- .../service/sms/SmsCodeServiceImpl.java | 8 +-- 12 files changed, 154 insertions(+), 41 deletions(-) create mode 100644 yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/member/MemberController.java 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 94ab77d3b..9120c416d 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 @@ -43,7 +43,7 @@ public class OrderContentRequest implements Serializable { private static final long serialVersionUID = -4967251473044468810L; @Schema(description = "订单id") @NotNull(message = "挡位id不能为空") - private Integer gearId; + private String gearId; @Schema(description = "档位名称") @NotEmpty(message = "挡位名称不能为空") diff --git a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/member/InitOrderResponse.java b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/member/InitOrderResponse.java index d5cd2df2a..cfb972450 100644 --- a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/member/InitOrderResponse.java +++ b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/member/InitOrderResponse.java @@ -22,9 +22,12 @@ import java.util.List; public class InitOrderResponse implements Serializable { private static final long serialVersionUID = 6894715033655337607L; - @Schema(description = "h5_url") + @Schema(description = "微信返回参数h5_url") private String h5Url; - @Schema(description ="二维码链接") + @Schema(description ="微信返回参数二维码链接") private String codeUrl; + + @Schema(description ="支付宝返回参数") + private String body; } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/AliPayNotifyController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/AliPayNotifyController.java index 1f107cfaa..c06b5a5cf 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/AliPayNotifyController.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/notify/AliPayNotifyController.java @@ -29,12 +29,12 @@ public class AliPayNotifyController { private StoreOrderService storeOrderService; @PostMapping("pay_notify") - public CommonResult payNotify(HttpServletRequest request, @RequestBody Map params) { - return CommonResult.success(storeOrderService.aliNotify(request, params)); + public Object payNotify(HttpServletRequest request, @RequestBody Map params) { + return storeOrderService.aliNotify(request, params); } @PostMapping("refund_notify") - public CommonResult refundNotify(HttpServletRequest request, @RequestBody Map params) { - return CommonResult.success(storeOrderService.refundNotify(request, params)); + public Object refundNotify(HttpServletRequest request, @RequestBody Map params) { + return storeOrderService.refundNotify(request, params); } } 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 710b94116..77b2445a5 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 @@ -9,6 +9,7 @@ import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyV3Result; import com.github.binarywang.wxpay.service.WxPayService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -63,13 +64,20 @@ public class WxPayNotifyController { v3Result = wxPayService.parseOrderNotifyV3Result(jsonData, this.getRequestHeader(request)); WxPayOrderNotifyV3Result.DecryptNotifyResult result = v3Result.getResult(); log.info("支付通知=" + JSONUtil.toJsonPrettyStr(result)); - + if (StringUtils.equals("SUCCESS",result.getTradeType())) { + log.info("微信支付回调成功"); + // 验证相关参数-金额 + // 修改订单状态 + // 写入 + response.setStatus(HttpServletResponse.SC_OK); + return "success"; + } } catch (Exception e) { log.error(e.getMessage(), e); } // 通知应答码:HTTP应答状态码需返回5XX或4XX,同时需返回应答报文 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - return ""; + return "failure"; } /** @@ -115,13 +123,21 @@ public class WxPayNotifyController { WxPayRefundNotifyV3Result.DecryptNotifyResult result = v3Result.getResult(); log.info("退款通知=" + JSONUtil.toJsonPrettyStr(result)); //退款状态 - + if (StringUtils.equals("SUCCESS",result.getRefundId())) { + log.info("微信退款回调成功"); + // 验证相关参数-金额 + // 修改订单状态 + // 写入 + response.setStatus(HttpServletResponse.SC_OK); + return "success"; + } } catch (Exception e) { log.error(e.getMessage(), e); } // 通知应答码:HTTP应答状态码需返回5XX或4XX,同时需返回应答报文 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - return ""; + + return "failure"; } } diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/member/MemberController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/member/MemberController.java new file mode 100644 index 000000000..ed739bab2 --- /dev/null +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/app/member/MemberController.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.shop.controller.app.member; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.shop.controller.admin.recharge.vo.RechargeGearRespVO; +import cn.iocoder.yudao.module.shop.controller.admin.recharge.vo.RechargeOrderRespVO; +import cn.iocoder.yudao.module.shop.convert.recharge.RechargeGearConvert; +import cn.iocoder.yudao.module.shop.convert.recharge.RechargeOrderConvert; +import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeGearDO; +import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderDO; +import cn.iocoder.yudao.module.shop.service.recharge.RechargeGearService; +import cn.iocoder.yudao.module.shop.service.recharge.RechargeOrderService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Title:MemberController + * @Description: 会员相关信息 + * @author: tangqian + * @date: 2023/5/17 10:13 + * @version: V1.0.0 + */ +@Slf4j +@RestController +@RequestMapping("api/order/member") +@Tag(name = "用户 APP - 会员相关信息") +public class MemberController { + + @Autowired + private RechargeGearService rechargeGearService; + @Autowired + private RechargeOrderService rechargeOrderService; + + // 会员档次信息列表 + @Operation(summary = "会员档次信息") + @RequestMapping(value = "/memberGradeInfo", method = RequestMethod.GET) + public CommonResult> memberGradeInfo() { + List gradeInfo = rechargeGearService.getGradeInfo(); + return CommonResult.success(RechargeGearConvert.INSTANCE.convertList(gradeInfo)); + } + + // 充值列表记录 + @Operation(summary = "获取当前登录账号的充值记录") + @RequestMapping(value = "/memberOrderInfo", method = RequestMethod.GET) + public CommonResult> memberOrderInfo() { + List orderDOS = rechargeOrderService.memberOrderInfo(); + return CommonResult.success(RechargeOrderConvert.INSTANCE.convertList(orderDOS)); + } + +} 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 b951b5294..ccd2bfbcd 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 @@ -9,7 +9,6 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException; import cn.iocoder.yudao.framework.common.pojo.DateLimitUtilVo; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.date.DateUtils; -import cn.iocoder.yudao.framework.pay.config.WxPayOneAutoConfiguration; 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; @@ -52,6 +51,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -80,6 +80,7 @@ import java.util.stream.Collectors; * | Author: CRMEB Team * +---------------------------------------------------------------------- */ +@Slf4j @Service public class StoreOrderServiceImpl extends ServiceImpl implements StoreOrderService { @@ -1150,14 +1151,25 @@ public class StoreOrderServiceImpl extends ServiceImpllambdaQuery().eq(RechargeOrderDO::getOrderId, orderId)); + String amount = params.get("refund_amount"); + String total_amount = params.get("total_amount"); + log.info("orderId:{}",orderId); + log.info("amount:{}",amount); + log.info("amount:{}",total_amount); // 处理相关逻辑 - + // 验证相关参数-金额 + // 修改订单状态 + // 写入 + RechargeOrderDO orderDO = rechargeOrderMapper.selectOne(Wrappers.lambdaQuery().eq(RechargeOrderDO::getOrderId, orderId)); + orderDO.setPaid((byte) 1); + rechargeOrderMapper.updateById(orderDO); + return "success"; + } else { + return "failure"; } - return null; } @Override @@ -1170,31 +1182,36 @@ public class StoreOrderServiceImpl extends ServiceImpl params1) { - // 解析支付宝回调参数 - Map params = new HashMap<>(); - Map requestParams = request.getParameterMap(); - for (Map.Entry entry : requestParams.entrySet()) { - String name = entry.getKey(); - String[] values = entry.getValue(); - StringBuilder sb = new StringBuilder(); - for (String value : values) { - sb.append(value); - } - params.put(name, sb.toString()); - } + public Object refundNotify(HttpServletRequest request, Map params) { + String tradeNo = params.get("trade_no"); // 支付宝交易号 + String outTradeNo = params.get("out_trade_no"); // 商户订单号 + String refundAmount = params.get("refund_amount"); // 退款金额 + String tradeStatus = params.get("trade_status"); + log.info("tradeStatus:{}",tradeStatus); + log.info("tradeNo:{}",tradeNo); + log.info("outTradeNo:{}",outTradeNo); + log.info("refundAmount:{}",refundAmount); + // 2. 验证回调签名 + Map paramMap = new HashMap<>(params); + paramMap.remove("sign_type"); // 移除sign_type参数 // 验证签名 boolean isSignatureValid = false; try { - isSignatureValid = AlipaySignature.rsaCheckV1(params, aliPayProperties.getAlipayPublicKey(), "UTF-8", "RSA2"); + isSignatureValid = AlipaySignature.rsaCheckV1(paramMap, aliPayProperties.getAlipayPublicKey(), "UTF-8", "RSA2"); } catch (AlipayApiException e) { e.printStackTrace(); } + log.info("支付宝退款回调验证结果{}",isSignatureValid); if (isSignatureValid) { - // 验证通过,处理退款结果 - String tradeStatus = params.get("trade_status"); + log.info("支付宝退款回调成功"); + // 验证通过 + // 处理相关逻辑 + // 验证相关参数-金额 + // 修改订单状态 + // 写入 if ("TRADE_SUCCESS".equals(tradeStatus)) { // 退款成功逻辑 + } else { // 退款失败逻辑 } @@ -1229,12 +1246,12 @@ public class StoreOrderServiceImpl extends ServiceImpl { RechargeOrderInfoDO infoDO = new RechargeOrderInfoDO(); infoDO.setRechargeOrderId(orderDO.getId()); - infoDO.setGiveIntegral(info.getGearId()); infoDO.setOrderNo(code); infoDO.setProductName(info.getName()); infoDO.setPrice(new BigDecimal(info.getGearAmount())); infoDO.setPayNum(1); infoDO.setGiveIntegral(info.getGearAmount()); + infoDO.setVipPrice(new BigDecimal(info.getGearAmount())); infoDOS.add(infoDO); }); rechargeOrderInfoMapper.insertBatch(infoDOS); diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearService.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearService.java index 646f1bdf9..d526d6c3e 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearService.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/recharge/RechargeGearService.java @@ -67,4 +67,5 @@ public interface RechargeGearService { */ List getRechargeGearList(RechargeGearExportReqVO exportReqVO); + List getGradeInfo(); } 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 2867ba083..22822d1ca 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 @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.shop.service.recharge; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -79,4 +80,10 @@ public class RechargeGearServiceImpl implements RechargeGearService { return rechargeGearMapper.selectList(exportReqVO); } + @Override + public List getGradeInfo() { + return rechargeGearMapper.selectList(Wrappers.lambdaQuery() + .eq(RechargeGearDO::getDeleted, 0)); + } + } 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 2b13cd508..31308cad0 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 @@ -67,4 +67,6 @@ public interface RechargeOrderService { */ List getRechargeOrderList(RechargeOrderExportReqVO exportReqVO); + List memberOrderInfo(); + } 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 5593dda00..c1227ce02 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 @@ -1,7 +1,12 @@ package cn.iocoder.yudao.module.shop.service.recharge; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import javax.annotation.Resource; + +import org.springframework.util.Assert; import org.springframework.validation.annotation.Validated; import java.util.*; @@ -79,4 +84,11 @@ public class RechargeOrderServiceImpl implements RechargeOrderService { return rechargeOrderMapper.selectList(exportReqVO); } + @Override + public List memberOrderInfo() { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + Assert.notNull(loginUser, "登录失效,请重新登录!"); + return rechargeOrderMapper.selectList(Wrappers.lambdaQuery().eq(RechargeOrderDO::getUid,loginUser.getId())); + } + } 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 528046449..43143873d 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 @@ -36,6 +36,7 @@ public class AliPayStrategy implements IPayStrategy { @Override public InitOrderResponse pay(RechargeOrderDO orderDO, HttpServletRequest servletRequest, String openId) { + InitOrderResponse orderResponse = new InitOrderResponse(); AlipayClient alipayClient = aliPayConfig.alipayClient(); Assert.notNull(alipayClient, "获取支付宝支付配置失败!"); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); @@ -56,13 +57,11 @@ public class AliPayStrategy implements IPayStrategy { AlipayTradeWapPayResponse response = null; try { response = alipayClient.pageExecute(request); + orderResponse.setBody(response.getBody()); } catch (AlipayApiException e) { e.printStackTrace(); } - if (response.isSuccess()) { - return new InitOrderResponse(); - } - return null; + return orderResponse; } @Override diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java index 682b89eff..cf37553d7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java @@ -97,10 +97,10 @@ public class SmsCodeServiceImpl implements SmsCodeService { throw exception(SMS_CODE_NOT_FOUND); } // 超过时间 - if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis() - >= smsCodeProperties.getExpireTimes().toMillis()) { // 验证码已过期 - throw exception(SMS_CODE_EXPIRED); - } +// if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis() +// >= smsCodeProperties.getExpireTimes().toMillis()) { // 验证码已过期 +// throw exception(SMS_CODE_EXPIRED); +// } // 判断验证码是否已被使用 if (Boolean.TRUE.equals(lastSmsCode.getUsed())) { throw exception(SMS_CODE_USED); From 9fbee205796ec7273e89ee6ef7967414a8fc8a9e Mon Sep 17 00:00:00 2001 From: perry <292303709@qq.com> Date: Wed, 17 May 2023 14:17:20 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/banner/BannerController.java | 4 +- .../admin/banner/vo/BannerPageReqVO.java | 5 ++ .../admin/promoter/PromoterController.java | 5 +- .../admin/promoter/vo/PromoterBaseVO.java | 2 +- .../admin/promoter/vo/PromoterRespVO.java | 5 +- .../admin/user/AdminUserController.java | 10 +++- .../user/vo/MemberUpdateStatusReqVO.java | 21 ++++++++ .../dal/mysql/promoter/PromoterMapper.java | 4 +- .../service/promoter/PromoterService.java | 3 +- .../service/promoter/PromoterServiceImpl.java | 13 +++-- .../service/user/MemberUserService.java | 2 + .../service/user/MemberUserServiceImpl.java | 11 +++- .../mapper/promoter/PromoterMapper.xml | 6 +++ .../system/enums/ErrorCodeConstants.java | 2 + .../admin/tenant/vo/tenant/TenantBaseVO.java | 9 ++++ .../tenant/TenantCommissionUpdateReqVO.java | 4 +- .../app/tenant/AppTenantController.java | 52 +++++++++++++++++++ .../app/tenant/vo/TenantRespVO.java | 25 +++++++++ .../service/tenant/TenantServiceImpl.java | 2 +- yudao-ui-admin/src/api/member/user.js | 12 +++++ .../src/views/member/promoter/index.vue | 36 +++++++++++-- .../src/views/system/user/index.vue | 4 +- 22 files changed, 215 insertions(+), 22 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUpdateStatusReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/AppTenantController.java create mode 100755 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/vo/TenantRespVO.java diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/banner/BannerController.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/banner/BannerController.java index 68f523c64..e00669d4a 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/banner/BannerController.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/banner/BannerController.java @@ -66,10 +66,10 @@ public class BannerController { return success(BannerConvert.INSTANCE.convert(banner)); } - @GetMapping("/page") + @PostMapping("/page") @Operation(summary = "获得 Banner 分页") @PreAuthorize("@ss.hasPermission('market:banner:query')") - public CommonResult> getBannerPage(@Valid BannerPageReqVO pageVO) { + public CommonResult> getBannerPage(@RequestBody@Valid BannerPageReqVO pageVO) { 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/controller/admin/banner/vo/BannerPageReqVO.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/banner/vo/BannerPageReqVO.java index db7a4d2a8..acfd591ca 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/banner/vo/BannerPageReqVO.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/controller/admin/banner/vo/BannerPageReqVO.java @@ -25,6 +25,11 @@ public class BannerPageReqVO extends PageParam { @Schema(description = "标题") private String title; + /** + * 多租户编号 + */ + @Schema(description = "多租户编号") + private Long tenantId; @Schema(description = "状态") @InEnum(CommonStatusEnum.class) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/PromoterController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/PromoterController.java index 05dba656b..362deaefc 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/PromoterController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/PromoterController.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.controller.admin.promoter; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.module.system.enums.common.SexEnum; +import com.github.pagehelper.PageInfo; import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -87,8 +88,8 @@ public class PromoterController { @Operation(summary = "获得推广员分页") @PreAuthorize("@ss.hasPermission('member:promoter:query')") public CommonResult> getPromoterPage(@Valid PromoterPageReqVO pageVO) { - PageResult pageResult = promoterService.getPromoterPage(pageVO); - return success(PromoterConvert.INSTANCE.convertPage(pageResult)); + PageResult pageResult = promoterService.getPromoterPage(pageVO); + return success(pageResult); } @GetMapping("/export-excel") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterBaseVO.java index 9892197eb..f9c1817f9 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterBaseVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/promoter/vo/PromoterBaseVO.java @@ -21,7 +21,7 @@ public class PromoterBaseVO { @Schema(description = "推广员名称", required = true, example = "5841") @NotEmpty(message = "推广员名称不能为空") @Size(max = 10,message = "推广员名称最长不能超过{max}") - private String nickName; + private String nickname; @Schema(description = "推广员手机号", example = "15601691300") 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 3ae786ec4..69f37c119 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 @@ -11,5 +11,8 @@ public class PromoterRespVO extends PromoterBaseVO { @Schema(description = "编号", required = true, example = "3051") private Long id; - + @Schema(description = "组织名称", required = true, example = "18443") + private String orgName; + @Schema(description = "组织名称", required = true, example = "18443") + private String userId; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/AdminUserController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/AdminUserController.java index 37f1984ef..2928eec17 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/AdminUserController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/AdminUserController.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.member.controller.admin.user.dto.AdminUserQueryDTO; import cn.iocoder.yudao.module.member.controller.admin.user.vo.AdminUserInfoRespVO; +import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUpdateStatusReqVO; import cn.iocoder.yudao.module.member.convert.user.UserConvert; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.service.user.MemberUserService; @@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.validation.Valid; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -58,7 +60,13 @@ public class AdminUserController { String avatar = userService.updateUserAvatar(getLoginUserId(), file.getInputStream()); return success(avatar); } - + @PutMapping("/update-status") + @Operation(summary = "修改用户状态") + @PreAuthorize("@ss.hasPermission('system:user:update')") + public CommonResult updateUserStatus(@Valid @RequestBody MemberUpdateStatusReqVO reqVO) { + userService.updateUserStatus(reqVO.getId(), reqVO.getStatus()); + return success(true); + } @GetMapping("/get") @Operation(summary = "获得基本信息") @PreAuthorize("@ss.hasPermission('member:user:query')") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUpdateStatusReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUpdateStatusReqVO.java new file mode 100644 index 000000000..88075b8b9 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUpdateStatusReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.member.controller.admin.user.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 用户更新状态 Request VO") +@Data +public class MemberUpdateStatusReqVO { + + @Schema(description = "用户编号", required = true, example = "1024") + @NotNull(message = "角色编号不能为空") + private Long id; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", required = true, example = "1") + @NotNull(message = "状态不能为空") +// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + +} 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 1b48697b8..3913dde16 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 @@ -6,8 +6,10 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.member.dal.dataobject.promoter.PromoterDO; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.member.controller.admin.promoter.vo.*; +import org.apache.ibatis.annotations.Param; /** * 推广员 Mapper @@ -23,7 +25,7 @@ public interface PromoterMapper extends BaseMapperX { .eqIfPresent(PromoterDO::getUserId, reqVO.getUserId()) .orderByDesc(PromoterDO::getId)); } - + IPage findListPage(IPage page, @Param("data") PromoterPageReqVO data); default List selectList(PromoterExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(PromoterDO::getOrgId, reqVO.getOrgId()) 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 756dadfe3..f7adf24a0 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 @@ -5,6 +5,7 @@ import javax.validation.*; 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; +import com.github.pagehelper.PageInfo; /** * 推广员 Service 接口 @@ -57,7 +58,7 @@ public interface PromoterService { * @param pageReqVO 分页查询 * @return 推广员分页 */ - PageResult getPromoterPage(PromoterPageReqVO pageReqVO); + PageResult getPromoterPage(PromoterPageReqVO pageReqVO); /** * 获得推广员列表, 用于 Excel 导出 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 3e47b5889..b48c169dc 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 @@ -9,6 +9,9 @@ import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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; @@ -58,11 +61,11 @@ public class PromoterServiceImpl implements PromoterService { if(memberUserDO==null){ //创建用户 memberUserDO = new MemberUserDO(); - memberUserDO.setNickname(createReqVO.getNickName()); + 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()); + memberUserService.createUserIfAbsent(createReqVO.getMobile(),createReqVO.getNickname(),getClientIP()); } // 插入 PromoterDO promoter = PromoterConvert.INSTANCE.convert(createReqVO); @@ -111,8 +114,10 @@ public class PromoterServiceImpl implements PromoterService { } @Override - public PageResult getPromoterPage(PromoterPageReqVO pageReqVO) { - return promoterMapper.selectPage(pageReqVO); + public PageResult getPromoterPage(PromoterPageReqVO pageReqVO) { + Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + promoterMapper.findListPage(page,pageReqVO); + return new PageResult<>(page.getRecords(), page.getTotal()); } @Override diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java index 3ce58455d..524123442 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java @@ -82,6 +82,8 @@ public interface MemberUserService { */ String updateUserAvatar(Long userId, InputStream inputStream) throws Exception; + void updateUserStatus(Long id, Integer status) ; + /** * 修改手机 * @param userId 用户id diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index 4005d4ada..2709c9d10 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -123,7 +123,16 @@ public class MemberUserServiceImpl implements MemberUserService { memberUserMapper.updateById(MemberUserDO.builder().id(userId).avatar(avatar).build()); return avatar; } - + @Override + public void updateUserStatus(Long id, Integer status) { + // 校验用户存在 + this.checkUserExists(id); + // 更新状态 + MemberUserDO updateObj = new MemberUserDO(); + updateObj.setId(id); + updateObj.setStatus(status); + memberUserMapper.updateById(updateObj); + } @Override @Transactional(rollbackFor = Exception.class) public void updateUserMobile(Long userId, AppUserUpdateMobileReqVO reqVO) { 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 8a990f7c6..38b6dc70b 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 @@ -9,4 +9,10 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index 868c4eb8c..575a138d2 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -165,4 +165,6 @@ public interface ErrorCodeConstants { // ========== 站内信发送 1002028000 ========== ErrorCode NOTIFY_SEND_TEMPLATE_PARAM_MISS = new ErrorCode(1002025000, "模板参数({})缺失"); + + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java index 53537dc26..b7ad48021 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java @@ -102,5 +102,14 @@ public class TenantBaseVO { @Length( max =200, message = "logo长度为 {max}位") private String logo; + /** + * 商品提成 + */ + private Integer goodsCommission; + /** + * 会员充值提成 + */ + private Integer memberCommission; + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCommissionUpdateReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCommissionUpdateReqVO.java index dd23e95f4..9daa940b7 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCommissionUpdateReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantCommissionUpdateReqVO.java @@ -21,12 +21,12 @@ public class TenantCommissionUpdateReqVO { * 商品提成 */ @NotNull(message = "商品提成不能为空") - @Size(min = 0,max = 100,message ="商品提成{min}{max}之间" ) +// @Size(min = 0,max = 100,message ="商品提成{min}{max}之间" ) private Integer goodsCommission; /** * 会员充值提成 */ @NotNull(message = "会员充值提成不能为空") - @Size(min = 0,max = 100,message ="会员充值提成{min}{max}之间" ) +// @Size(min = 0,max = 100,message ="会员充值提成{min}{max}之间" ) private Integer memberCommission; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/AppTenantController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/AppTenantController.java new file mode 100644 index 000000000..d20a0db5d --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/AppTenantController.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.controller.app.tenant; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +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.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.*; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 租户") +@RestController +@RequestMapping("/system/tenant") +public class AppTenantController { + + @Resource + private TenantService tenantService; + + + + @GetMapping("/get") + @Operation(summary = "获得租户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:tenant:query')") + public CommonResult getTenant(@RequestParam("id") Long id) { + TenantDO tenant = tenantService.getTenant(id); + return success(TenantConvert.INSTANCE.convert(tenant)); + } + + + + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/vo/TenantRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/vo/TenantRespVO.java new file mode 100755 index 000000000..bc5510881 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/vo/TenantRespVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.controller.app.tenant.vo; + +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantBaseVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 租户 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TenantRespVO extends TenantBaseVO { + + @Schema(description = "租户编号", required = true, example = "1024") + private Long id; + + @Schema(description = "租户名", required = true, example = "芋道") + @NotNull(message = "租户名不能为空") + private String name; + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java index 9e288654d..f766cbfcf 100755 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java @@ -159,7 +159,7 @@ public class TenantServiceImpl implements TenantService { // 校验租户名称是否重复 validTenantNameDuplicate(updateReqVO.getName(), updateReqVO.getId()); // 校验套餐被禁用 - TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(updateReqVO.getPackageId()); + TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(tenant.getPackageId()); // 更新租户 TenantDO updateObj = TenantConvert.INSTANCE.convert(updateReqVO); diff --git a/yudao-ui-admin/src/api/member/user.js b/yudao-ui-admin/src/api/member/user.js index bd4915c4f..0a9b882cb 100644 --- a/yudao-ui-admin/src/api/member/user.js +++ b/yudao-ui-admin/src/api/member/user.js @@ -52,3 +52,15 @@ export function exportUserExcel(query) { responseType: 'blob' }) } +// 用户状态修改 +export function changeUserStatus(id, status) { + const data = { + id, + status + } + return request({ + url: '/member/user/update-status', + method: 'put', + data: data + }) +} diff --git a/yudao-ui-admin/src/views/member/promoter/index.vue b/yudao-ui-admin/src/views/member/promoter/index.vue index 7ba9a6739..e322d36bc 100644 --- a/yudao-ui-admin/src/views/member/promoter/index.vue +++ b/yudao-ui-admin/src/views/member/promoter/index.vue @@ -35,14 +35,22 @@ - - + + + + + + @@ -90,9 +98,19 @@