plf 4 лет назад
Родитель
Сommit
18e178730c

+ 64 - 26
src/main/java/com/caimei365/user/controller/RegisterApi.java

@@ -3,11 +3,13 @@ package com.caimei365.user.controller;
 import com.caimei365.user.idempotent.Idempotent;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.*;
+import com.caimei365.user.model.vo.ClubTemporaryVo;
 import com.caimei365.user.service.RegisterService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.http.HttpHeaders;
 import org.springframework.web.bind.annotation.*;
 
@@ -103,40 +105,25 @@ public class RegisterApi {
     }
 
     /**
-     * 协销拉机构上线
+     * 协销拉机构上线(用户点击注册)
      * <p>
      * spi旧接口:/seller/club/register
      *
-     * @param onlineDto ClubOnlineDto:{
-     *                  source                  注册来源: 0网站 1小程序
-     *                  userId                  协销用户ID(userID)
-     *                  name                    机构名称
-     *                  shortName                   机构简称(shortName)
-     *                  bindMobile              企业绑定手机号
-     *                  contractEmail           邮箱(email)
-     *                  linkMan                 联系人(linkMan1)
-     *                  provinceId             省Id
-     *                  cityId                 市Id
-     *                  townId                 县区Id
-     *                  address                地址
-     *                  shopPhoto              门头照(headpic)
-     *                  businessLicense        营业执照(businessLicenseImage)
-     *                  socialCreditCode       统一社会信用代码(socialCreditCode)
-     *                  firstClubType          一级分类:医美=1和生美=2
-     *                  secondClubType         医美的二级分类:诊所=1、门诊=2、医院=3。  生美没有二级分类
-     *                  department             医美分类下的门诊和医院则需要填写科室
-     *                  medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
-     *                  mainProduct            主打项目(mainpro)
-     *                  isAgreed  是否同意勾选同意协议,1是,其他否
-     *                  }
-     * @param headers   HttpHeaders
+     * @param online  暂存数据id
+     * @param headers HttpHeaders
      */
     @ApiOperation("协销拉机构上线(机构注册)")
+    @ApiImplicitParam(required = true, name = "id", value = "暂存机构数据id")
     @PostMapping("/club/online")
-    public ResponseJson<Integer> clubOnline(ClubOnlineDto onlineDto, @RequestHeader HttpHeaders headers) {
-        return registerService.clubOnline(onlineDto, headers);
+    public ResponseJson<Integer> clubOnline(OnlineDto online, @RequestHeader HttpHeaders headers) {
+        Integer id = online.getId();
+        if (id == null) {
+            return ResponseJson.error("参数异常", null);
+        }
+        return registerService.clubOnline(id, headers);
     }
 
+
     /**
      * 供应商注册
      * <p>
@@ -208,6 +195,57 @@ public class RegisterApi {
     public ResponseJson updateGuideFlag(Integer userId) {
         return registerService.updateGuideFlag(userId);
     }
+
+    /**
+     * @param onlineDto ClubOnlineDto:{
+     *                  source                  注册来源: 0网站 1小程序
+     *                  userId                  协销用户ID(userID)
+     *                  name                    机构名称
+     *                  shortName                   机构简称(shortName)
+     *                  bindMobile              企业绑定手机号
+     *                  contractEmail           邮箱(email)
+     *                  linkMan                 联系人(linkMan1)
+     *                  provinceId             省Id
+     *                  cityId                 市Id
+     *                  townId                 县区Id
+     *                  address                地址
+     *                  shopPhoto              门头照(headpic)
+     *                  businessLicense        营业执照(businessLicenseImage)
+     *                  socialCreditCode       统一社会信用代码(socialCreditCode)
+     *                  firstClubType          一级分类:医美=1和生美=2
+     *                  secondClubType         医美的二级分类:诊所=1、门诊=2、医院=3。  生美没有二级分类
+     *                  department             医美分类下的门诊和医院则需要填写科室
+     *                  medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
+     *                  mainProduct            主打项目(mainpro)
+     *                  isAgreed  是否同意勾选同意协议,1是,其他否
+     *                  }
+     */
+    @ApiOperation("协销拉机构上线(资料填写)")
+    @PostMapping("/club/temporary")
+    public ResponseJson<Integer> clubTemporary(ClubOnlineDto onlineDto) {
+        if (null == onlineDto.getUserId()) {
+            return ResponseJson.error("参数异常:用户Id不能为空!", null);
+        }
+        if (StringUtils.isBlank(onlineDto.getBindMobile())) {
+            return ResponseJson.error("参数异常:企业绑定手机号不能为空!", null);
+        }
+        if (StringUtils.isBlank(onlineDto.getLinkMan())) {
+            return ResponseJson.error("参数异常:联系人不能为空!", null);
+        }
+        if (null == onlineDto.getIsAgreed() || 1 != onlineDto.getIsAgreed()) {
+            return ResponseJson.error("请勾选同意协议", null);
+        }
+        return registerService.clubTemporary(onlineDto);
+    }
+
+    @ApiOperation("协销拉机构上线(查询暂时数据)")
+    @GetMapping("/temporary/data")
+    public ResponseJson<ClubTemporaryVo> temporaryData(Integer id) {
+        if (id == null) {
+            return ResponseJson.error("参数异常", null);
+        }
+        return registerService.temporaryData(id);
+    }
 }
 
 

+ 41 - 2
src/main/java/com/caimei365/user/mapper/RegisterMapper.java

@@ -1,10 +1,12 @@
 package com.caimei365.user.mapper;
 
+import com.caimei365.user.model.dto.ClubOnlineDto;
 import com.caimei365.user.model.dto.ShopApplyDto;
 import com.caimei365.user.model.po.ClubPo;
 import com.caimei365.user.model.po.OperationPo;
 import com.caimei365.user.model.po.ShopPo;
 import com.caimei365.user.model.po.UserPo;
+import com.caimei365.user.model.vo.ClubTemporaryVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -18,78 +20,115 @@ import org.apache.ibatis.annotations.Param;
 public interface RegisterMapper {
     /**
      * 保存(机构)用户(user)
+     *
      * @param user
      * @return
      */
     int insertClubUser(UserPo user);
+
     /**
      * 保存普通机构(club)
+     *
      * @param club
      * @return
      */
     int insertClub(ClubPo club);
+
     /**
      * 保存会员机构(club)
+     *
      * @param club
      * @return
      */
     int insertUpgradeClub(ClubPo club);
+
     /**
      * 保存运营人员(operation)
+     *
      * @param operation
      * @return
      */
     int insertOperation(OperationPo operation);
+
     /**
      * 保存(供应商)用户(user)
+     *
      * @param user
      * @return
      */
     void insertShopUser(UserPo user);
+
     /**
      * 保存供应商(shop)
+     *
      * @param shop
      * @return
      */
     int insertShop(ShopPo shop);
+
     /**
      * 根据用户ID更新机构ID
      *
      * @param userId
      * @param clubId
      */
-    void updateUserClubId(@Param("userId") Integer userId, @Param("clubId")  Integer clubId);
+    void updateUserClubId(@Param("userId") Integer userId, @Param("clubId") Integer clubId);
+
     /**
      * 根据用户ID更新供应商ID
      *
      * @param userId
      * @param shopId
      */
-    void updateUserShopId(@Param("userId") Integer userId, @Param("shopId")  Integer shopId);
+    void updateUserShopId(@Param("userId") Integer userId, @Param("shopId") Integer shopId);
+
     /**
      * 升级机构 更新user
+     *
      * @param user
      */
     void updateClubUserByUpgrade(UserPo user);
+
     /**
      * 修改供应商申请信息 更新user
+     *
      * @param user
      */
     void updateShopUserByApply(UserPo user);
+
     /**
      * 升级机构 更新club
+     *
      * @param club
      */
     void updateClubByUpgrade(ClubPo club);
+
     /**
      * 修改供应商申请信息 更新shop
+     *
      * @param shop
      */
     void updateShopInfoByApply(ShopApplyDto shop);
 
     /**
      * 引导升级后改变guideFlag状态
+     *
      * @param userId
      */
     void updateGuideFlagByUserId(Integer userId);
+
+    /**
+     * 保存机构临时数据
+     *
+     * @param onlineDto
+     */
+    void insertClubTemporary(ClubOnlineDto onlineDto);
+
+    /**
+     * 中间表数据
+     *
+     * @param id
+     * @return
+     */
+    ClubTemporaryVo getTemporary(Integer id);
 }

+ 19 - 0
src/main/java/com/caimei365/user/model/dto/OnlineDto.java

@@ -0,0 +1,19 @@
+package com.caimei365.user.model.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : plf
+ * @date : 2021/5/21
+ */
+@Data
+public class OnlineDto implements Serializable {
+    /**
+     * 暂存机构数据id
+     */
+    private Integer id;
+}

+ 95 - 0
src/main/java/com/caimei365/user/model/vo/ClubTemporaryVo.java

@@ -0,0 +1,95 @@
+package com.caimei365.user.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : plf
+ * @date : 2021/5/20
+ */
+@Data
+public class ClubTemporaryVo implements Serializable {
+    /**
+     * 协销用户Id
+     */
+    private Integer userId;
+    /**
+     * 机构名称
+     */
+    private String name;
+    /**
+     * 机构简称
+     */
+    private String shortName;
+    /**
+     * 企业绑定手机号
+     */
+    private String bindMobile;
+    /**
+     * 联系邮箱
+     */
+    private String contractEmail;
+    /**
+     * 联系人
+     */
+    private String linkMan;
+    /**
+     * 省
+     */
+    private Integer provinceId;
+    /**
+     * 市
+     */
+    private Integer cityId;
+    /**
+     * 地址Id
+     */
+    private Integer townId;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 门头照
+     */
+    private String shopPhoto;
+    /**
+     * 营业执照(businessLicenseImage)
+     */
+    private String businessLicense;
+    /**
+     * 统一社会信用代码
+     */
+    private String socialCreditCode;
+    /**
+     * 一级分类为医美=1和生美=2
+     */
+    private Integer firstClubType;
+    /**
+     * 医美的二级分类为诊所=1、门诊=2、医院=3。  生美没有二级分类
+     */
+    private Integer secondClubType;
+    /**
+     * 若为医美分类下的门诊和医院则需要填写科室。
+     */
+    private String department;
+    /**
+     * 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
+     */
+    private String medicalPracticeLicense;
+    /**
+     * 主打项目(mainpro)
+     */
+    private String mainProduct;
+    /**
+     * 是否同意勾选同意协议,1是,其他否
+     */
+    private Integer isAgreed;
+    /**
+     * 省市区地址
+     */
+    private String provincialAddress;
+}

+ 20 - 24
src/main/java/com/caimei365/user/service/RegisterService.java

@@ -2,6 +2,7 @@ package com.caimei365.user.service;
 
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.*;
+import com.caimei365.user.model.vo.ClubTemporaryVo;
 import org.springframework.http.HttpHeaders;
 
 /**
@@ -74,32 +75,11 @@ public interface RegisterService {
     /**
      * 协销拉机构上线
      *
-     * @param onlineDto ClubOnlineDto:{
-     *                  source                  注册来源: 0网站 1小程序
-     *                  userId                  协销用户ID(userID)
-     *                  name                    机构名称
-     *                  shortName                   机构简称(shortName)
-     *                  bindMobile              企业绑定手机号
-     *                  contractEmail           邮箱(email)
-     *                  linkMan                 联系人(linkMan1)
-     *                  provinceId             省Id
-     *                  cityId                 市Id
-     *                  townId                 县区Id
-     *                  address                地址
-     *                  shopPhoto              门头照(headpic)
-     *                  businessLicense        营业执照(businessLicenseImage)
-     *                  socialCreditCode       统一社会信用代码(socialCreditCode)
-     *                  firstClubType          一级分类:医美=1和生美=2
-     *                  secondClubType         医美的二级分类:诊所=1、门诊=2、医院=3。  生美没有二级分类
-     *                  department             医美分类下的门诊和医院则需要填写科室
-     *                  medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
-     *                  mainProduct            主打项目(mainpro)
-     *                  isAgreed  是否同意勾选同意协议,1是,其他否
-     *                  }
-     * @param headers   HttpHeaders
+     * @param id      暂存机构数据id
+     * @param headers HttpHeaders
      * @return ClubPo
      */
-    ResponseJson<Integer> clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers);
+    ResponseJson<Integer> clubOnline(Integer id, HttpHeaders headers);
 
     /**
      * 小程序端分步供应商注册
@@ -146,4 +126,20 @@ public interface RegisterService {
      * @param userId
      */
     ResponseJson updateGuideFlag(Integer userId);
+
+    /**
+     * 暂时存储机构资料
+     *
+     * @param onlineDto
+     * @return
+     */
+    ResponseJson<Integer> clubTemporary(ClubOnlineDto onlineDto);
+
+    /**
+     * 查询暂时存储数据
+     *
+     * @param id
+     * @return
+     */
+    ResponseJson<ClubTemporaryVo> temporaryData(Integer id);
 }

+ 87 - 64
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -12,7 +12,7 @@ import com.caimei365.user.model.po.ClubPo;
 import com.caimei365.user.model.po.OperationPo;
 import com.caimei365.user.model.po.ShopPo;
 import com.caimei365.user.model.po.UserPo;
-import com.caimei365.user.model.vo.ServiceProviderVo;
+import com.caimei365.user.model.vo.*;
 import com.caimei365.user.service.RegisterService;
 import com.caimei365.user.utils.AliyunSmsUtil;
 import com.caimei365.user.utils.CodeUtil;
@@ -167,7 +167,7 @@ public class RegisterServiceImpl implements RegisterService {
             保存数据库 user
          */
         int insertFlag = registerMapper.insertClubUser(user);
-        log.info("插入数据库User表,获得userId:"+user.getUserId());
+        log.info("插入数据库User表,获得userId:" + user.getUserId());
         if (insertFlag < 1) {
             throw new RuntimeException("插入数据库异常user:" + user.toString());
         }
@@ -201,10 +201,10 @@ public class RegisterServiceImpl implements RegisterService {
         user.setClubId(club.getClubId());
         registerMapper.updateUserClubId(user.getUserId(), club.getClubId());
         // 注册成功短信
-        boolean smsFlag = AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 10, "{name:"+ clubRegisterDto.getBindMobile() +"}");
+        boolean smsFlag = AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 10, "{name:" + clubRegisterDto.getBindMobile() + "}");
         if (!smsFlag) {
             // 短信发送失败重试一次
-            AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 10, "{name:"+ clubRegisterDto.getBindMobile() +"}");
+            AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 10, "{name:" + clubRegisterDto.getBindMobile() + "}");
         }
         /*
             绑定微信,成为机构运营人员
@@ -247,7 +247,7 @@ public class RegisterServiceImpl implements RegisterService {
                 保存数据库 operation
              */
             int insertOperationFlag = registerMapper.insertOperation(operation);
-            log.info("插入数据库cm_mall_operation_user表,获得id:"+operation.getId());
+            log.info("插入数据库cm_mall_operation_user表,获得id:" + operation.getId());
             if (insertOperationFlag < 1) {
                 log.info(operation.getUserId() + " 插入数据库异常operation:" + operation.toString());
             }
@@ -255,7 +255,7 @@ public class RegisterServiceImpl implements RegisterService {
         }
         log.info("注册普通机构成功,手机号>>>" + clubRegisterDto.getBindMobile());
         if (!smsFlag) {
-            log.info("短信发送失败,手机号:"+clubRegisterDto.getBindMobile());
+            log.info("短信发送失败,手机号:" + clubRegisterDto.getBindMobile());
         }
         return ResponseJson.success("机构注册成功", null);
     }
@@ -379,7 +379,7 @@ public class RegisterServiceImpl implements RegisterService {
         club.setSocialCreditCode(upgradeDto.getSocialCreditCode());
         // 分类: 1医美, 2生美
         club.setFirstClubType(upgradeDto.getFirstClubType());
-        if (upgradeDto.getFirstClubType() == 1){
+        if (upgradeDto.getFirstClubType() == 1) {
             // 医美二级分类: 1诊所、2门诊、3医院
             club.setSecondClubType(upgradeDto.getSecondClubType());
             // 门诊和医院则需要填写科室
@@ -404,56 +404,38 @@ public class RegisterServiceImpl implements RegisterService {
     /**
      * 协销拉机构上线
      *
-     * @param onlineDto ClubOnlineDto:{
-     *                  source                  注册来源: 0网站 1小程序
-     *                  userId                  协销用户ID(userID)
-     *                  name                    机构名称
-     *                  shortName                   机构简称(shortName)
-     *                  bindMobile              企业绑定手机号
-     *                  contractEmail           邮箱(email)
-     *                  linkMan                 联系人(linkMan1)
-     *                  provinceId             省Id
-     *                  cityId                 市Id
-     *                  townId                 县区Id
-     *                  address                地址
-     *                  shopPhoto              门头照(headpic)
-     *                  businessLicense        营业执照(businessLicenseImage)
-     *                  socialCreditCode       统一社会信用代码(socialCreditCode)
-     *                  firstClubType          一级分类:医美=1和生美=2
-     *                  secondClubType         医美的二级分类:诊所=1、门诊=2、医院=3。  生美没有二级分类
-     *                  department             医美分类下的门诊和医院则需要填写科室
-     *                  medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
-     *                  mainProduct            主打项目(mainpro)
-     *                  isAgreed  是否同意勾选同意协议,1是,其他否
-     *                  }
-     * @param headers   HttpHeaders
+     * @param id 暂存机构数据id
      * @return ClubPo
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResponseJson<Integer> clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers) {
-        Integer isAgreed = onlineDto.getIsAgreed();
+    public ResponseJson<Integer> clubOnline(Integer id, HttpHeaders headers) {
+        ClubTemporaryVo clubTemporary = registerMapper.getTemporary(id);
+        if (clubTemporary == null) {
+            return ResponseJson.error("机构数据异常", null);
+        }
+        Integer isAgreed = clubTemporary.getIsAgreed();
         // 打印IP
         String ip = headers.getFirst("X-CLIENT-IP");
         log.info("协销拉机构上线 X-CLIENT-IP : " + ip);
         // 手机号
-        String mobile = onlineDto.getBindMobile();
+        String mobile = clubTemporary.getBindMobile();
         // 参数校验
-        if (null == onlineDto.getUserId()) {
+        if (null == clubTemporary.getUserId()) {
             return ResponseJson.error("参数异常:用户Id不能为空!", null);
         }
         if (StringUtils.isBlank(mobile)) {
             return ResponseJson.error("参数异常:企业绑定手机号不能为空!", null);
         }
-        if (StringUtils.isBlank(onlineDto.getLinkMan())) {
+        if (StringUtils.isBlank(clubTemporary.getLinkMan())) {
             return ResponseJson.error("参数异常:联系人不能为空!", null);
         }
         if (null == isAgreed || 1 != isAgreed) {
             return ResponseJson.error("请勾选同意协议", null);
         }
         // 是否填写升级资料
-        String businessLicense = onlineDto.getBusinessLicense();
-        String email = onlineDto.getContractEmail();
+        String businessLicense = clubTemporary.getBusinessLicense();
+        String email = clubTemporary.getContractEmail();
         if (StringUtils.isNotBlank(businessLicense)) {
             // 邮箱验证
             String emailCheck = commonService.emailValidate(email);
@@ -461,13 +443,13 @@ public class RegisterServiceImpl implements RegisterService {
                 return ResponseJson.error(emailCheck, null);
             }
             // 机构名称检查
-            String nameCheck = ValidateUtil.validateClubName(onlineDto.getName());
+            String nameCheck = ValidateUtil.validateClubName(clubTemporary.getName());
             if (nameCheck != null) {
                 return ResponseJson.error(nameCheck, null);
             }
-            if (onlineDto.getFirstClubType() == 1) {
+            if (clubTemporary.getFirstClubType() == 1) {
                 // 医美分类
-                if (onlineDto.getSecondClubType() == null || StringUtils.isBlank(onlineDto.getMedicalPracticeLicense())) {
+                if (clubTemporary.getSecondClubType() == null || StringUtils.isBlank(clubTemporary.getMedicalPracticeLicense())) {
                     return ResponseJson.error("医美分类下参数异常,医美的二级分类为空或医疗执业许可证为空", null);
                 }
             }
@@ -478,7 +460,7 @@ public class RegisterServiceImpl implements RegisterService {
             return ResponseJson.error(result, null);
         }
         // 获取协销信息
-        Integer userId = onlineDto.getUserId();
+        Integer userId = clubTemporary.getUserId();
         ServiceProviderVo serviceProvider = loginMapper.getServiceProviderByUserId(userId);
         // 设置日期时间格式
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -498,9 +480,9 @@ public class RegisterServiceImpl implements RegisterService {
         // 用户类型,供应商1,会员机构3,普通机构4
         user.setRegisterUserTypeId(4);
         // 组织名称
-        user.setName(onlineDto.getLinkMan());
+        user.setName(clubTemporary.getLinkMan());
         // 用户名
-        user.setUserName(onlineDto.getLinkMan());
+        user.setUserName(clubTemporary.getLinkMan());
         // 绑定手机号
         user.setBindMobile(mobile);
         // 用户身份: 1协销 2会员机构 3供应商 4普通机构
@@ -526,7 +508,7 @@ public class RegisterServiceImpl implements RegisterService {
             // 状态:待审查资料
             user.setClubStatus(1);
             // 组织名称
-            user.setName(onlineDto.getName());
+            user.setName(clubTemporary.getName());
             // 邮箱
             user.setEmail(email);
             // 是否已经引导过(机构升级:0否,1是)
@@ -549,7 +531,7 @@ public class RegisterServiceImpl implements RegisterService {
         // 联系手机
         club.setContractMobile(mobile);
         // 联系人
-        club.setLinkMan(onlineDto.getLinkMan());
+        club.setLinkMan(clubTemporary.getLinkMan());
         // 用户Id
         club.setUserId(user.getUserId());
         // 设置协销ID
@@ -561,45 +543,45 @@ public class RegisterServiceImpl implements RegisterService {
         // 会员机构,填写升级资料
         if (StringUtils.isNotBlank(businessLicense)) {
             // 机构名称
-            club.setName(onlineDto.getName());
+            club.setName(clubTemporary.getName());
             // 机构简称
-            club.setShortName(onlineDto.getShortName());
+            club.setShortName(clubTemporary.getShortName());
             // 邮箱
             club.setContractEmail(email);
             // 待审查资料
             club.setStatus(1);
             // 地址
-            club.setProvinceId(onlineDto.getProvinceId());
-            club.setCityId(onlineDto.getCityId());
-            club.setTownId(onlineDto.getTownId());
-            club.setAddress(onlineDto.getAddress());
+            club.setProvinceId(clubTemporary.getProvinceId());
+            club.setCityId(clubTemporary.getCityId());
+            club.setTownId(clubTemporary.getTownId());
+            club.setAddress(clubTemporary.getAddress());
             // 门头照
-            club.setShopPhoto(onlineDto.getShopPhoto());
+            club.setShopPhoto(clubTemporary.getShopPhoto());
             // 营业执照
             club.setBusinessLicense(businessLicense);
             // 统一社会信用代码
-            club.setSocialCreditCode(onlineDto.getSocialCreditCode());
+            club.setSocialCreditCode(clubTemporary.getSocialCreditCode());
             // 分类: 1医美, 2生美
-            club.setFirstClubType(onlineDto.getFirstClubType());
-            if (onlineDto.getFirstClubType() == 1) {
+            club.setFirstClubType(clubTemporary.getFirstClubType());
+            if (clubTemporary.getFirstClubType() == 1) {
                 // 医美二级分类: 1诊所、2门诊、3医院
-                club.setSecondClubType(onlineDto.getSecondClubType());
+                club.setSecondClubType(clubTemporary.getSecondClubType());
                 // 门诊和医院则需要填写科室
-                club.setDepartment(onlineDto.getDepartment());
+                club.setDepartment(clubTemporary.getDepartment());
                 // 医美分类必须上传医疗执业许可证
-                club.setMedicalPracticeLicense(onlineDto.getMedicalPracticeLicense());
+                club.setMedicalPracticeLicense(clubTemporary.getMedicalPracticeLicense());
             }
             // 主打项目(mainpro)
-            club.setMainProduct(onlineDto.getMainProduct());
+            club.setMainProduct(clubTemporary.getMainProduct());
             /*
                 保存数据库(会员机构) club
              */
             insertClubFlag = registerMapper.insertUpgradeClub(club);
         } else {
             // 机构名称
-            club.setName(onlineDto.getLinkMan());
+            club.setName(clubTemporary.getLinkMan());
             // 机构简称
-            club.setShortName(onlineDto.getLinkMan());
+            club.setShortName(clubTemporary.getLinkMan());
             // 状态设置上线
             club.setStatus(90);
             /*
@@ -628,15 +610,15 @@ public class RegisterServiceImpl implements RegisterService {
             logTxt = String.format(logTxt, "普通机构", mobile, initPassword);
         }
         // 发送短信
-        boolean smsFlag = AliyunSmsUtil.sendSms(mobile, 6, "{name:"+ mobile +",content:"+ randomCode +"}");
+        boolean smsFlag = AliyunSmsUtil.sendSms(mobile, 6, "{name:" + mobile + ",content:" + randomCode + "}");
         if (!smsFlag) {
             // 短信发送失败重试一次
-            AliyunSmsUtil.sendSms(mobile, 6, "{name:"+ mobile +",content:"+ randomCode +"}");
+            AliyunSmsUtil.sendSms(mobile, 6, "{name:" + mobile + ",content:" + randomCode + "}");
         }
         // 打印短信内容
         log.info(logTxt);
         if (!smsFlag) {
-            log.info("短信发送失败,手机号:"+mobile);
+            log.info("短信发送失败,手机号:" + mobile);
         }
         // 返回状态
         return ResponseJson.success(user.getUserId());
@@ -876,5 +858,46 @@ public class RegisterServiceImpl implements RegisterService {
         return ResponseJson.success();
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseJson<Integer> clubTemporary(ClubOnlineDto onlineDto) {
+        if (StringUtils.isNotBlank(onlineDto.getBusinessLicense())) {
+            // 邮箱验证
+            String emailCheck = commonService.emailValidate(onlineDto.getContractEmail());
+            if (emailCheck != null) {
+                return ResponseJson.error(emailCheck, null);
+            }
+            // 机构名称检查
+            String nameCheck = ValidateUtil.validateClubName(onlineDto.getName());
+            if (nameCheck != null) {
+                return ResponseJson.error(nameCheck, null);
+            }
+            if (onlineDto.getFirstClubType() == 1) {
+                // 医美分类
+                if (onlineDto.getSecondClubType() == null || StringUtils.isBlank(onlineDto.getMedicalPracticeLicense())) {
+                    return ResponseJson.error("医美分类下参数异常,医美的二级分类为空或医疗执业许可证为空", null);
+                }
+            }
+        }
+        // 手机号验证
+        String result = commonService.mobileAndCodeValidate(onlineDto.getBindMobile(), null);
+        if (result != null) {
+            return ResponseJson.error(result, null);
+        }
+        registerMapper.insertClubTemporary(onlineDto);
+        return ResponseJson.success(onlineDto.getUserId());
+    }
+
+    @Override
+    public ResponseJson<ClubTemporaryVo> temporaryData(Integer id) {
+        ClubTemporaryVo clubTemporary = registerMapper.getTemporary(id);
+        if (null != clubTemporary.getTownId()) {
+            TownVo town = baseMapper.getTown(clubTemporary.getTownId());
+            CityVo city = baseMapper.getCity(town.getCityId());
+            ProvinceVo province = baseMapper.getProvince(city.getProvinceId());
+            clubTemporary.setProvincialAddress(province.getName() + "" + city.getName() + "" + town.getName());
+        }
+        return ResponseJson.success(clubTemporary);
+    }
 }
 

+ 49 - 0
src/main/resources/mapper/RegisterMapper.xml

@@ -114,4 +114,53 @@
         update user set guideFlag=1 where userID=#{userId}
     </update>
 
+    <insert id="insertClubTemporary" useGeneratedKeys="true" keyProperty="userId" keyColumn="id" parameterType="com.caimei365.user.model.dto.ClubOnlineDto">
+        INSERT INTO `club_temporary` (
+          `userId`, `name`, `shortName`, `bindMobile`,
+          `contractEmail`, `linkMan`, `provinceId`,
+          `cityId`, `townId`, `address`, `shopPhoto`,
+          `businessLicense`, `socialCreditCode`,
+          `firstClubType`, `secondClubType`,
+          `department`, `medicalPracticeLicense`,
+          `mainProduct`, `isAgreed`
+        )
+        VALUES
+          (
+            #{userId}, #{name}, #{shortName}, #{bindMobile},
+            #{contractEmail}, #{linkMan}, #{provinceId},
+            #{cityId}, #{townId}, #{address}, #{shopPhoto},
+            #{businessLicense}, #{socialCreditCode},
+            #{firstClubType}, #{secondClubType},
+            #{department}, #{medicalPracticeLicense},
+            #{mainProduct}, #{isAgreed}
+          )
+    </insert>
+
+    <select id="getTemporary" resultType="com.caimei365.user.model.vo.ClubTemporaryVo">
+        SELECT
+          `userId`,
+          `name`,
+          `shortName`,
+          `bindMobile`,
+          `contractEmail`,
+          `linkMan`,
+          `provinceId`,
+          `cityId`,
+          `townId`,
+          `address`,
+          `shopPhoto`,
+          `businessLicense`,
+          `socialCreditCode`,
+          `firstClubType`,
+          `secondClubType`,
+          `department`,
+          `medicalPracticeLicense`,
+          `mainProduct`,
+          `isAgreed`
+        FROM
+          `club_temporary`
+        WHERE
+          id = #{id}
+    </select>
+
 </mapper>