Ver código fonte

绑定运营人员修改

plf 4 anos atrás
pai
commit
0703f9ce4c

+ 55 - 52
src/main/java/com/caimei365/user/controller/RegisterApi.java

@@ -4,7 +4,9 @@ import com.caimei365.user.idempotent.Idempotent;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.*;
 import com.caimei365.user.service.RegisterService;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
 import org.springframework.web.bind.annotation.*;
@@ -16,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
  * @author : Charles
  * @date : 2021/3/10
  */
-@Api(tags="注册Api")
+@Api(tags = "注册Api")
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/user/register")
@@ -26,7 +28,7 @@ public class RegisterApi {
 
     /**
      * 检查手机号是否可以注册
-     *
+     * <p>
      * spi旧接口:/seller/club/check
      *
      * @param bindMobile 手机号
@@ -40,25 +42,25 @@ public class RegisterApi {
 
     /**
      * 普通机构入驻(注册)
-     *
+     * <p>
      * spi旧接口:/club/common
      *
      * @param clubRegisterDto ClubRegisterDto{
-     *                          source            注册来源: 0网站 1小程序
-     *                          userName          用户名
-     *                          bindMobile        企业绑定手机号
-     *                          password          密码
-     *                          unionId           微信unionId
-     *                          nickName          微信昵称
-     *                          avatarUrl         微信头像(旧:headimgurl)
-     *                          passWordConfirm   用户确认密码
-     *                          smsCode           短信验证码(旧:activationCode)
-     *                          isAgreed          是否同意勾选同意协议,1是,其他否
+     *                        source            注册来源: 0网站 1小程序
+     *                        userName          用户名
+     *                        bindMobile        企业绑定手机号
+     *                        password          密码
+     *                        unionId           微信unionId
+     *                        nickName          微信昵称
+     *                        avatarUrl         微信头像(旧:headimgurl)
+     *                        passWordConfirm   用户确认密码
+     *                        smsCode           短信验证码(旧:activationCode)
+     *                        isAgreed          是否同意勾选同意协议,1是,其他否
      *                        }
      * @param headers         HttpHeaders
      */
     @ApiOperation("注册普通机构")
-    @Idempotent(prefix="idempotent_club", keys={"#baseUser"}, expire=5)
+    @Idempotent(prefix = "idempotent_club", keys = {"#baseUser"}, expire = 5)
     @PostMapping("/club")
     public ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, @RequestHeader HttpHeaders headers) {
         return registerService.clubRegister(clubRegisterDto, headers);
@@ -66,43 +68,43 @@ public class RegisterApi {
 
     /**
      * 普通机构升级会员机构
-     *
+     * <p>
      * spi旧接口:/club/upgrade
      *
      * @param upgradeDto ClubUpgradeDto:{
-     *                      clubId                 机构ID
-     *                      userId                 用户ID
-     *                      name                   机构名称
-     *                      shortName                  机构简称
-     *                      contractEmail          邮箱(contractEmail1)
-     *                      contractPhone          固定电话
-     *                      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)
-     *                      fax                    传真
-     *                      profile                公司简介
-     *                  }
-     * @param headers   HttpHeaders
+     *                   clubId                 机构ID
+     *                   userId                 用户ID
+     *                   name                   机构名称
+     *                   shortName                  机构简称
+     *                   contractEmail          邮箱(contractEmail1)
+     *                   contractPhone          固定电话
+     *                   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)
+     *                   fax                    传真
+     *                   profile                公司简介
+     *                   }
+     * @param headers    HttpHeaders
      */
     @ApiOperation("普通机构升级会员机构")
     @PostMapping("/club/upgrade")
-    public ResponseJson clubUpgrade(ClubUpgradeDto upgradeDto, @RequestHeader HttpHeaders headers){
+    public ResponseJson clubUpgrade(ClubUpgradeDto upgradeDto, @RequestHeader HttpHeaders headers) {
         return registerService.clubUpgrade(upgradeDto, headers);
     }
 
     /**
      * 协销拉机构上线
-     *
+     * <p>
      * spi旧接口:/seller/club/register
      *
      * @param onlineDto ClubOnlineDto:{
@@ -131,13 +133,13 @@ public class RegisterApi {
      */
     @ApiOperation("协销拉机构上线(机构注册)")
     @PostMapping("/club/online")
-    public ResponseJson clubOnline( ClubOnlineDto onlineDto, @RequestHeader HttpHeaders headers) {
+    public ResponseJson<Integer> clubOnline(ClubOnlineDto onlineDto, @RequestHeader HttpHeaders headers) {
         return registerService.clubOnline(onlineDto, headers);
     }
 
     /**
      * 供应商注册
-     *
+     * <p>
      * spi旧接口:supplier/appletsRegistered
      *
      * @param shopRegisterDto ShopRegisterDto{
@@ -166,11 +168,11 @@ public class RegisterApi {
      *                        smsCode               短信验证码(旧:activationCode)
      *                        isAgreed              是否同意勾选同意协议,1是,其他否
      *                        whichStep             注册步数: PC(0),小程序(1,2,3)
-     *                    }
+     *                        }
      * @param headers         HttpHeaders
      */
     @ApiOperation("供应商注册")
-    @Idempotent(prefix="idempotent_shop", keys={"#shopRegisterDto"}, expire=5)
+    @Idempotent(prefix = "idempotent_shop", keys = {"#shopRegisterDto"}, expire = 5)
     @PostMapping("/shop")
     public ResponseJson shopRegister(ShopRegisterDto shopRegisterDto, @RequestHeader HttpHeaders headers) {
         String passWordConfirm = shopRegisterDto.getPassWordConfirm();
@@ -182,27 +184,28 @@ public class RegisterApi {
 
     /**
      * 更新供应商申请信息
-     *
+     * <p>
      * spi旧接口:/supplier/updateCompanyInfo
      *
-     * @param shopApplyDto  ShopApplyDto
-     * @param headers       HttpHeaders
-     * @return              ShopPo
+     * @param shopApplyDto ShopApplyDto
+     * @param headers      HttpHeaders
+     * @return ShopPo
      */
     @ApiOperation("更新供应商申请信息")
     @PostMapping("/shop/apply")
-    public ResponseJson updateShopApplyInfo(ShopApplyDto shopApplyDto, @RequestHeader HttpHeaders headers){
+    public ResponseJson updateShopApplyInfo(ShopApplyDto shopApplyDto, @RequestHeader HttpHeaders headers) {
         return registerService.updateShopApply(shopApplyDto, headers);
     }
 
     /**
      * 引导升级后改变guideFlag状态
-     * @param userId  用户Id(userId)
+     *
+     * @param userId 用户Id(userId)
      */
     @ApiOperation("引导升级后改变guideFlag状态")
     @ApiImplicitParam(required = true, name = "userId", value = "用户Id")
     @GetMapping("/guide")
-    public ResponseJson updateGuideFlag(Integer userId){
+    public ResponseJson updateGuideFlag(Integer userId) {
         return registerService.updateGuideFlag(userId);
     }
 }

+ 5 - 0
src/main/java/com/caimei365/user/model/dto/AuthBindDto.java

@@ -28,6 +28,11 @@ public class AuthBindDto implements Serializable {
     @NotNull
     @ApiModelProperty("手机号")
     private String mobile;
+    /**
+     * 是否检查手机号验证码,0:检查,1:不检查
+     */
+    @ApiModelProperty("是否检查手机号验证码,0:检查,1:不检查")
+    private String isCheckSmsCode;
     /**
      * 手机验证码
      */

+ 40 - 39
src/main/java/com/caimei365/user/service/RegisterService.java

@@ -2,8 +2,6 @@ package com.caimei365.user.service;
 
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.*;
-import com.caimei365.user.model.po.ClubPo;
-import com.caimei365.user.model.po.ShopPo;
 import org.springframework.http.HttpHeaders;
 
 /**
@@ -16,24 +14,26 @@ public interface RegisterService {
 
     /**
      * 检查账号可以注册
+     *
      * @param mobile 手机号
      * @return sucess
      */
     ResponseJson registerCheck(String mobile);
+
     /**
      * 普通机构入驻(注册)
      *
      * @param clubRegisterDto ClubRegisterDto{
-     *                          source            注册来源: 0网站 1小程序
-     *                          userName          用户名
-     *                          bindMobile        企业绑定手机号
-     *                          password          密码
-     *                          unionId           微信unionId
-     *                          nickName          微信昵称
-     *                          avatarUrl         微信头像(旧:headimgurl)
-     *                          passWordConfirm   用户确认密码
-     *                          smsCode           短信验证码(旧:activationCode)
-     *                          isAgreed          是否同意勾选同意协议,1是,其他否
+     *                        source            注册来源: 0网站 1小程序
+     *                        userName          用户名
+     *                        bindMobile        企业绑定手机号
+     *                        password          密码
+     *                        unionId           微信unionId
+     *                        nickName          微信昵称
+     *                        avatarUrl         微信头像(旧:headimgurl)
+     *                        passWordConfirm   用户确认密码
+     *                        smsCode           短信验证码(旧:activationCode)
+     *                        isAgreed          是否同意勾选同意协议,1是,其他否
      *                        }
      * @param headers         HttpHeaders
      * @return void
@@ -44,29 +44,29 @@ public interface RegisterService {
      * 普通机构升级会员机构
      *
      * @param upgradeDto ClubUpgradeDto:{
-     *                      clubId                 机构ID
-     *                      userId                 用户ID
-     *                      name                   机构名称
-     *                      shortName                  机构简称
-     *                      contractEmail          邮箱(contractEmail1)
-     *                      contractPhone          固定电话
-     *                      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)
-     *                      fax                    传真
-     *                      profile                公司简介
-     *                  }
-     * @param headers   HttpHeaders
+     *                   clubId                 机构ID
+     *                   userId                 用户ID
+     *                   name                   机构名称
+     *                   shortName                  机构简称
+     *                   contractEmail          邮箱(contractEmail1)
+     *                   contractPhone          固定电话
+     *                   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)
+     *                   fax                    传真
+     *                   profile                公司简介
+     *                   }
+     * @param headers    HttpHeaders
      * @return ClubPo
      */
     ResponseJson clubUpgrade(ClubUpgradeDto upgradeDto, HttpHeaders headers);
@@ -99,7 +99,7 @@ public interface RegisterService {
      * @param headers   HttpHeaders
      * @return ClubPo
      */
-    ResponseJson clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers);
+    ResponseJson<Integer> clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers);
 
     /**
      * 小程序端分步供应商注册
@@ -121,7 +121,7 @@ public interface RegisterService {
      *                        firstShopType         医疗=1和非医疗=2
      *                        secondShopType        医疗的二级分类 一类器械=1、二类器械 =2、三类器械=3、其他=4 /// 1和非医疗没有二级分类
      *                        mainProduct           主打项目(mainpro)
-     *                    }
+     *                        }
      * @param passWordConfirm 用户确认密码
      * @param smsCode         短信验证码(旧:activationCode)
      * @param isAgreed        是否同意勾选同意协议,1是,其他否
@@ -134,14 +134,15 @@ public interface RegisterService {
     /**
      * 更新供应商申请信息
      *
-     * @param shopApplyDto      ShopRegisterDto
-     * @param headers           HttpHeaders
+     * @param shopApplyDto ShopRegisterDto
+     * @param headers      HttpHeaders
      * @return ShopPo
      */
     ResponseJson updateShopApply(ShopApplyDto shopApplyDto, HttpHeaders headers);
 
     /**
      * 引导升级后改变guideFlag状态
+     *
      * @param userId
      */
     ResponseJson updateGuideFlag(Integer userId);

+ 42 - 37
src/main/java/com/caimei365/user/service/impl/LoginServiceImpl.java

@@ -3,6 +3,7 @@ package com.caimei365.user.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei365.user.components.CommonService;
+import com.caimei365.user.components.RedisService;
 import com.caimei365.user.components.WeChatService;
 import com.caimei365.user.mapper.LoginMapper;
 import com.caimei365.user.mapper.OperationMapper;
@@ -14,7 +15,6 @@ import com.caimei365.user.model.dto.ScanBindDto;
 import com.caimei365.user.model.po.OperationPo;
 import com.caimei365.user.model.vo.UserLoginVo;
 import com.caimei365.user.service.LoginService;
-import com.caimei365.user.components.RedisService;
 import com.caimei365.user.utils.JwtUtil;
 import com.caimei365.user.utils.Md5Util;
 import lombok.extern.slf4j.Slf4j;
@@ -59,9 +59,9 @@ public class LoginServiceImpl implements LoginService {
      * 登录(用户名,密码)
      *
      * @param loginPasswordDto {
-     *                           mobileOrEmail 手机号或邮箱
-     *                           password      密码
-     *                           unionId       微信unionId
+     *                         mobileOrEmail 手机号或邮箱
+     *                         password      密码
+     *                         unionId       微信unionId
      *                         }
      * @return BaseUser
      */
@@ -100,10 +100,10 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 微信授权登录(小程序)
      *
-     * @param code              微信授权code
-     * @param encryptedData     微信加密数据
-     * @param iv                加密算法的初始向量
-     * @param headers           HttpHeaders
+     * @param code          微信授权code
+     * @param encryptedData 微信加密数据
+     * @param iv            加密算法的初始向量
+     * @param headers       HttpHeaders
      */
     @Override
     public ResponseJson<UserLoginVo> appletsAuthorization(String code, String encryptedData, String iv, HttpHeaders headers) {
@@ -172,13 +172,13 @@ public class LoginServiceImpl implements LoginService {
 
     /**
      * 微信公众号授权登录(www)
-     *
+     * <p>
      * spi旧接口:user/authorizationLogin
      *
-     * @param code              微信code
-     * @param state             安全认证
-     * @param mode              1:静默授权,2:用户手动授权
-     * @param headers           HttpHeaders
+     * @param code    微信code
+     * @param state   安全认证
+     * @param mode    1:静默授权,2:用户手动授权
+     * @param headers HttpHeaders
      */
     @Override
     public ResponseJson<UserLoginVo> websiteAuthorization(String code, String state, Integer mode, HttpHeaders headers) {
@@ -225,9 +225,9 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 运营人员授权登录
      *
-     * @param openId 微信openId
+     * @param openId  微信openId
      * @param unionId 微信unionId
-     * @param source 来源:www网站, mini小程序
+     * @param source  来源:www网站, mini小程序
      * @return BaseUser
      */
     private ResponseJson<UserLoginVo> operationAuthLogin(String openId, String unionId, String source) {
@@ -253,8 +253,10 @@ public class LoginServiceImpl implements LoginService {
         // 返回登录校验结果
         return logonVerify(operation);
     }
+
     /**
      * 登录校验
+     *
      * @param loginUser 用户信息
      * @return UserLoginVo
      */
@@ -299,11 +301,12 @@ public class LoginServiceImpl implements LoginService {
         redisService.set("state:" + state, String.valueOf(state), 1800L);
         return ResponseJson.success(dataMap);
     }
+
     /**
      * 微信用户扫码,微信服务器回调
      *
-     * @param code      微信code
-     * @param state     安全认证key(上一步获取参数时自定义生成的uuid)
+     * @param code  微信code
+     * @param state 安全认证key(上一步获取参数时自定义生成的uuid)
      */
     @Override
     public void qrCodeAuthScan(String code, String state) {
@@ -321,10 +324,10 @@ public class LoginServiceImpl implements LoginService {
             Map<String, Object> tokenMap = weChatService.getInfoMapByWeb(code, "pc");
             String accessToken = (String) tokenMap.get("access_token");
             String openId = (String) tokenMap.get(WeChatService.Keys.OPEN_ID);
-            log.info(">>>>>(code换取access_token)wx回调openId:" + openId + " ,accessToken:"+ accessToken);
+            log.info(">>>>>(code换取access_token)wx回调openId:" + openId + " ,accessToken:" + accessToken);
             // 用access_token获取微信用户信息
             Map<String, Object> infoData = weChatService.getUserInfoByWeb(accessToken, openId);
-            log.info(">>>>>(用access_token获取用户信息)wx回调openId:" + infoData.get(WeChatService.Keys.OPEN_ID) + " ,unionId:"+ infoData.get(WeChatService.Keys.UNION_ID));
+            log.info(">>>>>(用access_token获取用户信息)wx回调openId:" + infoData.get(WeChatService.Keys.OPEN_ID) + " ,unionId:" + infoData.get(WeChatService.Keys.UNION_ID));
             // 微信用户信息存入redis
             redisService.setMap("scan:" + state, infoData);
         } catch (Exception e) {
@@ -337,7 +340,7 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 校验扫码结果
      *
-     * @param state   安全认证key(第一步获取参数时自定义生成的uuid)
+     * @param state 安全认证key(第一步获取参数时自定义生成的uuid)
      * @return UserLoginVo
      */
     @Override
@@ -417,7 +420,7 @@ public class LoginServiceImpl implements LoginService {
             String nickName = (String) infoData.get("nickname");
             String avatarUrl = (String) infoData.get("headimgurl");
             // 判断微信是否已经绑定
-            UserLoginVo operationByUnionId = loginMapper.getLoginUserByUnionId(unionId,"www");
+            UserLoginVo operationByUnionId = loginMapper.getLoginUserByUnionId(unionId, "www");
             if (operationByUnionId != null) {
                 return ResponseJson.error("该微信已绑定,请重新刷新首页", null);
             }
@@ -439,7 +442,7 @@ public class LoginServiceImpl implements LoginService {
             // 组织机构0
             operation.setOrganizeId(0);
             // 绑定的机构/供应商Id,绑定的用户类型
-            if (user != null && 3 == user.getUserIdentity() ) {
+            if (user != null && 3 == user.getUserIdentity()) {
                 operation.setShopId(user.getShopId());
                 operation.setUserType(2);
             } else if (user != null) {
@@ -469,10 +472,10 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 邀请码登录
      *
-     * @param invitationCode    邀请码
-     * @param nickName          微信昵称
-     * @param avatarUrl         微信头像(headimgurl)
-     * @param unionId           微信unionId
+     * @param invitationCode 邀请码
+     * @param nickName       微信昵称
+     * @param avatarUrl      微信头像(headimgurl)
+     * @param unionId        微信unionId
      * @return UserLoginVo
      */
     @Override
@@ -540,13 +543,13 @@ public class LoginServiceImpl implements LoginService {
      * 运营人员绑定微信
      *
      * @param authBindDto {
-     *                         userId    要绑定的用户Id(userID)
-     *                         mobile    手机号
-     *                         smsCode   手机验证码(verificationCode)
-     *                         unionId   微信unionId
-     *                         nickName       微信昵称
-     *                         avatarUrl      微信头像(headimgurl)
-     *                     }
+     *                    userId    要绑定的用户Id(userID)
+     *                    mobile    手机号
+     *                    smsCode   手机验证码(verificationCode)
+     *                    unionId   微信unionId
+     *                    nickName       微信昵称
+     *                    avatarUrl      微信头像(headimgurl)
+     *                    }
      * @return OperationPo
      */
     @Override
@@ -558,6 +561,7 @@ public class LoginServiceImpl implements LoginService {
         String unionId = authBindDto.getUnionId();
         String nickName = authBindDto.getNickName();
         String avatarUrl = authBindDto.getAvatarUrl();
+        String isCheckSmsCode = authBindDto.getIsCheckSmsCode();
         // 参数校验
         if (null == userId) {
             return ResponseJson.error("参数异常:用户Id不能为空!", null);
@@ -565,7 +569,8 @@ public class LoginServiceImpl implements LoginService {
         if (StringUtils.isBlank(mobile)) {
             return ResponseJson.error("参数异常:手机号不能为空!", null);
         }
-        if (StringUtils.isBlank(smsCode)) {
+        boolean b = StringUtils.isBlank(isCheckSmsCode) || "0".equals(isCheckSmsCode);
+        if (b && StringUtils.isBlank(smsCode)) {
             return ResponseJson.error("参数异常:短信验证码不能为空!", null);
         }
         if (StringUtils.isBlank(unionId)) {
@@ -580,7 +585,7 @@ public class LoginServiceImpl implements LoginService {
         log.info("绑定微信bindingWx,获取unionId>>>>>>" + unionId);
         String openId = (String) infoData.get(WeChatService.Keys.OPEN_ID);
         // 判断微信是否已经绑定
-        UserLoginVo operationByUnionId = loginMapper.getLoginUserByUnionId(unionId,"mini");
+        UserLoginVo operationByUnionId = loginMapper.getLoginUserByUnionId(unionId, "mini");
         if (operationByUnionId != null) {
             return ResponseJson.error("该微信已绑定,请重新刷新首页", null);
         }
@@ -604,7 +609,7 @@ public class LoginServiceImpl implements LoginService {
         // 组织机构0
         operation.setOrganizeId(0);
         // 绑定的机构/供应商Id,绑定的用户类型
-        if (user != null && 3 == user.getUserIdentity() ) {
+        if (user != null && 3 == user.getUserIdentity()) {
             operation.setShopId(user.getShopId());
             operation.setUserType(2);
         } else if (user != null) {
@@ -640,7 +645,7 @@ public class LoginServiceImpl implements LoginService {
             UserLoginVo dbUser = loginMapper.getLoginUserByMobile(mobile);
             boolean offlineClub = false;
             boolean offlineShop = false;
-            if (null != dbUser){
+            if (null != dbUser) {
                 if (mobile.equals(dbUser.getBindMobile())) {
                     // 联系人作为运营人员,放行
                     return null;

+ 83 - 67
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -1,6 +1,7 @@
 package com.caimei365.user.service.impl;
 
 import com.caimei365.user.components.CommonService;
+import com.caimei365.user.components.RedisService;
 import com.caimei365.user.components.WeChatService;
 import com.caimei365.user.mapper.BaseMapper;
 import com.caimei365.user.mapper.LoginMapper;
@@ -13,7 +14,6 @@ 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.service.RegisterService;
-import com.caimei365.user.components.RedisService;
 import com.caimei365.user.utils.AliyunSmsUtil;
 import com.caimei365.user.utils.Md5Util;
 import com.caimei365.user.utils.ValidateUtil;
@@ -36,7 +36,7 @@ import java.util.Map;
  */
 @Slf4j
 @Service
-public class RegisterServiceImpl implements RegisterService{
+public class RegisterServiceImpl implements RegisterService {
 
     @Resource
     private RedisService redisService;
@@ -69,16 +69,16 @@ public class RegisterServiceImpl implements RegisterService{
      * 普通机构入驻(注册)
      *
      * @param clubRegisterDto ClubRegisterDto{
-     *                          source            注册来源: 0网站 1小程序
-     *                          userName          用户名
-     *                          bindMobile        企业绑定手机号
-     *                          password          密码
-     *                          unionId           微信unionId
-     *                          nickName          微信昵称
-     *                          avatarUrl         微信头像(旧:headimgurl)
-     *                          passWordConfirm   用户确认密码
-     *                          smsCode           短信验证码(旧:activationCode)
-     *                          isAgreed          是否同意勾选同意协议,1是,其他否
+     *                        source            注册来源: 0网站 1小程序
+     *                        userName          用户名
+     *                        bindMobile        企业绑定手机号
+     *                        password          密码
+     *                        unionId           微信unionId
+     *                        nickName          微信昵称
+     *                        avatarUrl         微信头像(旧:headimgurl)
+     *                        passWordConfirm   用户确认密码
+     *                        smsCode           短信验证码(旧:activationCode)
+     *                        isAgreed          是否同意勾选同意协议,1是,其他否
      *                        }
      * @param headers         HttpHeaders
      * @return ClubPo
@@ -113,10 +113,14 @@ public class RegisterServiceImpl implements RegisterService{
         }
         // 手机号与验证码校验
         String result = commonService.mobileAndCodeValidate(clubRegisterDto.getBindMobile(), clubRegisterDto.getSmsCode());
-        if (result != null) {return ResponseJson.error(result);}
+        if (result != null) {
+            return ResponseJson.error(result);
+        }
         // 密码校验
         String passResult = ValidateUtil.validatePassWord(clubRegisterDto.getPassword());
-        if (passResult != null) {return ResponseJson.error(passResult);}
+        if (passResult != null) {
+            return ResponseJson.error(passResult);
+        }
         /*
             组装用户数据 user
          */
@@ -162,7 +166,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());
         }
@@ -188,7 +192,7 @@ public class RegisterServiceImpl implements RegisterService{
             保存数据库 club
          */
         int insertClubFlag = registerMapper.insertClub(club);
-        log.info("插入数据库club表,获得clubId:"+club.getClubId());
+        log.info("插入数据库club表,获得clubId:" + club.getClubId());
         if (insertClubFlag < 1) {
             throw new RuntimeException("插入数据库异常club:" + club.toString());
         }
@@ -196,10 +200,10 @@ public class RegisterServiceImpl implements RegisterService{
         user.setClubId(club.getClubId());
         registerMapper.updateUserClubId(user.getUserId(), club.getClubId());
         // 注册成功短信
-        boolean smsFlag = AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 7, "{name:"+ clubRegisterDto.getBindMobile() +",password:"+ clubRegisterDto.getPassword() +"}");
+        boolean smsFlag = AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 7, "{name:" + clubRegisterDto.getBindMobile() + ",password:" + clubRegisterDto.getPassword() + "}");
         if (!smsFlag) {
             // 短信发送失败重试一次
-            AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 7, "{name:"+ clubRegisterDto.getBindMobile() +",password:"+ clubRegisterDto.getPassword() +"}");
+            AliyunSmsUtil.sendSms(clubRegisterDto.getBindMobile(), 7, "{name:" + clubRegisterDto.getBindMobile() + ",password:" + clubRegisterDto.getPassword() + "}");
         }
         /*
             绑定微信,成为机构运营人员
@@ -242,7 +246,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());
             }
@@ -256,29 +260,29 @@ public class RegisterServiceImpl implements RegisterService{
      * 普通机构升级会员机构
      *
      * @param upgradeDto ClubUpgradeDto:{
-     *                      clubId                 机构ID
-     *                      userId                 用户ID
-     *                      name                   机构名称
-     *                      shortName                  机构简称
-     *                      contractEmail          邮箱(contractEmail1)
-     *                      contractPhone          固定电话
-     *                      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)
-     *                      fax                    传真
-     *                      profile                公司简介
-     *                  }
-     * @param headers   HttpHeaders
+     *                   clubId                 机构ID
+     *                   userId                 用户ID
+     *                   name                   机构名称
+     *                   shortName                  机构简称
+     *                   contractEmail          邮箱(contractEmail1)
+     *                   contractPhone          固定电话
+     *                   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)
+     *                   fax                    传真
+     *                   profile                公司简介
+     *                   }
+     * @param headers    HttpHeaders
      * @return ClubPo
      */
     @Override
@@ -309,7 +313,7 @@ public class RegisterServiceImpl implements RegisterService{
         if (null == upgradeDto.getFirstClubType()) {
             return ResponseJson.error("参数异常:一级分类不能为空!");
         }
-        if (upgradeDto.getFirstClubType() == 1){
+        if (upgradeDto.getFirstClubType() == 1) {
             // 医美分类
             if (upgradeDto.getSecondClubType() == null || StringUtils.isBlank(upgradeDto.getMedicalPracticeLicense())) {
                 return ResponseJson.error("医美分类下参数异常,医美的二级分类为空或医疗执业许可证为空");
@@ -320,9 +324,13 @@ public class RegisterServiceImpl implements RegisterService{
             return ResponseJson.error("该邮箱已被使用");
         }
         String nameCheck = ValidateUtil.validateClubName(upgradeDto.getName());
-        if (nameCheck != null) {return ResponseJson.error(nameCheck);}
+        if (nameCheck != null) {
+            return ResponseJson.error(nameCheck);
+        }
         String socialCodeResult = ValidateUtil.validateSocialCreditCode(upgradeDto.getSocialCreditCode());
-        if (socialCodeResult != null) {return ResponseJson.error(socialCodeResult);}
+        if (socialCodeResult != null) {
+            return ResponseJson.error(socialCodeResult);
+        }
         // 更新用户数据 user
         UserPo user = new UserPo();
         user.setUserId(upgradeDto.getUserId());
@@ -367,7 +375,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());
             // 门诊和医院则需要填写科室
@@ -419,7 +427,7 @@ public class RegisterServiceImpl implements RegisterService{
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResponseJson clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers) {
+    public ResponseJson<Integer> clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers) {
         Integer isAgreed = onlineDto.getIsAgreed();
         // 打印IP
         String ip = headers.getFirst("X-CLIENT-IP");
@@ -428,16 +436,16 @@ public class RegisterServiceImpl implements RegisterService{
         String mobile = onlineDto.getBindMobile();
         // 参数校验
         if (null == onlineDto.getUserId()) {
-            return ResponseJson.error("参数异常:用户Id不能为空!");
+            return ResponseJson.error("参数异常:用户Id不能为空!", null);
         }
         if (StringUtils.isBlank(mobile)) {
-            return ResponseJson.error("参数异常:企业绑定手机号不能为空!");
+            return ResponseJson.error("参数异常:企业绑定手机号不能为空!", null);
         }
         if (StringUtils.isBlank(onlineDto.getLinkMan())) {
-            return ResponseJson.error("参数异常:联系人不能为空!");
+            return ResponseJson.error("参数异常:联系人不能为空!", null);
         }
         if (null == isAgreed || 1 != isAgreed) {
-            return ResponseJson.error("请勾选同意协议");
+            return ResponseJson.error("请勾选同意协议", null);
         }
         // 是否填写升级资料
         String businessLicense = onlineDto.getBusinessLicense();
@@ -445,20 +453,26 @@ public class RegisterServiceImpl implements RegisterService{
         if (StringUtils.isNotBlank(businessLicense)) {
             // 邮箱验证
             String emailCheck = commonService.emailValidate(email);
-            if (emailCheck != null) {return ResponseJson.error(emailCheck);}
+            if (emailCheck != null) {
+                return ResponseJson.error(emailCheck, null);
+            }
             // 机构名称检查
             String nameCheck = ValidateUtil.validateClubName(onlineDto.getName());
-            if (nameCheck != null) {return ResponseJson.error(nameCheck);}
-            if (onlineDto.getFirstClubType() == 1){
+            if (nameCheck != null) {
+                return ResponseJson.error(nameCheck, null);
+            }
+            if (onlineDto.getFirstClubType() == 1) {
                 // 医美分类
                 if (onlineDto.getSecondClubType() == null || StringUtils.isBlank(onlineDto.getMedicalPracticeLicense())) {
-                    return ResponseJson.error("医美分类下参数异常,医美的二级分类为空或医疗执业许可证为空");
+                    return ResponseJson.error("医美分类下参数异常,医美的二级分类为空或医疗执业许可证为空", null);
                 }
             }
         }
         // 手机号验证
         String result = commonService.mobileAndCodeValidate(mobile, null);
-        if (result != null) {return ResponseJson.error(result);}
+        if (result != null) {
+            return ResponseJson.error(result, null);
+        }
         // 获取协销信息
         Integer userId = onlineDto.getUserId();
         ServiceProviderVo serviceProvider = loginMapper.getServiceProviderByUserId(userId);
@@ -518,7 +532,7 @@ public class RegisterServiceImpl implements RegisterService{
         }
         /* 保存数据库 user */
         int insertUserFlag = registerMapper.insertClubUser(user);
-        log.info("插入数据库User表,获得userId:"+user.getUserId());
+        log.info("插入数据库User表,获得userId:" + user.getUserId());
         if (insertUserFlag < 1) {
             throw new RuntimeException("插入数据库异常user:" + user.toString());
         }
@@ -562,7 +576,7 @@ public class RegisterServiceImpl implements RegisterService{
             club.setSocialCreditCode(onlineDto.getSocialCreditCode());
             // 分类: 1医美, 2生美
             club.setFirstClubType(onlineDto.getFirstClubType());
-            if (onlineDto.getFirstClubType() == 1){
+            if (onlineDto.getFirstClubType() == 1) {
                 // 医美二级分类: 1诊所、2门诊、3医院
                 club.setSecondClubType(onlineDto.getSecondClubType());
                 // 门诊和医院则需要填写科室
@@ -575,7 +589,7 @@ public class RegisterServiceImpl implements RegisterService{
             /*
                 保存数据库(会员机构) club
              */
-             insertClubFlag = registerMapper.insertUpgradeClub(club);
+            insertClubFlag = registerMapper.insertUpgradeClub(club);
         } else {
             // 机构名称
             club.setName(onlineDto.getLinkMan());
@@ -588,7 +602,7 @@ public class RegisterServiceImpl implements RegisterService{
              */
             insertClubFlag = registerMapper.insertClub(club);
         }
-        log.info("插入数据库club表,获得clubId:"+club.getClubId());
+        log.info("插入数据库club表,获得clubId:" + club.getClubId());
         if (insertClubFlag < 1) {
             throw new RuntimeException("插入数据库异常club:" + club.toString());
         }
@@ -610,16 +624,16 @@ public class RegisterServiceImpl implements RegisterService{
             logTxt = String.format(logTxt, "普通机构", mobile, initPassword);
         }
         // 发送短信
-        boolean smsFlag = AliyunSmsUtil.sendSms(mobile, smsType, "{name:"+ mobile +",password:"+ initPassword +"}");
+        boolean smsFlag = AliyunSmsUtil.sendSms(mobile, smsType, "{name:" + mobile + ",password:" + initPassword + "}");
         if (!smsFlag) {
             // 短信发送失败重试一次
-            AliyunSmsUtil.sendSms(mobile, smsType, "{name:"+ mobile +",password:"+ initPassword +"}");
+            AliyunSmsUtil.sendSms(mobile, smsType, "{name:" + mobile + ",password:" + initPassword + "}");
         }
         // 打印短信内容
         log.info(logTxt);
 
         // 返回状态
-        return ResponseJson.success();
+        return ResponseJson.success(user.getUserId());
     }
 
     /**
@@ -642,7 +656,7 @@ public class RegisterServiceImpl implements RegisterService{
      *                        firstShopType         医疗=1和非医疗=2
      *                        secondShopType        医疗的二级分类 一类器械=1、二类器械 =2、三类器械=3、其他=4 /// 1和非医疗没有二级分类
      *                        mainProduct           主打项目(mainpro)
-     *                    }
+     *                        }
      * @param passWordConfirm 用户确认密码
      * @param smsCode         短信验证码(旧:activationCode)
      * @param isAgreed        是否同意勾选同意协议,1是,其他否
@@ -674,7 +688,9 @@ public class RegisterServiceImpl implements RegisterService{
         }
         // 手机号与验证码校验
         String result = commonService.mobileAndCodeValidate(shopRegisterDto.getBindMobile(), smsCode);
-        if (result != null) {return ResponseJson.error(result, null);}
+        if (result != null) {
+            return ResponseJson.error(result, null);
+        }
         // 小程序第一步校验完成
         if (1 == whichStep) {
             return ResponseJson.success(null);
@@ -799,8 +815,8 @@ public class RegisterServiceImpl implements RegisterService{
     }
 
     /**
-     * @param shop            ShopApplyDto
-     * @param headers         HttpHeaders
+     * @param shop    ShopApplyDto
+     * @param headers HttpHeaders
      * @return ShopPo
      */
     @Override