Browse Source

修改sale模块

gaohp 1 year ago
parent
commit
90fdba2241
26 changed files with 662 additions and 407 deletions
  1. 7 9
      feifan-module-mall/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/sale/enums/ErrorCodeConstants.java
  2. 38 0
      feifan-module-mall/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/sale/enums/MerchantStatusEnum.java
  3. 81 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantPageReqVO.java
  4. 101 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantRespVO.java
  5. 17 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantSaveReqByMobileVO.java
  6. 79 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantSaveReqVO.java
  7. 0 95
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/ShopController.java
  8. 5 3
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/vo/ShopPageReqVO.java
  9. 12 5
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/vo/ShopRespVO.java
  10. 14 3
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/vo/ShopSaveReqVO.java
  11. 27 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shopstatus/vo/ShopStatusPageReqVO.java
  12. 27 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shopstatus/vo/ShopStatusRespVO.java
  13. 19 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shopstatus/vo/ShopStatusSaveReqVO.java
  14. 98 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/dataobject/merchant/MerchantDO.java
  15. 8 5
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/dataobject/shop/ShopDO.java
  16. 34 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/dataobject/shopstatus/ShopStatusDO.java
  17. 41 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/mysql/merchant/MerchantMapper.java
  18. 2 9
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/mysql/shop/ShopMapper.java
  19. 25 0
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/mysql/shopstatus/ShopStatusMapper.java
  20. 0 55
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/service/shop/ShopService.java
  21. 0 75
      feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/service/shop/ShopServiceImpl.java
  22. 12 0
      feifan-module-mall/feifan-module-sale-biz/src/main/resources/mapper/merchant/MerchantMapper.xml
  23. 1 1
      feifan-module-mall/feifan-module-sale-biz/src/main/resources/mapper/shop/ShopMapper.xml
  24. 12 0
      feifan-module-mall/feifan-module-sale-biz/src/main/resources/mapper/shopstatus/ShopStatusMapper.xml
  25. 0 146
      feifan-module-mall/feifan-module-sale-biz/src/test/java/cn/newfeifan/mall/module/sale/service/shop/ShopServiceImplTest.java
  26. 2 1
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

+ 7 - 9
feifan-module-mall/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/sale/enums/ErrorCodeConstants.java

@@ -3,16 +3,14 @@ package cn.newfeifan.mall.module.sale.enums;
 import cn.newfeifan.mall.framework.common.exception.ErrorCode;
 
 /**
- * Sale 错误码枚举类 add by Ben 20240315
- * <p>
- * Sale 系统,使用 1-101-000-000 段
- * 第二段是模块编号,用101这么大,是不想与原来的编码重复
- * 第三段是表编号,如:商户表、店铺表
- * 第四段是表内的错误编号
+ * System 错误码枚举类
+ *
+ * system 系统,使用 1-002-000-000 段
  */
 public interface ErrorCodeConstants {
-
-    //店铺表相关错误,表编号是1
-    ErrorCode SHOP_NOT_EXISTS = new ErrorCode(1_101_001_001, "店铺不存在");
+    // ========== 店铺商户信息 1-002-029-000 ==========
+    ErrorCode SHOP_STATUS_NOT_EXISTS = new ErrorCode(1_002_029_000 , "店铺状态不存在");
+    ErrorCode MERCHANT_NOT_EXISTS = new ErrorCode(1_002_029_001, "商户不存在");
+    ErrorCode SHOP_NOT_EXISTS = new ErrorCode(1_002_029_002, "店铺不存在不存在");
 
 }

+ 38 - 0
feifan-module-mall/feifan-module-sale-api/src/main/java/cn/newfeifan/mall/module/sale/enums/MerchantStatusEnum.java

@@ -0,0 +1,38 @@
+package cn.newfeifan.mall.module.sale.enums;
+
+import cn.newfeifan.mall.framework.common.core.IntArrayValuable;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+import java.util.Arrays;
+
+/**
+ * 交易订单 - 关闭类型
+ *
+ * @author Sin
+ */
+@RequiredArgsConstructor
+@Getter
+public enum MerchantStatusEnum implements IntArrayValuable {
+
+    USING(10, "使用中"),
+    OVERDUE(20, "过期"),
+    STOP(30, "停用");
+
+    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MerchantStatusEnum::getType).toArray();
+
+    /**
+     * 关闭类型
+     */
+    private final Integer type;
+    /**
+     * 关闭类型名
+     */
+    private final String name;
+
+    @Override
+    public int[] array() {
+        return ARRAYS;
+    }
+
+}

+ 81 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantPageReqVO.java

@@ -0,0 +1,81 @@
+package cn.newfeifan.mall.module.sale.controller.admin.merchant.vo;
+
+import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 商户分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class MerchantPageReqVO extends PageParam {
+
+    @Schema(description = "商户名称", example = "李四")
+    private String name;
+
+    @Schema(description = "商户状态,关联商户状态表", example = "2")
+    private Integer status;
+
+    @Schema(description = "简介", example = "随便")
+    private String description;
+
+    @Schema(description = "负责人")
+    private String contact;
+
+    @Schema(description = "所在地")
+    private String address;
+
+    @Schema(description = "负责人电话")
+    private String contactNumber;
+
+    @Schema(description = "域名")
+    private String website;
+
+    @Schema(description = "官网")
+    private String businessUrl;
+
+    @Schema(description = "维权电话")
+    private String complaintsHotline;
+
+    @Schema(description = "客服电话")
+    private String customerServiceHotline;
+
+    @Schema(description = "邮箱")
+    private String email;
+
+    @Schema(description = "营业执照图片路径")
+    private String businessLicensePicture;
+
+    @Schema(description = "服务到期时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] expireTime;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+    @Schema(description = "logo地址", example = "https://www.zhongxing.cn")
+    private String logoUrl;
+
+/*    @Schema(description = "商户负责人姓名", example = "芋艿")
+    private String contactName;
+
+    @Schema(description = "商户负责人手机")
+    private String contactMobile;*/
+
+    @Schema(description = "服务套餐", example = "8463")
+    private Integer packageId;
+
+    @Schema(description = "店铺数量", example = "11326")
+    private Integer shopCount;
+
+    @Schema(description = "区域id,对应文件系统 src/main/resources/area.csv 中的id一列", example = "22725")
+    private Long areaId;
+}

+ 101 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantRespVO.java

@@ -0,0 +1,101 @@
+package cn.newfeifan.mall.module.sale.controller.admin.merchant.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 商户 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class MerchantRespVO {
+
+    @Schema(description = "商户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24252")
+    @ExcelProperty("商户id")
+    private Long id;
+
+    @Schema(description = "商户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+    @ExcelProperty("商户名称")
+    private String name;
+
+    @Schema(description = "商户状态,关联商户状态表", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("商户状态,关联商户状态表")
+    private Integer status;
+
+    @Schema(description = "简介", example = "随便")
+    @ExcelProperty("简介")
+    private String description;
+
+    @Schema(description = "负责人")
+    @ExcelProperty("负责人")
+    private String contact;
+
+    @Schema(description = "所在地")
+    @ExcelProperty("所在地")
+    private String address;
+
+    @Schema(description = "负责人电话")
+    @ExcelProperty("负责人电话")
+    private String contactNumber;
+
+    @Schema(description = "域名")
+    @ExcelProperty("域名")
+    private String website;
+
+    @Schema(description = "官网")
+    @ExcelProperty("官网")
+    private String businessUrl;
+
+    @Schema(description = "维权电话")
+    @ExcelProperty("维权电话")
+    private String complaintsHotline;
+
+    @Schema(description = "客服电话")
+    @ExcelProperty("客服电话")
+    private String customerServiceHotline;
+
+    @Schema(description = "邮箱")
+    @ExcelProperty("邮箱")
+    private String email;
+
+    @Schema(description = "营业执照图片路径")
+    @ExcelProperty("营业执照图片路径")
+    private String businessLicensePicture;
+
+    @Schema(description = "服务到期时间")
+    @ExcelProperty("服务到期时间")
+    private LocalDateTime expireTime;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "logo地址", example = "https://www.zhongxing.cn")
+    @ExcelProperty("logo地址")
+    private String logoUrl;
+
+
+/*    @Schema(description = "商户负责人姓名", example = "芋艿")
+    @ExcelProperty("商户负责人姓名")
+    private String contactName;
+
+    @Schema(description = "商户负责人手机")
+    @ExcelProperty("商户负责人手机")
+    private String contactMobile;*/
+
+    @Schema(description = "服务套餐", example = "8463")
+    @ExcelProperty("服务套餐")
+    private Integer packageId;
+
+    @Schema(description = "店铺数量", example = "11326")
+    @ExcelProperty("店铺数量")
+    private Integer shopCount;
+
+    @Schema(description = "区域id,对应文件系统 src/main/resources/area.csv 中的id一列", example = "22725")
+    @ExcelProperty("区域id,对应文件系统 src/main/resources/area.csv 中的id一列")
+    private Long areaId;
+
+
+}

+ 17 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantSaveReqByMobileVO.java

@@ -0,0 +1,17 @@
+package cn.newfeifan.mall.module.sale.controller.admin.merchant.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 商户新增/修改 Request VO")
+@Data
+public class MerchantSaveReqByMobileVO {
+
+    @Schema(description = "负责人")
+    private String contact;
+
+    @Schema(description = "负责人电话")
+    private String contactNumber;
+
+
+}

+ 79 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/merchant/vo/MerchantSaveReqVO.java

@@ -0,0 +1,79 @@
+package cn.newfeifan.mall.module.sale.controller.admin.merchant.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 商户新增/修改 Request VO")
+@Data
+public class MerchantSaveReqVO {
+
+    @Schema(description = "商户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24252")
+    private Long id;
+
+    @Schema(description = "商户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+    @NotEmpty(message = "商户名称不能为空")
+    private String name;
+
+    @Schema(description = "商户状态,关联商户状态表", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @NotNull(message = "商户状态,关联商户状态表不能为空")
+    private Integer status;
+
+    @Schema(description = "简介", example = "随便")
+    private String description;
+
+    @Schema(description = "负责人")
+    private String contact;
+
+    @Schema(description = "所在地")
+    private String address;
+
+    @Schema(description = "负责人电话")
+    private String contactNumber;
+
+    @Schema(description = "域名")
+    private String website;
+
+    @Schema(description = "官网")
+    private String businessUrl;
+
+    @Schema(description = "维权电话")
+    private String complaintsHotline;
+
+    @Schema(description = "客服电话")
+    private String customerServiceHotline;
+
+    @Schema(description = "邮箱")
+    private String email;
+
+    @Schema(description = "营业执照图片路径")
+    private String businessLicensePicture;
+
+    @Schema(description = "服务到期时间")
+    private LocalDateTime expireTime;
+
+    @Schema(description = "logo地址", example = "https://www.zhongxing.cn")
+    private String logoUrl;
+
+//    @Schema(description = "商户负责人姓名", example = "芋艿")
+//    private String contactName;
+//
+//    @Schema(description = "商户负责人手机")
+//    private String contactMobile;
+
+    @Schema(description = "服务套餐", example = "8463")
+    private Integer packageId;
+
+    @Schema(description = "店铺数量", example = "11326")
+    private Integer shopCount;
+
+    @Schema(description = "区域id,对应文件系统 src/main/resources/area.csv 中的id一列", example = "22725")
+    private Long areaId;
+
+
+
+
+}

+ 0 - 95
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/ShopController.java

@@ -1,95 +0,0 @@
-package cn.newfeifan.mall.module.sale.controller.admin.shop;
-
-import org.springframework.web.bind.annotation.*;
-import javax.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.security.access.prepost.PreAuthorize;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Operation;
-
-import javax.validation.constraints.*;
-import javax.validation.*;
-import javax.servlet.http.*;
-import java.util.*;
-import java.io.IOException;
-
-import cn.newfeifan.mall.framework.common.pojo.PageParam;
-import cn.newfeifan.mall.framework.common.pojo.PageResult;
-import cn.newfeifan.mall.framework.common.pojo.CommonResult;
-import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
-import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
-
-import cn.newfeifan.mall.framework.excel.core.util.ExcelUtils;
-
-import cn.newfeifan.mall.framework.operatelog.core.annotations.OperateLog;
-import static cn.newfeifan.mall.framework.operatelog.core.enums.OperateTypeEnum.*;
-
-import cn.newfeifan.mall.module.sale.controller.admin.shop.vo.*;
-import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
-import cn.newfeifan.mall.module.sale.service.shop.ShopService;
-
-@Tag(name = "管理后台 - 店铺")
-@RestController
-@RequestMapping("/sale/shop")
-@Validated
-public class ShopController {
-
-    @Resource
-    private ShopService shopService;
-
-    @PostMapping("/create")
-    @Operation(summary = "创建店铺")
-    @PreAuthorize("@ss.hasPermission('sale:shop:create')")
-    public CommonResult<Long> createShop(@Valid @RequestBody ShopSaveReqVO createReqVO) {
-        return success(shopService.createShop(createReqVO));
-    }
-
-    @PutMapping("/update")
-    @Operation(summary = "更新店铺")
-    @PreAuthorize("@ss.hasPermission('sale:shop:update')")
-    public CommonResult<Boolean> updateShop(@Valid @RequestBody ShopSaveReqVO updateReqVO) {
-        shopService.updateShop(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/delete")
-    @Operation(summary = "删除店铺")
-    @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('sale:shop:delete')")
-    public CommonResult<Boolean> deleteShop(@RequestParam("id") Long id) {
-        shopService.deleteShop(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @Operation(summary = "获得店铺")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('sale:shop:query')")
-    public CommonResult<ShopRespVO> getShop(@RequestParam("id") Long id) {
-        ShopDO shop = shopService.getShop(id);
-        return success(BeanUtils.toBean(shop, ShopRespVO.class));
-    }
-
-    @GetMapping("/page")
-    @Operation(summary = "获得店铺分页")
-    @PreAuthorize("@ss.hasPermission('sale:shop:query')")
-    public CommonResult<PageResult<ShopRespVO>> getShopPage(@Valid ShopPageReqVO pageReqVO) {
-        PageResult<ShopDO> pageResult = shopService.getShopPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, ShopRespVO.class));
-    }
-
-    @GetMapping("/export-excel")
-    @Operation(summary = "导出店铺 Excel")
-    @PreAuthorize("@ss.hasPermission('sale:shop:export')")
-    @OperateLog(type = EXPORT)
-    public void exportShopExcel(@Valid ShopPageReqVO pageReqVO,
-              HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<ShopDO> list = shopService.getShopPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "店铺.xls", "数据", ShopRespVO.class,
-                        BeanUtils.toBean(list, ShopRespVO.class));
-    }
-
-}

+ 5 - 3
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/vo/ShopPageReqVO.java

@@ -1,10 +1,12 @@
 package cn.newfeifan.mall.module.sale.controller.admin.shop.vo;
 
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
 import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
+
 import java.time.LocalDateTime;
 
 import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

+ 12 - 5
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/vo/ShopRespVO.java

@@ -1,12 +1,11 @@
 package cn.newfeifan.mall.module.sale.controller.admin.shop.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
 
 @Schema(description = "管理后台 - 店铺 Response VO")
 @Data
@@ -37,4 +36,12 @@ public class ShopRespVO {
     @ExcelProperty("logo地址")
     private String logoUrl;
 
+    @Schema(description = "域名", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+    @ExcelProperty("域名")
+    private String website;
+
+    @Schema(description = "最后更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("最后更新时间")
+    private LocalDateTime updateTime;
+
 }

+ 14 - 3
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shop/vo/ShopSaveReqVO.java

@@ -1,12 +1,19 @@
 package cn.newfeifan.mall.module.sale.controller.admin.shop.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import javax.validation.constraints.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 
 @Schema(description = "管理后台 - 店铺新增/修改 Request VO")
 @Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class ShopSaveReqVO {
 
     @Schema(description = "店铺id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15084")
@@ -27,4 +34,8 @@ public class ShopSaveReqVO {
     @Schema(description = "logo地址", example = "https://www.zhongxing.cn")
     private String logoUrl;
 
+    @Schema(description = "域名", example = "https://www.zhongxing.cn")
+    private String website;
+
+
 }

+ 27 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shopstatus/vo/ShopStatusPageReqVO.java

@@ -0,0 +1,27 @@
+package cn.newfeifan.mall.module.sale.controller.admin.shopstatus.vo;
+
+import cn.newfeifan.mall.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 店铺状态分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ShopStatusPageReqVO extends PageParam {
+
+    @Schema(description = "名称", example = "王五")
+    private String name;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 27 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shopstatus/vo/ShopStatusRespVO.java

@@ -0,0 +1,27 @@
+package cn.newfeifan.mall.module.sale.controller.admin.shopstatus.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 店铺状态 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ShopStatusRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31352")
+    @ExcelProperty("id")
+    private Long id;
+
+    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+    @ExcelProperty("名称")
+    private String name;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 19 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/controller/admin/shopstatus/vo/ShopStatusSaveReqVO.java

@@ -0,0 +1,19 @@
+package cn.newfeifan.mall.module.sale.controller.admin.shopstatus.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+
+@Schema(description = "管理后台 - 店铺状态新增/修改 Request VO")
+@Data
+public class ShopStatusSaveReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31352")
+    private Long id;
+
+    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+    @NotEmpty(message = "名称不能为空")
+    private String name;
+
+}

+ 98 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/dataobject/merchant/MerchantDO.java

@@ -0,0 +1,98 @@
+package cn.newfeifan.mall.module.sale.dal.dataobject.merchant;
+
+import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * 商户 DO
+ *
+ * @author 非繁人
+ */
+@TableName("sale_merchant")
+@KeySequence("sale_merchant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class MerchantDO extends BaseDO {
+
+    /**
+     * 商户id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 商户名称
+     */
+    private String name;
+    /**
+     * 商户状态,关联商户状态表
+     */
+    private Integer status;
+    /**
+     * 简介
+     */
+    private String description;
+    /**
+     * 负责人
+     */
+    private String contact;
+    /**
+     * 所在地
+     */
+    private String address;
+    /**
+     * 负责人电话
+     */
+    private String contactNumber;
+    /**
+     * 官网
+     */
+    private String website;
+    /**
+     * 维权电话
+     */
+    private String complaintsHotline;
+    /**
+     * 客服电话
+     */
+    private String customerServiceHotline;
+    /**
+     * 邮箱
+     */
+    private String email;
+    /**
+     * 营业执照图片路径
+     */
+    private String businessLicensePicture;
+    /**
+     * 服务到期时间
+     */
+    private LocalDateTime expireTime;
+    /**
+     * logo地址
+     */
+    private String logoUrl;
+
+    /**
+     * 服务套餐
+     */
+    private Integer packageId;
+    /**
+     * 店铺数量
+     */
+    private Integer shopCount;
+    /**
+     * 区域id,对应文件系统 src/main/resources/area.csv 中的id一列
+     */
+    private Long areaId;
+
+
+}

+ 8 - 5
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/dataobject/shop/ShopDO.java

@@ -1,11 +1,10 @@
 package cn.newfeifan.mall.module.sale.dal.dataobject.shop;
 
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
 import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
 
 /**
  * 店铺 DO
@@ -43,5 +42,9 @@ public class ShopDO extends BaseDO {
      * logo地址
      */
     private String logoUrl;
+    /**
+     * 域名
+     */
+    private String website;
 
 }

+ 34 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/dataobject/shopstatus/ShopStatusDO.java

@@ -0,0 +1,34 @@
+package cn.newfeifan.mall.module.sale.dal.dataobject.shopstatus;
+
+import cn.newfeifan.mall.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+/**
+ * 店铺状态 DO
+ *
+ * @author 非繁人
+ */
+@TableName("sale_shop_status")
+@KeySequence("sale_shop_status_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ShopStatusDO extends BaseDO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 名称
+     */
+    private String name;
+
+}

+ 41 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/mysql/merchant/MerchantMapper.java

@@ -0,0 +1,41 @@
+package cn.newfeifan.mall.module.sale.dal.mysql.merchant;
+
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
+import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.newfeifan.mall.module.sale.controller.admin.merchant.vo.MerchantPageReqVO;
+import cn.newfeifan.mall.module.sale.dal.dataobject.merchant.MerchantDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 商户 Mapper
+ *
+ * @author 非繁人
+ */
+@Mapper
+public interface MerchantMapper extends BaseMapperX<MerchantDO> {
+
+    default PageResult<MerchantDO> selectPage(MerchantPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<MerchantDO>()
+                .likeIfPresent(MerchantDO::getName, reqVO.getName())
+                .eqIfPresent(MerchantDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(MerchantDO::getDescription, reqVO.getDescription())
+                .eqIfPresent(MerchantDO::getAddress, reqVO.getAddress())
+                .eqIfPresent(MerchantDO::getContactNumber, reqVO.getContactNumber())
+                .eqIfPresent(MerchantDO::getWebsite, reqVO.getWebsite())
+                .eqIfPresent(MerchantDO::getComplaintsHotline, reqVO.getComplaintsHotline())
+                .eqIfPresent(MerchantDO::getCustomerServiceHotline, reqVO.getCustomerServiceHotline())
+                .eqIfPresent(MerchantDO::getEmail, reqVO.getEmail())
+                .eqIfPresent(MerchantDO::getBusinessLicensePicture, reqVO.getBusinessLicensePicture())
+                .betweenIfPresent(MerchantDO::getExpireTime, reqVO.getExpireTime())
+                .betweenIfPresent(MerchantDO::getCreateTime, reqVO.getCreateTime())
+                .eqIfPresent(MerchantDO::getLogoUrl, reqVO.getLogoUrl())
+                .eqIfPresent(MerchantDO::getContact, reqVO.getContact())
+
+                .eqIfPresent(MerchantDO::getPackageId, reqVO.getPackageId())
+                .eqIfPresent(MerchantDO::getShopCount, reqVO.getShopCount())
+                .eqIfPresent(MerchantDO::getAreaId, reqVO.getAreaId())
+                .orderByDesc(MerchantDO::getId));
+    }
+
+}

+ 2 - 9
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/mysql/shop/ShopMapper.java

@@ -1,27 +1,20 @@
 package cn.newfeifan.mall.module.sale.dal.mysql.shop;
 
-import java.util.*;
-
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
-import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
+import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.newfeifan.mall.module.sale.controller.admin.shop.vo.ShopPageReqVO;
 import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
 import org.apache.ibatis.annotations.Mapper;
-import cn.newfeifan.mall.module.sale.controller.admin.shop.vo.*;
 
 /**
  * 店铺 Mapper
  *
  * @author 非繁人
- * add by Ben 20240315
  */
 @Mapper
 public interface ShopMapper extends BaseMapperX<ShopDO> {
 
-    default List<ShopDO> selectListById(Collection<Long> shopIds) {
-        return selectList(ShopDO::getId, shopIds);
-    }
-
     default PageResult<ShopDO> selectPage(ShopPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<ShopDO>()
                 .likeIfPresent(ShopDO::getName, reqVO.getName())

+ 25 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/dal/mysql/shopstatus/ShopStatusMapper.java

@@ -0,0 +1,25 @@
+package cn.newfeifan.mall.module.sale.dal.mysql.shopstatus;
+
+import cn.newfeifan.mall.framework.common.pojo.PageResult;
+import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
+import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.newfeifan.mall.module.sale.controller.admin.shopstatus.vo.ShopStatusPageReqVO;
+import cn.newfeifan.mall.module.sale.dal.dataobject.shopstatus.ShopStatusDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 店铺状态 Mapper
+ *
+ * @author 非繁人
+ */
+@Mapper
+public interface ShopStatusMapper extends BaseMapperX<ShopStatusDO> {
+
+    default PageResult<ShopStatusDO> selectPage(ShopStatusPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<ShopStatusDO>()
+                .likeIfPresent(ShopStatusDO::getName, reqVO.getName())
+                .betweenIfPresent(ShopStatusDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(ShopStatusDO::getId));
+    }
+
+}

+ 0 - 55
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/service/shop/ShopService.java

@@ -1,55 +0,0 @@
-package cn.newfeifan.mall.module.sale.service.shop;
-
-import java.util.*;
-import javax.validation.*;
-import cn.newfeifan.mall.module.sale.controller.admin.shop.vo.*;
-import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
-import cn.newfeifan.mall.framework.common.pojo.PageResult;
-import cn.newfeifan.mall.framework.common.pojo.PageParam;
-
-/**
- * 店铺 Service 接口
- *
- * @author 非繁人
- */
-public interface ShopService {
-
-    /**
-     * 创建店铺
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createShop(@Valid ShopSaveReqVO createReqVO);
-
-    /**
-     * 更新店铺
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateShop(@Valid ShopSaveReqVO updateReqVO);
-
-    /**
-     * 删除店铺
-     *
-     * @param id 编号
-     */
-    void deleteShop(Long id);
-
-    /**
-     * 获得店铺
-     *
-     * @param id 编号
-     * @return 店铺
-     */
-    ShopDO getShop(Long id);
-
-    /**
-     * 获得店铺分页
-     *
-     * @param pageReqVO 分页查询
-     * @return 店铺分页
-     */
-    PageResult<ShopDO> getShopPage(ShopPageReqVO pageReqVO);
-
-}

+ 0 - 75
feifan-module-mall/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/module/sale/service/shop/ShopServiceImpl.java

@@ -1,75 +0,0 @@
-package cn.newfeifan.mall.module.sale.service.shop;
-
-import cn.newfeifan.mall.module.sale.enums.ErrorCodeConstants;
-import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import cn.newfeifan.mall.module.sale.controller.admin.shop.vo.*;
-import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
-import cn.newfeifan.mall.framework.common.pojo.PageResult;
-import cn.newfeifan.mall.framework.common.pojo.PageParam;
-import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
-
-import cn.newfeifan.mall.module.sale.dal.mysql.shop.ShopMapper;
-
-import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.newfeifan.mall.module.sale.enums.ErrorCodeConstants.*;
-
-/**
- * 店铺 Service 实现类
- *
- * @author 非繁人
- */
-@Service
-@Validated
-public class ShopServiceImpl implements ShopService {
-
-    @Resource
-    private ShopMapper shopMapper;
-
-    @Override
-    public Long createShop(ShopSaveReqVO createReqVO) {
-        // 插入
-        ShopDO shop = BeanUtils.toBean(createReqVO, ShopDO.class);
-        shopMapper.insert(shop);
-        // 返回
-        return shop.getId();
-    }
-
-    @Override
-    public void updateShop(ShopSaveReqVO updateReqVO) {
-        // 校验存在
-        validateShopExists(updateReqVO.getId());
-        // 更新
-        ShopDO updateObj = BeanUtils.toBean(updateReqVO, ShopDO.class);
-        shopMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteShop(Long id) {
-        // 校验存在
-        validateShopExists(id);
-        // 删除
-        shopMapper.deleteById(id);
-    }
-
-    private void validateShopExists(Long id) {
-        if (shopMapper.selectById(id) == null) {
-            throw exception(ErrorCodeConstants.SHOP_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public ShopDO getShop(Long id) {
-        return shopMapper.selectById(id);
-    }
-
-    @Override
-    public PageResult<ShopDO> getShopPage(ShopPageReqVO pageReqVO) {
-        return shopMapper.selectPage(pageReqVO);
-    }
-
-}

+ 12 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/resources/mapper/merchant/MerchantMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.newfeifan.mall.sale.dal.mysql.merchant.MerchantMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.zhongxing.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 1 - 1
feifan-module-mall/feifan-module-sale-biz/src/main/resources/mapper/shop/ShopMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.newfeifan.mall.module.sale.dal.mysql.shop.ShopMapper">
+<mapper namespace="cn.newfeifan.mall.sale.dal.mysql.shop.ShopMapper">
 
     <!--
         一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。

+ 12 - 0
feifan-module-mall/feifan-module-sale-biz/src/main/resources/mapper/shopstatus/ShopStatusMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.newfeifan.mall.sale.dal.mysql.shopstatus.ShopStatusMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.zhongxing.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 0 - 146
feifan-module-mall/feifan-module-sale-biz/src/test/java/cn/newfeifan/mall/module/sale/service/shop/ShopServiceImplTest.java

@@ -1,146 +0,0 @@
-package cn.newfeifan.mall.module.sale.service.shop;
-
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.mock.mockito.MockBean;
-
-import javax.annotation.Resource;
-
-import cn.newfeifan.mall.framework.test.core.ut.BaseDbUnitTest;
-
-import cn.newfeifan.mall.module.sale.controller.admin.shop.vo.*;
-import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
-import cn.newfeifan.mall.module.sale.dal.mysql.shop.ShopMapper;
-import cn.newfeifan.mall.framework.common.pojo.PageResult;
-
-import javax.annotation.Resource;
-import org.springframework.context.annotation.Import;
-import java.util.*;
-import java.time.LocalDateTime;
-
-import static cn.hutool.core.util.RandomUtil.*;
-import static cn.newfeifan.mall.module.sale.enums.ErrorCodeConstants.*;
-import static cn.newfeifan.mall.framework.test.core.util.AssertUtils.*;
-import static cn.newfeifan.mall.framework.test.core.util.RandomUtils.*;
-import static cn.newfeifan.mall.framework.common.util.date.LocalDateTimeUtils.*;
-import static cn.newfeifan.mall.framework.common.util.object.ObjectUtils.*;
-import static cn.newfeifan.mall.framework.common.util.date.DateUtils.*;
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-/**
- * {@link ShopServiceImpl} 的单元测试类
- *
- * @author 非繁人
- */
-@Import(ShopServiceImpl.class)
-public class ShopServiceImplTest extends BaseDbUnitTest {
-
-    @Resource
-    private ShopServiceImpl shopService;
-
-    @Resource
-    private ShopMapper shopMapper;
-
-    @Test
-    public void testCreateShop_success() {
-        // 准备参数
-        ShopSaveReqVO createReqVO = randomPojo(ShopSaveReqVO.class).setId(null);
-
-        // 调用
-        Long shopId = shopService.createShop(createReqVO);
-        // 断言
-        assertNotNull(shopId);
-        // 校验记录的属性是否正确
-        ShopDO shop = shopMapper.selectById(shopId);
-        assertPojoEquals(createReqVO, shop, "id");
-    }
-
-    @Test
-    public void testUpdateShop_success() {
-        // mock 数据
-        ShopDO dbShop = randomPojo(ShopDO.class);
-        shopMapper.insert(dbShop);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        ShopSaveReqVO updateReqVO = randomPojo(ShopSaveReqVO.class, o -> {
-            o.setId(dbShop.getId()); // 设置更新的 ID
-        });
-
-        // 调用
-        shopService.updateShop(updateReqVO);
-        // 校验是否更新正确
-        ShopDO shop = shopMapper.selectById(updateReqVO.getId()); // 获取最新的
-        assertPojoEquals(updateReqVO, shop);
-    }
-
-    @Test
-    public void testUpdateShop_notExists() {
-        // 准备参数
-        ShopSaveReqVO updateReqVO = randomPojo(ShopSaveReqVO.class);
-
-        // 调用, 并断言异常
-        assertServiceException(() -> shopService.updateShop(updateReqVO), SHOP_NOT_EXISTS);
-    }
-
-    @Test
-    public void testDeleteShop_success() {
-        // mock 数据
-        ShopDO dbShop = randomPojo(ShopDO.class);
-        shopMapper.insert(dbShop);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        Long id = dbShop.getId();
-
-        // 调用
-        shopService.deleteShop(id);
-       // 校验数据不存在了
-       assertNull(shopMapper.selectById(id));
-    }
-
-    @Test
-    public void testDeleteShop_notExists() {
-        // 准备参数
-        Long id = randomLongId();
-
-        // 调用, 并断言异常
-        assertServiceException(() -> shopService.deleteShop(id), SHOP_NOT_EXISTS);
-    }
-
-    @Test
-    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
-    public void testGetShopPage() {
-       // mock 数据
-       ShopDO dbShop = randomPojo(ShopDO.class, o -> { // 等会查询到
-           o.setName(null);
-           o.setStatus(null);
-           o.setMerchantId(null);
-           o.setCreateTime(null);
-           o.setLogoUrl(null);
-       });
-       shopMapper.insert(dbShop);
-       // 测试 name 不匹配
-       shopMapper.insert(cloneIgnoreId(dbShop, o -> o.setName(null)));
-       // 测试 status 不匹配
-       shopMapper.insert(cloneIgnoreId(dbShop, o -> o.setStatus(null)));
-       // 测试 merchantId 不匹配
-       shopMapper.insert(cloneIgnoreId(dbShop, o -> o.setMerchantId(null)));
-       // 测试 createTime 不匹配
-       shopMapper.insert(cloneIgnoreId(dbShop, o -> o.setCreateTime(null)));
-       // 测试 logoUrl 不匹配
-       shopMapper.insert(cloneIgnoreId(dbShop, o -> o.setLogoUrl(null)));
-       // 准备参数
-       ShopPageReqVO reqVO = new ShopPageReqVO();
-       reqVO.setName(null);
-       reqVO.setStatus(null);
-       reqVO.setMerchantId(null);
-       reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
-       reqVO.setLogoUrl(null);
-
-       // 调用
-       PageResult<ShopDO> pageResult = shopService.getShopPage(reqVO);
-       // 断言
-       assertEquals(1, pageResult.getTotal());
-       assertEquals(1, pageResult.getList().size());
-       assertPojoEquals(dbShop, pageResult.getList().get(0));
-    }
-
-}

+ 2 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -53,6 +53,7 @@ import cn.newfeifan.mall.module.trade.service.price.TradePriceService;
 import cn.newfeifan.mall.module.trade.service.price.bo.TradePriceCalculateReqBO;
 import cn.newfeifan.mall.module.trade.service.price.bo.TradePriceCalculateRespBO;
 import cn.newfeifan.mall.module.trade.service.price.calculator.TradePriceCalculatorHelper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.ehcache.shadow.org.terracotta.offheapstore.HashingMap;
 import org.jetbrains.annotations.NotNull;
@@ -162,7 +163,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         for (Long shopid : shopSkuIds.keySet()) {
             shopIds.add(shopid);
         }
-        List<ShopDO> shopDOList = shopMapper.selectListById(shopIds);
+        List<ShopDO> shopDOList = shopMapper.selectList(new LambdaQueryWrapper<ShopDO>().eq(ShopDO::getId,shopIds));
         Map<Long, String> shopNameMap = new HashMap<Long, String>();//key为店铺id,value为店铺名
         for (ShopDO shopDO : shopDOList) {
             shopNameMap.put(shopDO.getId(), shopDO.getName());