Browse Source

增加商户用户的过滤条件, 在创建商户的时候, 创建一个默认的店铺

gaohp 11 months ago
parent
commit
0729ae562d
31 changed files with 172 additions and 65 deletions
  1. 4 0
      feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java
  2. 2 1
      feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/dal/mysql/spu/ProductSpuMapper.java
  3. 3 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java
  4. 8 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java
  5. 32 31
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/dataobject/order/TradeOrderDO.java
  6. 7 2
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/order/TradeOrderMapper.java
  7. 3 9
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/MerchantController.java
  8. 5 1
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/vo/MerchantPageReqVO.java
  9. 5 1
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/vo/MerchantRespVO.java
  10. 8 1
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/vo/MerchantSaveReqVO.java
  11. 8 0
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/shop/vo/ShopSaveReqVO.java
  12. 6 0
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/dal/dataobject/shop/ShopDO.java
  13. 10 2
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/merchant/MerchantServiceImpl.java
  14. 11 0
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/shop/ShopService.java
  15. 13 0
      feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/shop/ShopServiceImpl.java
  16. 4 0
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java
  17. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuRespVO.java
  18. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java
  19. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java
  20. 3 0
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RolePageReqVO.java
  21. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleRespVO.java
  22. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java
  23. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java
  24. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java
  25. 4 0
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/user/vo/user/UserSaveReqVO.java
  26. 11 8
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/dataobject/permission/MenuDO.java
  27. 1 0
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/mysql/permission/MenuMapper.java
  28. 1 0
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/mysql/permission/RoleMapper.java
  29. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/user/AdminUserService.java
  30. 2 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/user/AdminUserServiceImpl.java
  31. 5 0
      sql/mysql/建空库SQL/1_20240227.sql

+ 4 - 0
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java

@@ -39,6 +39,10 @@ public class AppProductSpuPageReqVO extends PageParam {
     @Schema(description = "排序方式", example = "true")
     private Boolean sortAsc;
 
+    @Schema(description = "商户ID", example = "1")
+    private Long  merchantId;
+
+
     @AssertTrue(message = "排序字段不合法")
     @JsonIgnore
     public boolean isSortFieldValid() {

+ 2 - 1
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/dal/mysql/spu/ProductSpuMapper.java

@@ -28,8 +28,9 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
         Integer tabType = reqVO.getTabType();
         LambdaQueryWrapperX<ProductSpuDO> queryWrapper = new LambdaQueryWrapperX<ProductSpuDO>()
                 .likeIfPresent(ProductSpuDO::getName, reqVO.getName())
-                .eqIfPresent(ProductSpuDO::getShopId,reqVO.getShopId())
+                .eqIfPresent(ProductSpuDO::getShopId, reqVO.getShopId())
                 .eqIfPresent(ProductSpuDO::getCategoryId, reqVO.getCategoryId())
+                .eqIfPresent(ProductSpuDO::getMerchantId, reqVO.getMerchantId())
                 .betweenIfPresent(ProductSpuDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(ProductSpuDO::getSort);
         appendTabQuery(tabType, queryWrapper);

+ 3 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java

@@ -34,4 +34,7 @@ public class TradeOrderPageItemRespVO extends TradeOrderBaseVO {
 
     @Schema(description = "店铺id", example = "20588")
     private Long shopId;
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
+
 }

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java

@@ -63,4 +63,12 @@ public class TradeOrderPageReqVO extends PageParam {
 
     @Schema(description = "店铺id", example = "20588")
     private Long shopId;
+
+
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
+
+    @Schema(description = "商户ID", example = "1")
+    private Long  merchantId;
+
 }

+ 32 - 31
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/dataobject/order/TradeOrderDO.java

@@ -44,25 +44,25 @@ public class TradeOrderDO extends BaseDO {
     private Long id;
     /**
      * 订单流水号
-     *
+     * <p>
      * 例如说,1146347329394184195
      */
     private String no;
     /**
      * 订单类型
-     *
+     * <p>
      * 枚举 {@link TradeOrderTypeEnum}
      */
     private Integer type;
     /**
      * 订单来源
-     *
+     * <p>
      * 枚举 {@link TerminalEnum}
      */
     private Integer terminal;
     /**
      * 用户编号
-     *
+     * <p>
      * 关联 MemberUserDO 的 id 编号
      */
     private Long userId;
@@ -76,7 +76,7 @@ public class TradeOrderDO extends BaseDO {
     private String userRemark;
     /**
      * 订单状态
-     *
+     * <p>
      * 枚举 {@link TradeOrderStatusEnum}
      */
     private Integer status;
@@ -94,7 +94,7 @@ public class TradeOrderDO extends BaseDO {
     private LocalDateTime cancelTime;
     /**
      * 取消类型
-     *
+     * <p>
      * 枚举 {@link TradeOrderCancelTypeEnum}
      */
     private Integer cancelType;
@@ -104,7 +104,7 @@ public class TradeOrderDO extends BaseDO {
     private String remark;
     /**
      * 是否评价
-     *
+     * <p>
      * true - 已评价
      * false - 未评价
      */
@@ -112,7 +112,7 @@ public class TradeOrderDO extends BaseDO {
 
     /**
      * 推广人编号
-     *
+     * <p>
      * 关联 {@link BrokerageUserDO#getId()} 字段,即 {@link MemberUserRespDTO#getId()} 字段
      */
     private Long brokerageUserId;
@@ -125,13 +125,13 @@ public class TradeOrderDO extends BaseDO {
 
     /**
      * 支付订单编号
-     *
+     * <p>
      * 对接 pay-module-biz 支付服务的支付订单编号,即 PayOrderDO 的 id 编号
      */
     private Long payOrderId;
     /**
      * 是否已支付
-     *
+     * <p>
      * true - 已经支付过
      * false - 没有支付过
      */
@@ -142,22 +142,22 @@ public class TradeOrderDO extends BaseDO {
     private LocalDateTime payTime;
     /**
      * 支付渠道
-     *
+     * <p>
      * 对应 PayChannelEnum 枚举
      */
     private String payChannelCode;
 
     /**
      * 商品原价,单位:分
-     *
+     * <p>
      * totalPrice = {@link TradeOrderItemDO#getPrice()} * {@link TradeOrderItemDO#getCount()} 求和
-     *
+     * <p>
      * 对应 taobao 的 trade.total_fee 字段
      */
     private Integer totalPrice;
     /**
      * 优惠金额,单位:分
-     *
+     * <p>
      * 对应 taobao 的 order.discount_fee 字段
      */
     private Integer discountPrice;
@@ -167,13 +167,13 @@ public class TradeOrderDO extends BaseDO {
     private Integer deliveryPrice;
     /**
      * 订单调价,单位:分
-     *
+     * <p>
      * 正数,加价;负数,减价
      */
     private Integer adjustPrice;
     /**
      * 应付金额(总),单位:分
-     *
+     * <p>
      * = {@link #totalPrice}
      * - {@link #couponPrice}
      * - {@link #pointPrice}
@@ -187,21 +187,21 @@ public class TradeOrderDO extends BaseDO {
     // ========== 收件 + 物流基本信息 ==========
     /**
      * 配送方式
-     *
+     * <p>
      * 枚举 {@link DeliveryTypeEnum}
      */
     private Integer deliveryType;
     /**
      * 发货物流公司编号
-     *
+     * <p>
      * 如果无需发货,则 logisticsId 设置为 0。原因是,不想再添加额外字段
-     *
+     * <p>
      * 关联 {@link DeliveryExpressDO#getId()}
      */
     private Long logisticsId;
     /**
      * 发货物流单号
-     *
+     * <p>
      * 如果无需发货,则 logisticsNo 设置 ""。原因是,不想再添加额外字段
      */
     private String logisticsNo;
@@ -233,7 +233,7 @@ public class TradeOrderDO extends BaseDO {
 
     /**
      * 自提门店编号
-     *
+     * <p>
      * 关联 {@link DeliveryPickUpStoreDO#getId()}
      */
     private Long pickUpStoreId;
@@ -245,13 +245,13 @@ public class TradeOrderDO extends BaseDO {
     // ========== 售后基本信息 ==========
     /**
      * 售后状态
-     *
+     * <p>
      * 枚举 {@link TradeOrderRefundStatusEnum}
      */
     private Integer refundStatus;
     /**
      * 退款金额,单位:分
-     *
+     * <p>
      * 注意,退款并不会影响 {@link #payPrice} 实际支付金额
      * 也就说,一个订单最终产生多少金额的收入 = payPrice - refundPrice
      */
@@ -264,7 +264,7 @@ public class TradeOrderDO extends BaseDO {
     private Long couponId;
     /**
      * 优惠劵减免金额,单位:分
-     *
+     * <p>
      * 对应 taobao 的 trade.coupon_fee 字段
      */
     private Integer couponPrice;
@@ -274,7 +274,7 @@ public class TradeOrderDO extends BaseDO {
     private Integer usePoint;
     /**
      * 积分抵扣的金额,单位:分
-     *
+     * <p>
      * 对应 taobao 的 trade.point_fee 字段
      */
     private Integer pointPrice;
@@ -293,39 +293,39 @@ public class TradeOrderDO extends BaseDO {
 
     /**
      * 秒杀活动编号
-     *
+     * <p>
      * 关联 SeckillActivityDO 的 id 字段
      */
     private Long seckillActivityId;
 
     /**
      * 砍价活动编号
-     *
+     * <p>
      * 关联 BargainActivityDO 的 id 字段
      */
     private Long bargainActivityId;
     /**
      * 砍价记录编号
-     *
+     * <p>
      * 关联 BargainRecordDO 的 id 字段
      */
     private Long bargainRecordId;
 
     /**
      * 拼团活动编号
-     *
+     * <p>
      * 关联 CombinationActivityDO 的 id 字段
      */
     private Long combinationActivityId;
     /**
      * 拼团团长编号
-     *
+     * <p>
      * 关联 CombinationRecordDO 的 headId 字段
      */
     private Long combinationHeadId;
     /**
      * 拼团记录编号
-     *
+     * <p>
      * 关联 CombinationRecordDO 的 id 字段
      */
     private Long combinationRecordId;
@@ -333,4 +333,5 @@ public class TradeOrderDO extends BaseDO {
 
     private Long shopId;
 
+    private Long merchantId;
 }

+ 7 - 2
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -38,6 +38,8 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
                 .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
                 .eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal())
                 .eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId())
+                .eqIfPresent(TradeOrderDO::getMerchantId, reqVO.getMerchantId())
+
                 .inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
                 .likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
                 .betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())
@@ -79,10 +81,13 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
                 .eqIfPresent(TradeOrderDO::getStatus, status)
                 .eqIfPresent(TradeOrderDO::getCommentStatus, commentStatus));
     }
-    default Long selectCountByStatus(Integer status){
+
+    default Long selectCountByStatus(Integer status) {
         return selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
                 .eqIfPresent(TradeOrderDO::getStatus, status));
-    };
+    }
+
+    ;
 
     default TradeOrderDO selectOrderByIdAndUserId(Long orderId, Long loginUserId) {
         return selectOne(new LambdaQueryWrapperX<TradeOrderDO>()

+ 3 - 9
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/controller/admin/merchant/MerchantController.java

@@ -1,9 +1,5 @@
 package cn.newfeifan.mall.sale.controller.admin.merchant;
 
-import cn.hutool.core.util.ObjectUtil;
-import cn.newfeifan.mall.framework.common.enums.UserTypeEnum;
-import cn.newfeifan.mall.framework.security.core.LoginUser;
-import cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils;
 import cn.newfeifan.mall.module.system.service.user.AdminUserService;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantPageReqVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantRespVO;
@@ -31,8 +27,6 @@ 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.exception.enums.GlobalErrorCodeConstants.FORBIDDEN;
-import static cn.newfeifan.mall.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED;
 import static cn.newfeifan.mall.framework.common.pojo.CommonResult.error;
 import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 
@@ -61,13 +55,13 @@ public class MerchantController {
         return success(merchantService.createMerchant(createReqVO));
     }
 
-    @PostMapping("/createByMobile")
+    /*@PostMapping("/createByMobile")
     @Operation(summary = "通过手机号创建一个用户")
     @PreAuthorize("@ss.hasPermission('sale:merchant:create')")
     public CommonResult<String> createByMobile(@RequestBody MerchantSaveReqByMobileVO createReqVO) {
-        adminUserService.createUserByMobile(createReqVO.getContactNumber(), createReqVO.getContact());
+        adminUserService.createUserByMobile(merchant.getId(), createReqVO.getContactNumber(), createReqVO.getContact());
         return success("创建成功");
-    }
+    }*/
 
 
     @PutMapping("/update")

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

@@ -1,5 +1,6 @@
 package cn.newfeifan.mall.sale.controller.admin.merchant.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.*;
 import java.util.*;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -33,9 +34,12 @@ public class MerchantPageReqVO extends PageParam {
     @Schema(description = "负责人电话")
     private String contactNumber;
 
-    @Schema(description = "官网")
+    @Schema(description = "域名")
     private String website;
 
+    @Schema(description = "官网")
+    private String businessUrl;
+
     @Schema(description = "维权电话")
     private String complaintsHotline;
 

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

@@ -41,9 +41,13 @@ public class MerchantRespVO {
     @ExcelProperty("负责人电话")
     private String contactNumber;
 
+    @Schema(description = "域名")
+    @ExcelProperty("域名")
+    private String website;
+
     @Schema(description = "官网")
     @ExcelProperty("官网")
-    private String website;
+    private String businessUrl;
 
     @Schema(description = "维权电话")
     @ExcelProperty("维权电话")

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

@@ -34,9 +34,12 @@ public class MerchantSaveReqVO {
     @Schema(description = "负责人电话")
     private String contactNumber;
 
-    @Schema(description = "官网")
+    @Schema(description = "域名")
     private String website;
 
+    @Schema(description = "官网")
+    private String businessUrl;
+
     @Schema(description = "维权电话")
     private String complaintsHotline;
 
@@ -69,4 +72,8 @@ public class MerchantSaveReqVO {
 
     @Schema(description = "区域id,对应文件系统 src/main/resources/area.csv 中的id一列", example = "22725")
     private Long areaId;
+
+
+
+
 }

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

@@ -2,11 +2,15 @@ package cn.newfeifan.mall.sale.controller.admin.shop.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
+
 import java.util.*;
 import javax.validation.constraints.*;
 
 @Schema(description = "管理后台 - 店铺新增/修改 Request VO")
 @Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class ShopSaveReqVO {
 
     @Schema(description = "店铺id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15084")
@@ -27,4 +31,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;
+
+
 }

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

@@ -1,9 +1,11 @@
 package cn.newfeifan.mall.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;
 
@@ -43,5 +45,9 @@ public class ShopDO extends BaseDO {
      * logo地址
      */
     private String logoUrl;
+    /**
+     * 域名
+     */
+    private String website;
 
 }

+ 10 - 2
feifan-module-sale/feifan-module-sale-biz/src/main/java/cn/newfeifan/mall/sale/service/merchant/MerchantServiceImpl.java

@@ -6,12 +6,15 @@ import cn.newfeifan.mall.module.system.dal.mysql.user.AdminUserMapper;
 import cn.newfeifan.mall.module.system.service.user.AdminUserService;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantPageReqVO;
 import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
+import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopSaveReqVO;
 import cn.newfeifan.mall.sale.dal.dataobject.merchant.MerchantDO;
 import cn.newfeifan.mall.sale.dal.mysql.merchant.MerchantMapper;
+import cn.newfeifan.mall.sale.service.shop.ShopService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
@@ -38,21 +41,26 @@ public class MerchantServiceImpl implements MerchantService {
     @Resource
     private AdminUserService adminUserService;
 
+    @Resource
+    private ShopService shopService;
+
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Long createMerchant(MerchantSaveReqVO createReqVO) {
         // 插入
         MerchantDO merchant = BeanUtils.toBean(createReqVO, MerchantDO.class);
         merchantMapper.insert(merchant);
 
+        // 创建一个店铺
+        shopService.createShop(merchant);
         // 创建商户的时候, 根据手机号, 创建一个新的账号
         // 如果这个手机号已经存在, 则提示该手机号已经存在
         AdminUserDO adminUserDO = userMapper.selectByMobile(merchant.getContactNumber());
         if (adminUserDO != null) {
             throw exception(USER_MOBILE_EXISTS);
         }
-        adminUserService.createUserByMobile(merchant.getContactNumber(), merchant.getContact());
+        adminUserService.createUserByMobile(merchant.getId(), merchant.getContactNumber(), merchant.getContact());
         // todo 设置直推人关联关系
-        // 返回
         return merchant.getId();
     }
 

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

@@ -3,8 +3,10 @@ package cn.newfeifan.mall.sale.service.shop;
 import javax.validation.*;
 
 import cn.newfeifan.mall.module.system.controller.admin.user.vo.user.UserRespVO;
+import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopRespVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopSaveReqVO;
+import cn.newfeifan.mall.sale.dal.dataobject.merchant.MerchantDO;
 import cn.newfeifan.mall.sale.dal.dataobject.shop.ShopDO;
 import cn.newfeifan.mall.framework.common.pojo.PageResult;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopPageReqVO;
@@ -26,6 +28,15 @@ public interface ShopService {
      */
     Long createShop(@Valid ShopSaveReqVO createReqVO);
 
+    /**
+     * 创建店铺
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createShop( MerchantDO createReqVO);
+
+
     /**
      * 更新店铺
      *

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

@@ -3,9 +3,11 @@ package cn.newfeifan.mall.sale.service.shop;
 import cn.newfeifan.mall.module.system.controller.admin.user.vo.user.UserRespVO;
 import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
 import cn.newfeifan.mall.module.system.service.user.AdminUserService;
+import cn.newfeifan.mall.sale.controller.admin.merchant.vo.MerchantSaveReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopPageReqVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopRespVO;
 import cn.newfeifan.mall.sale.controller.admin.shop.vo.ShopSaveReqVO;
+import cn.newfeifan.mall.sale.dal.dataobject.merchant.MerchantDO;
 import cn.newfeifan.mall.sale.dal.mysql.shop.ShopMapper;
 import org.springframework.stereotype.Service;
 
@@ -44,6 +46,17 @@ public class ShopServiceImpl implements ShopService {
         return shop.getId();
     }
 
+    @Override
+    public Long createShop(MerchantDO createReqVO) {
+        ShopSaveReqVO build = ShopSaveReqVO.builder()
+                .logoUrl("")
+                .status(1)
+                .website(createReqVO.getWebsite())
+                .name(createReqVO.getName())
+                .merchantId(createReqVO.getId()).build();
+        return build.getId();
+    }
+
     @Override
     public void updateShop(ShopSaveReqVO updateReqVO) {
         // 校验存在

+ 4 - 0
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java

@@ -13,4 +13,8 @@ public class MenuListReqVO {
     @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
     private Integer status;
 
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
+
+
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuRespVO.java

@@ -68,5 +68,6 @@ public class MenuRespVO {
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
     private LocalDateTime createTime;
-
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java

@@ -61,5 +61,6 @@ public class MenuSaveVO {
 
     @Schema(description = "是否总是显示", example = "false")
     private Boolean alwaysShow;
-
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java

@@ -22,5 +22,6 @@ public class MenuSimpleRespVO {
 
     @Schema(description = "类型,参见 MenuTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Integer type;
-
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 3 - 0
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RolePageReqVO.java

@@ -28,4 +28,7 @@ public class RolePageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
+
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleRespVO.java

@@ -53,5 +53,6 @@ public class RoleRespVO {
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
     private LocalDateTime createTime;
-
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java

@@ -30,5 +30,6 @@ public class RoleSaveReqVO {
 
     @Schema(description = "备注", example = "我是一个角色")
     private String remark;
-
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java

@@ -14,5 +14,6 @@ public class RoleSimpleRespVO {
 
     @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "非繁")
     private String name;
-
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java

@@ -19,5 +19,6 @@ public class RoleUpdateStatusReqVO {
     @NotNull(message = "状态不能为空")
     @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
     private Integer status;
-
+    @Schema(description = "用户类型", example = "1")
+    private Long categoryId;
 }

+ 4 - 0
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/user/vo/user/UserSaveReqVO.java

@@ -75,6 +75,10 @@ public class UserSaveReqVO {
     @Length(min = 4, max = 16, message = "密码长度为 4-16 位")
     private String password;
 
+    @Schema(description = "商户ID", example = "1")
+    private Long  merchantId;
+
+
     @AssertTrue(message = "密码不能为空")
     @JsonIgnore
     public boolean isPasswordValid() {

+ 11 - 8
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/dataobject/permission/MenuDO.java

@@ -36,10 +36,10 @@ public class MenuDO extends BaseDO {
     private String name;
     /**
      * 权限标识
-     *
+     * <p>
      * 一般格式为:${系统}:${模块}:${操作}
      * 例如说:system:admin:add,即 system 服务的添加管理员。
-     *
+     * <p>
      * 当我们把该 MenuDO 赋予给角色后,意味着该角色有该资源:
      * - 对于后端,配合 @PreAuthorize 注解,配置 API 接口需要该权限,从而对 API 接口进行权限控制。
      * - 对于前端,配合前端标签,配置按钮是否展示,避免用户没有该权限时,结果可以看到该操作。
@@ -47,7 +47,7 @@ public class MenuDO extends BaseDO {
     private String permission;
     /**
      * 菜单类型
-     *
+     * <p>
      * 枚举 {@link MenuTypeEnum}
      */
     private Integer type;
@@ -61,7 +61,7 @@ public class MenuDO extends BaseDO {
     private Long parentId;
     /**
      * 路由地址
-     *
+     * <p>
      * 如果 path 为 http(s) 时,则它是外链
      */
     private String path;
@@ -79,29 +79,32 @@ public class MenuDO extends BaseDO {
     private String componentName;
     /**
      * 状态
-     *
+     * <p>
      * 枚举 {@link CommonStatusEnum}
      */
     private Integer status;
     /**
      * 是否可见
-     *
+     * <p>
      * 只有菜单、目录使用
      * 当设置为 true 时,该菜单不会展示在侧边栏,但是路由还是存在。例如说,一些独立的编辑页面 /edit/1024 等等
      */
     private Boolean visible;
     /**
      * 是否缓存
-     *
+     * <p>
      * 只有菜单、目录使用,否使用 Vue 路由的 keep-alive 特性
      * 注意:如果开启缓存,则必须填写 {@link #componentName} 属性,否则无法缓存
      */
     private Boolean keepAlive;
     /**
      * 是否总是显示
-     *
+     * <p>
      * 如果为 false 时,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单
      */
     private Boolean alwaysShow;
 
+
+    private Long categoryId;
+
 }

+ 1 - 0
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/mysql/permission/MenuMapper.java

@@ -22,6 +22,7 @@ public interface MenuMapper extends BaseMapperX<MenuDO> {
     default List<MenuDO> selectList(MenuListReqVO reqVO) {
         return selectList(new LambdaQueryWrapperX<MenuDO>()
                 .likeIfPresent(MenuDO::getName, reqVO.getName())
+                .eqIfPresent(MenuDO::getCategoryId, reqVO.getCategoryId())
                 .eqIfPresent(MenuDO::getStatus, reqVO.getStatus()));
     }
 

+ 1 - 0
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/mysql/permission/RoleMapper.java

@@ -20,6 +20,7 @@ public interface RoleMapper extends BaseMapperX<RoleDO> {
                 .likeIfPresent(RoleDO::getName, reqVO.getName())
                 .likeIfPresent(RoleDO::getCode, reqVO.getCode())
                 .eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(RoleDO::getCategoryId, reqVO.getCategoryId())
                 .betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(RoleDO::getId));
     }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/user/AdminUserService.java

@@ -209,10 +209,11 @@ public interface AdminUserService {
     /**
      * 根据手机号创建用户
      *
+     * @param id
      * @param contactMobile
      * @param contactName
      */
-    void createUserByMobile(String contactMobile, String contactName);
+    void createUserByMobile(Long id, String contactMobile, String contactName);
 
 
 }

+ 2 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/user/AdminUserServiceImpl.java

@@ -478,7 +478,7 @@ public class AdminUserServiceImpl implements AdminUserService {
     }
 
     @Override
-    public void createUserByMobile(String contactMobile, String contactName) {
+    public void createUserByMobile(Long id, String contactMobile, String contactName) {
         Set<Long> roleIds = new HashSet<>();
 
         // 查询商户管理员的ID
@@ -496,6 +496,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                 .password("zxpt@" + contactMobile)
                 .categoryId(3L)
                 .roleIds(roleIds)
+                .merchantId(id)
                 .build();
         createUser(build);
     }

+ 5 - 0
sql/mysql/建空库SQL/1_20240227.sql

@@ -142,3 +142,8 @@ ALTER TABLE product_sku ADD COLUMN promotion_expenses_proportion int NULL COMMEN
 -- 扩展商户表,增加“区域”字段,对应页面是省、市、区 级联菜单
 ALTER TABLE `sale_merchant` ADD COLUMN `area_id` bigint NULL DEFAULT NULL COMMENT '区域id,对应文件系统 src/main/resources/area.csv 中的id一列';
 
+ALTER TABLE `sale_shop` ADD COLUMN `website` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '店铺域名' AFTER `deleted`;
+
+ALTER TABLE `sale_merchant` MODIFY COLUMN `website` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '域名' AFTER `contact_number`;
+
+ALTER TABLE `sale_merchant` ADD COLUMN `business_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '商户官网' AFTER `website`;