Browse Source

平台门店管理

FengChaoYu 1 week ago
parent
commit
6fa6ea307a

+ 50 - 0
src/main/java/com/gree/mall/contest/bean/store/PlatformStoreVO.java

@@ -0,0 +1,50 @@
+package com.gree.mall.contest.bean.store;
+
+import com.gree.mall.contest.annotation.ZfireField;
+import com.gree.mall.contest.enums.PlatformEnum;
+import com.gree.mall.contest.enums.StatusEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@ZfireField(tbName = "a")
+@Data
+public class PlatformStoreVO {
+    @ZfireField(hide = true)
+    @Schema(description = "id")
+    private String id;
+    @Schema(description = "门店编号")
+    private String storeCode;
+    @Schema(description = "门店名称")
+    private String storeName;
+    @Schema(description = "状态")
+    private StatusEnum status;
+    @Schema(description = "省")
+    private String province;
+    @Schema(description = "市")
+    private String city;
+    @Schema(description = "区")
+    private String area;
+    @Schema(description = "详细地址")
+    private String address;
+    @ZfireField(hide = true)
+    @Schema(description = "省id")
+    private String provinceId;
+    @ZfireField(hide = true)
+    @Schema(description = "市id")
+    private String cityId;
+    @ZfireField(hide = true)
+    @Schema(description = "区id")
+    private String areaId;
+    @Schema(description = "门店所属平台")
+    private PlatformEnum type;
+    @Schema(description = "创建时间")
+    private Date createTime;
+    @Schema(description = "创建人")
+    private String createBy;
+    @Schema(description = "修改人")
+    private String updateBy;
+    @Schema(description = "修改时间")
+    private Date updateTime;
+}

+ 14 - 2
src/main/java/com/gree/mall/contest/commonmapper/CommonMapper.java

@@ -11,6 +11,7 @@ import com.gree.mall.contest.bean.manage.UserTopPopVO;
 import com.gree.mall.contest.bean.merchant.MerchantRegionVO;
 import com.gree.mall.contest.bean.merchant.MerchantVO;
 import com.gree.mall.contest.bean.merchant.WebsitApplyVO;
+import com.gree.mall.contest.bean.store.PlatformStoreVO;
 import com.gree.mall.contest.bean.zfire.ZfireParamBean;
 import com.gree.mall.contest.plus.entity.UserTopPop;
 import org.apache.ibatis.annotations.Mapper;
@@ -79,6 +80,7 @@ public interface CommonMapper {
 
     /**
      * 商家列表
+     *
      * @param page
      * @param zfireParamBean
      * @return
@@ -86,10 +88,20 @@ public interface CommonMapper {
     IPage<MerchantVO> MerchantPage(Page page, @Param("ex") ZfireParamBean zfireParamBean, @Param("serviceProviderId") String serivceProviderId);
 
     /**
-     * 服务商服务街道列表
+     * 商家服务街道列表
+     *
+     * @param page
+     * @param zfireParamBean
+     * @return
+     */
+    IPage<MerchantRegionVO> listMerchantRegion(Page page, @Param("ex") ZfireParamBean zfireParamBean, @Param("serviceProviderId") String serivceProviderId);
+
+    /**
+     * 平台门店列表
+     *
      * @param page
      * @param zfireParamBean
      * @return
      */
-    IPage<MerchantRegionVO> listMerchantRegion(Page page,@Param("ex") ZfireParamBean zfireParamBean,@Param("serviceProviderId") String serivceProviderId);
+    IPage<PlatformStoreVO> platformStorePage(Page page, @Param("ex") ZfireParamBean zfireParamBean);
 }

+ 82 - 0
src/main/java/com/gree/mall/contest/controller/pc/store/PlatformStoreController.java

@@ -0,0 +1,82 @@
+package com.gree.mall.contest.controller.pc.store;
+
+import cn.hutool.core.lang.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.contest.annotation.ZfireList;
+import com.gree.mall.contest.bean.merchant.MerchantAddBean;
+import com.gree.mall.contest.bean.merchant.MerchantBean;
+import com.gree.mall.contest.bean.store.PlatformStoreVO;
+import com.gree.mall.contest.bean.zfire.ZfireParamBean;
+import com.gree.mall.contest.helper.ResponseHelper;
+import com.gree.mall.contest.logic.store.PlatformStoreLogic;
+import com.gree.mall.contest.plus.entity.PlatformStore;
+import com.gree.mall.contest.utils.zfire.FieldUtils;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Slf4j
+@RestController
+@Tag(name = "平台门店管理", description = "平台门店管理")
+@RequestMapping(value = "/pc/platform/store", produces = "application/json; charset=utf-8")
+@RequiredArgsConstructor
+public class PlatformStoreController {
+
+    private final PlatformStoreLogic platformStoreLogic;
+
+    @ZfireList
+    @PostMapping("/list")
+    @Operation(summary = "列表")
+    public ResponseHelper<IPage<PlatformStoreVO>> list(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) {
+        IPage<PlatformStoreVO> page = platformStoreLogic.list(zfireParamBean);
+        return ResponseHelper.success(page, new TypeReference<PlatformStoreVO>() {});
+    }
+
+    @PostMapping("/list/export")
+    @Operation(summary = "导出")
+    public void listExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //2.查询要导出的内容
+        IPage<PlatformStoreVO> baseVOIPage = platformStoreLogic.list(zfireParamBean);
+        //3.导出
+        FieldUtils.exportData(baseVOIPage.getRecords(), zfireParamBean.getExportFields(), request, response);
+    }
+
+    @PostMapping("/detail")
+    @Operation(summary = "详情")
+    public ResponseHelper<PlatformStore> detail(
+            @RequestParam String id
+    ) {
+        PlatformStore detail = platformStoreLogic.detail(id);
+        return ResponseHelper.success(detail);
+    }
+
+    @PostMapping("/add")
+    @Operation(summary = "新增")
+    public ResponseHelper add(
+            @RequestBody PlatformStore platformStore
+    ) {
+        platformStoreLogic.add(platformStore);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/update")
+    @Operation(summary = "修改")
+    public ResponseHelper update(
+            @RequestBody PlatformStore platformStore
+    ) {
+        platformStoreLogic.update(platformStore);
+        return ResponseHelper.success();
+    }
+}

+ 24 - 0
src/main/java/com/gree/mall/contest/enums/PlatformEnum.java

@@ -0,0 +1,24 @@
+package com.gree.mall.contest.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.gree.mall.contest.enums.base.BaseEnum;
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+@Getter
+@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
+public enum PlatformEnum implements BaseEnum {
+    JD("JD", "京东"),
+    TM("TM", "天猫"),
+    PDD("PDD", "拼多多"),
+    MALL("MALL", "自营商城"),
+    ;
+
+    @EnumValue
+    @JsonValue
+    private final String key;
+    private final String remark;
+
+}

+ 28 - 26
src/main/java/com/gree/mall/contest/logic/merchant/MerchantLogic.java

@@ -155,11 +155,12 @@ public class MerchantLogic {
 
     /**
      * 商家保存
+     *
      * @param merchantAddBean
      */
     @Transactional
     public MerchantBean add(MerchantAddBean merchantAddBean) {
-        if(StringUtils.isBlank(merchantAddBean.getNumber())){
+        if (StringUtils.isBlank(merchantAddBean.getNumber())) {
             throw new RemoteServiceException("商家编号必填");
         }
 
@@ -169,14 +170,14 @@ public class MerchantLogic {
 
         //判断是否存在
         Merchant old = merchantService.getById(merchantAddBean.getNumber());
-        if(old != null){
-            throw new RemoteServiceException("编号【"+old.getId()+"】已存在");
+        if (old != null) {
+            throw new RemoteServiceException("编号【" + old.getId() + "】已存在");
         }
         merchantAddBean.setId(merchantAddBean.getNumber());
         merchantAddBean.insert();
         //角色
         AdminRole adminRole = adminRoleService.getById(Constant.SERVICE_PROVIDER.ROLE_ID);
-        if(adminRole == null){
+        if (adminRole == null) {
             throw new RemoteServiceException("请先配置服务商角色");
         }
         //判断负责人手机号是否存在
@@ -212,12 +213,13 @@ public class MerchantLogic {
 
     /**
      * 商家详情
+     *
      * @return
      */
-    public MerchantBean merchantDetail(String id){
+    public MerchantBean merchantDetail(String id) {
         Merchant merchant = merchantService.getById(id);
         MerchantBean serviceProviderBean = BeanUtil.copyProperties(merchant, MerchantBean.class);
-        
+
         return serviceProviderBean;
     }
 
@@ -225,7 +227,7 @@ public class MerchantLogic {
         //旧服务商
         Merchant old = merchantService.getById(serviceProvider.getId());
         //判断是否从有效变为无效
-        if(old.getStatus() == 1 && serviceProvider.getStatus() == 0){
+        if (old.getStatus() == 1 && serviceProvider.getStatus() == 0) {
 //            Integer count1 = orderBaseService.lambdaQuery()
 //                    .notIn(OrderBase::getOrderStatus, OrderBaseStatusEnum.isOver())
 //                    .eq(OrderBase::getWebsitId, serviceProvider.getId()).count();
@@ -241,7 +243,7 @@ public class MerchantLogic {
         AdminUser adminUser = adminUserService.lambdaQuery()
                 .eq(AdminUser::getServiceProviderId, serviceProvider.getId())
                 .eq(AdminUser::getType, RoleTypeEnum.B.getCode()).one();
-        if(adminUser != null) {
+        if (adminUser != null) {
             adminUser.setLinkName(serviceProvider.getChargeName());
             adminUser.setLinkPhone(serviceProvider.getChargeMobile());
             adminUser.setAddress(serviceProvider.getAddress());
@@ -254,23 +256,23 @@ public class MerchantLogic {
         MerchantStatusEnum newStatusEnum = BaseEnum.intKeyToEnum(MerchantStatusEnum.class, serviceProvider.getStatus());
 
         StringBuffer sbLog = new StringBuffer();
-        sbLog.append(CommonUtils.supplyLog("状态",oldStatusEnum.getRemark(),newStatusEnum.getRemark()));
-        sbLog.append(CommonUtils.supplyLog("服务商名称",old.getName(),serviceProvider.getName()));
-        sbLog.append(CommonUtils.supplyLog("负责人",old.getChargeName(),serviceProvider.getChargeName()));
-        sbLog.append(CommonUtils.supplyLog("负责人电话",old.getChargeMobile(),serviceProvider.getChargeMobile()));
-        sbLog.append(CommonUtils.supplyLog("办公电话",old.getOfficeMobile(),serviceProvider.getOfficeMobile()));
-        sbLog.append(CommonUtils.supplyLog("税号",old.getTaxNo(),serviceProvider.getTaxNo()));
-        sbLog.append(CommonUtils.supplyLog("是否独立法人",old.getIsLegal(),serviceProvider.getIsLegal()));
-        sbLog.append(CommonUtils.supplyLog("法人代表",old.getLegalName(),serviceProvider.getLegalName()));
-        sbLog.append(CommonUtils.supplyLog("法人身份证号",old.getLegalIdcard(),serviceProvider.getLegalIdcard()));
-        sbLog.append(CommonUtils.supplyLog("法人手机号",old.getLegalMobile(),serviceProvider.getLegalMobile()));
-        sbLog.append(CommonUtils.supplyLog("详细地址",old.getAddress(),serviceProvider.getAddress()));
-        sbLog.append(CommonUtils.supplyLog("营业时间开始",old.getStartTime(),serviceProvider.getStartTime()));
-        sbLog.append(CommonUtils.supplyLog("营业时间结束",old.getEndTime(),serviceProvider.getEndTime()));
-        sbLog.append(CommonUtils.supplyLog("银行账号",old.getBankAccount(),serviceProvider.getBankAccount()));
-        sbLog.append(CommonUtils.supplyLog("开户行号",old.getBankNo(),serviceProvider.getBankNo()));
-        sbLog.append(CommonUtils.supplyLog("开户银行",old.getBank(),serviceProvider.getBank()));
-        if(StringUtils.isNotBlank(sbLog.toString())) {
+        sbLog.append(CommonUtils.supplyLog("状态", oldStatusEnum.getRemark(), newStatusEnum.getRemark()));
+        sbLog.append(CommonUtils.supplyLog("服务商名称", old.getName(), serviceProvider.getName()));
+        sbLog.append(CommonUtils.supplyLog("负责人", old.getChargeName(), serviceProvider.getChargeName()));
+        sbLog.append(CommonUtils.supplyLog("负责人电话", old.getChargeMobile(), serviceProvider.getChargeMobile()));
+        sbLog.append(CommonUtils.supplyLog("办公电话", old.getOfficeMobile(), serviceProvider.getOfficeMobile()));
+        sbLog.append(CommonUtils.supplyLog("税号", old.getTaxNo(), serviceProvider.getTaxNo()));
+        sbLog.append(CommonUtils.supplyLog("是否独立法人", old.getIsLegal(), serviceProvider.getIsLegal()));
+        sbLog.append(CommonUtils.supplyLog("法人代表", old.getLegalName(), serviceProvider.getLegalName()));
+        sbLog.append(CommonUtils.supplyLog("法人身份证号", old.getLegalIdcard(), serviceProvider.getLegalIdcard()));
+        sbLog.append(CommonUtils.supplyLog("法人手机号", old.getLegalMobile(), serviceProvider.getLegalMobile()));
+        sbLog.append(CommonUtils.supplyLog("详细地址", old.getAddress(), serviceProvider.getAddress()));
+        sbLog.append(CommonUtils.supplyLog("营业时间开始", old.getStartTime(), serviceProvider.getStartTime()));
+        sbLog.append(CommonUtils.supplyLog("营业时间结束", old.getEndTime(), serviceProvider.getEndTime()));
+        sbLog.append(CommonUtils.supplyLog("银行账号", old.getBankAccount(), serviceProvider.getBankAccount()));
+        sbLog.append(CommonUtils.supplyLog("开户行号", old.getBankNo(), serviceProvider.getBankNo()));
+        sbLog.append(CommonUtils.supplyLog("开户银行", old.getBank(), serviceProvider.getBank()));
+        if (StringUtils.isNotBlank(sbLog.toString())) {
             commonLogic.addUpdateLog(serviceProvider.getId(), sbLog.toString(), UpdateLogRemarkEnum.A);
         }
     }
@@ -278,7 +280,7 @@ public class MerchantLogic {
     /**
      * 删除商家
      */
-    public void delete(String id){
+    public void delete(String id) {
         merchantService.removeById(id);
     }
 }

+ 73 - 0
src/main/java/com/gree/mall/contest/logic/store/PlatformStoreLogic.java

@@ -0,0 +1,73 @@
+package com.gree.mall.contest.logic.store;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.contest.bean.admin.AdminUserCom;
+import com.gree.mall.contest.bean.store.PlatformStoreVO;
+import com.gree.mall.contest.bean.zfire.ZfireParamBean;
+import com.gree.mall.contest.commonmapper.CommonMapper;
+import com.gree.mall.contest.exception.RemoteServiceException;
+import com.gree.mall.contest.logic.common.CommonLogic;
+import com.gree.mall.contest.plus.entity.PlatformStore;
+import com.gree.mall.contest.plus.service.PlatformStoreService;
+import com.gree.mall.contest.utils.zfire.FieldUtils;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class PlatformStoreLogic {
+
+    private final CommonMapper commonMapper;
+    private final CommonLogic commonLogic;
+    private final PlatformStoreService platformStoreService;
+
+    public IPage<PlatformStoreVO> list(ZfireParamBean zfireParamBean) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        zfireParamBean = FieldUtils.supplyParam(zfireParamBean, PlatformStoreVO.class);
+        IPage<PlatformStoreVO> page = commonMapper.platformStorePage(zfireParamBean.page(), zfireParamBean);
+        return page;
+    }
+
+    public PlatformStore detail(String id) {
+        final PlatformStore platformStore = platformStoreService.getById(id);
+        return platformStore;
+    }
+
+    public void add(PlatformStore platformStore) {
+        checkParams(platformStore);
+
+        //判断是否存在
+        PlatformStore old = platformStoreService.getById(platformStore.getStoreCode());
+        if (old != null) {
+            throw new RemoteServiceException("编号【" + old.getId() + "】已存在");
+        }
+
+        platformStore.insert();
+    }
+
+    public void update(PlatformStore platformStore) {
+        checkParams(platformStore);
+
+        //编号不能改
+        platformStore.setStoreCode(null);
+        //门店所属平台不能改
+        platformStore.setType(null);
+        platformStore.updateById();
+
+    }
+
+    private void checkParams(PlatformStore platformStore) {
+        if (StringUtils.isBlank(platformStore.getStoreCode())) {
+            throw new RemoteServiceException("商家编号必填");
+        }
+        if (StringUtils.isBlank(platformStore.getStoreName())) {
+            throw new RemoteServiceException("商家名称必填");
+        }
+        if (StringUtils.isBlank(platformStore.getType())) {
+            throw new RemoteServiceException("门店所属平台必选");
+        }
+    }
+}

+ 10 - 1
src/main/resources/mapper/CommonMapper.xml

@@ -91,7 +91,6 @@
         <if test="serviceProviderId != null and serviceProviderId !=''">
             AND a.id = #{serviceProviderId}
         </if>
-        GROUP BY a.id
         <if test="ex.orderBy == null or ex.orderBy ==''">
             ORDER BY a.create_time DESC
         </if>
@@ -109,5 +108,15 @@
         group by b.id
         order by a.create_time desc
     </select>
+    <select id="platformStorePage" resultType="com.gree.mall.contest.bean.store.PlatformStoreVO">
+        SELECT
+        ${ex.selected}
+        FROM platform_store a
+        ${ex.query}
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
 
 </mapper>