chao 4 лет назад
Родитель
Сommit
b9aa010567

+ 3 - 3
src/main/java/com/caimei365/user/components/WeChatService.java

@@ -167,9 +167,9 @@ public class WeChatService {
         String errCode = jsonObject.getString("errcode");
         String errMsg = jsonObject.getString("errmsg");
         log.info("openId----->" + openId +", unionId------>" + unionId);
-        returnMap.put("openId", openId);
-        returnMap.put("unionId", unionId);
-        returnMap.put("sessionKey", sessionKey);
+        returnMap.put("openid", openId);
+        returnMap.put("unionid", unionId);
+        returnMap.put("session_key", sessionKey);
         boolean errFlag = StringUtils.isNotEmpty(errCode) && ("-1".equals(errCode) || "40029".equals(errCode) || "45011".equals(errCode));
         if (errFlag) {
             return ResponseJson.error(-1, errMsg, returnMap);

+ 5 - 4
src/main/java/com/caimei365/user/controller/BaseApi.java

@@ -81,6 +81,7 @@ public class BaseApi {
      *
      * @param mobile           运营人员手机号
      * @param bindMobile       机构手机号
+     * @param userId           机构Id
      * @param platformType     0:www,1:crm/h5,2:小程序
      * @param isCheckCaptcha   是否检查图片验证码,0:检查,1:不检查
      * @param imgCode          图片验证码
@@ -89,15 +90,15 @@ public class BaseApi {
     @ApiOperation("绑定账号,发送短信验证")
     @ApiImplicitParams({
         @ApiImplicitParam(required = true, name = "mobile", value = "运营人员手机号"),
-        @ApiImplicitParam(required = true, name = "bindMobile", value = "机构手机号"),
+        @ApiImplicitParam(required = false, name = "bindMobile", value = "机构手机号"),
+        @ApiImplicitParam(required = false, name = "userId", value = "机构Id"),
         @ApiImplicitParam(required = false, name = "platformType", value = "0:www,1:crm/h5,2:小程序"),
         @ApiImplicitParam(required = false, name = "isCheckCaptcha", value = "是否检查图片验证码,0:检查,1:不检查"),
         @ApiImplicitParam(required = false, name = "imgCode", value = "图片验证码"),
         @ApiImplicitParam(required = false, name = "token", value = "图片token")
-
     })
     @GetMapping("/sms/bind")
-    public ResponseJson getBindSmsCode(String mobile, String bindMobile, Integer platformType, Integer isCheckCaptcha, String imgCode, String token) {
-        return baseService.getBindSmsCode(mobile, bindMobile, platformType, isCheckCaptcha, imgCode, token);
+    public ResponseJson getBindSmsCode(String mobile, String bindMobile, Integer userId, Integer platformType, Integer isCheckCaptcha, String imgCode, String token) {
+        return baseService.getBindSmsCode(mobile, bindMobile, userId, platformType, isCheckCaptcha, imgCode, token);
     }
 }

+ 21 - 4
src/main/java/com/caimei365/user/controller/LoginApi.java

@@ -1,10 +1,7 @@
 package com.caimei365.user.controller;
 
 import com.caimei365.user.model.ResponseJson;
-import com.caimei365.user.model.dto.AuthAppletsDto;
-import com.caimei365.user.model.dto.AuthBindDto;
-import com.caimei365.user.model.dto.AuthInvitationDto;
-import com.caimei365.user.model.dto.LoginPasswordDto;
+import com.caimei365.user.model.dto.*;
 import com.caimei365.user.model.vo.UserLoginVo;
 import com.caimei365.user.service.LoginService;
 import io.swagger.annotations.*;
@@ -160,6 +157,26 @@ public class LoginApi {
         return loginService.qrCodeAuthScanResult(state);
     }
 
+    /**
+     * 微信扫码后,绑定机构账号
+     *
+     * spi旧接口:/user/bindOrganization
+     *
+     * @param scanBindDto {
+     *                           mobileOrEmail 手机号或邮箱
+     *                           password      密码
+     *                           mobile        手机号
+     *                           smsCode       手机验证码
+     *                           unionId       微信unionId
+     *                           linkName      联系人
+     *                     }
+     */
+    @ApiOperation("微信扫码后绑定机构账号")
+    @PostMapping("/auth/scan/bind")
+    public ResponseJson<UserLoginVo> qrCodeAuthScanBind(ScanBindDto scanBindDto){
+        return loginService.qrCodeAuthScanBind(scanBindDto);
+    }
+
     /**
      * 运营人员邀请码授权登录
      *

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

@@ -25,17 +25,17 @@ public class RegisterApi {
 
 
     /**
-     * 检查账号可以注册
+     * 检查手机号是否可以注册
      *
      * spi旧接口:/seller/club/check
      *
-     * @param mobileOrEmail 手机号或邮箱
+     * @param bindMobile 手机号
      */
-    @ApiOperation("检查号是否可以注册")
-    @ApiImplicitParam(required = true, name = "mobileOrEmail", value = "手机号或邮箱")
+    @ApiOperation("检查手机号是否可以注册")
+    @ApiImplicitParam(required = true, name = "bindMobile", value = "手机号或邮箱")
     @GetMapping("/check")
-    public ResponseJson registerCheck(String mobileOrEmail) {
-        return registerService.registerCheck(mobileOrEmail);
+    public ResponseJson registerCheck(String bindMobile) {
+        return registerService.registerCheck(bindMobile);
     }
 
     /**

+ 7 - 0
src/main/java/com/caimei365/user/mapper/BaseMapper.java

@@ -19,6 +19,13 @@ public interface BaseMapper {
      * @return userId
      */
     Integer getUserIdByEmail(@Param("email") String email);
+
+    /**
+     * 根据用户Id查询用户是否存在
+     * @param userId   用户Id
+     * @return
+     */
+    Integer getUserIdByUserId(Integer userId);
     /**
      * 根据手机号获取用户Id
      *

+ 55 - 0
src/main/java/com/caimei365/user/model/dto/ScanBindDto.java

@@ -0,0 +1,55 @@
+package com.caimei365.user.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/3/29
+ */
+@ApiModel("微信扫码后绑定机构账号")
+@Data
+public class ScanBindDto implements Serializable {
+    /**
+     * 手机号或邮箱
+     */
+    @NotNull
+    @ApiModelProperty("手机号或邮箱")
+    private String mobileOrEmail;
+    /**
+     * 密码
+     */
+    @NotNull
+    @ApiModelProperty("密码")
+    private String password;
+    /**
+     * 手机号
+     */
+    @NotNull
+    @ApiModelProperty("手机号")
+    private String mobile;
+    /**
+     * 手机验证码
+     */
+    @NotNull
+    @ApiModelProperty("手机验证码")
+    private String smsCode;
+    /**
+     * 微信unionId
+     */
+    @NotNull
+    @ApiModelProperty("微信unionId")
+    private String unionId;
+    /**
+     * 联系人
+     */
+    @NotNull
+    @ApiModelProperty("联系人")
+    private String linkName;
+}

+ 4 - 0
src/main/java/com/caimei365/user/model/po/OperationPo.java

@@ -70,6 +70,10 @@ public class OperationPo implements Serializable {
      * 微信openId
      */
     private String openId;
+    /**
+     * 微信openId(Pc)
+     */
+    private String pcOpenId;
     /**
      * 添加时间
      */

+ 2 - 1
src/main/java/com/caimei365/user/service/BaseService.java

@@ -47,10 +47,11 @@ public interface BaseService {
      *
      * @param mobile           运营人员手机号
      * @param bindMobile       机构手机号
+     * @param userId           机构Id
      * @param platformType     0:www,1:crm/h5,2:小程序
      * @param isCheckCaptcha   是否检查图片验证码,0:检查,1:不检查
      * @param imgCode          图片验证码
      * @param token            图片验证码token
      */
-    ResponseJson getBindSmsCode(String mobile, String bindMobile, Integer platformType, Integer isCheckCaptcha, String imgCode, String token);
+    ResponseJson getBindSmsCode(String mobile, String bindMobile, Integer userId, Integer platformType, Integer isCheckCaptcha, String imgCode, String token);
 }

+ 14 - 0
src/main/java/com/caimei365/user/service/LoginService.java

@@ -3,6 +3,7 @@ package com.caimei365.user.service;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.AuthBindDto;
 import com.caimei365.user.model.dto.LoginPasswordDto;
+import com.caimei365.user.model.dto.ScanBindDto;
 import com.caimei365.user.model.vo.UserLoginVo;
 import org.springframework.http.HttpHeaders;
 
@@ -81,6 +82,19 @@ public interface LoginService {
      */
     ResponseJson<UserLoginVo> qrCodeAuthScanResult(String state);
 
+    /**
+     * 微信扫码后,绑定机构账号
+     *
+     * @param scanBindDto {
+     *                           mobileOrEmail 手机号或邮箱
+     *                           password      密码
+     *                           mobile        手机号
+     *                           smsCode       手机验证码
+     *                           linkName      联系人
+     *                     }
+     */
+    ResponseJson<UserLoginVo> qrCodeAuthScanBind(ScanBindDto scanBindDto);
+
     /**
      * 邀请码登录
      *

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

@@ -16,10 +16,10 @@ public interface RegisterService {
 
     /**
      * 检查账号可以注册
-     * @param mobileOrEmail 手机号或邮箱
+     * @param mobile 手机号
      * @return sucess
      */
-    ResponseJson registerCheck(String mobileOrEmail);
+    ResponseJson registerCheck(String mobile);
     /**
      * 普通机构入驻(注册)
      *

+ 15 - 6
src/main/java/com/caimei365/user/service/impl/BaseServiceImpl.java

@@ -158,11 +158,10 @@ public class BaseServiceImpl implements BaseService {
      * @param token          图片验证码token
      */
     @Override
-    public ResponseJson getBindSmsCode(String mobile, String bindMobile, Integer platformType, Integer isCheckCaptcha, String imgCode, String token) {
+    public ResponseJson getBindSmsCode(String mobile, String bindMobile, Integer userId, Integer platformType, Integer isCheckCaptcha, String imgCode, String token) {
         // 验证手机号
         ResponseJson mobileModel = ValidateUtil.validateMobile(mobile);
-        ResponseJson bindMobileModel = ValidateUtil.validateMobile(bindMobile);
-        if (mobileModel.getCode() == -1 || bindMobileModel.getCode() == -1) {
+        if (mobileModel.getCode() == -1) {
             return mobileModel;
         }
         // 检查图片验证码
@@ -172,9 +171,19 @@ public class BaseServiceImpl implements BaseService {
                 return ResponseJson.error("图片验证码错误");
             }
         }
-        // 根据手机号查询用户Id
-        Integer userId = baseMapper.getUserIdByMobile(bindMobile);
-        if (null == userId){
+        Integer dbUserId = null;
+        if (StringUtils.isNotBlank(bindMobile)){
+            ResponseJson bindMobileModel = ValidateUtil.validateMobile(bindMobile);
+            if (bindMobileModel.getCode() == -1) {
+                return bindMobileModel;
+            }
+            // 根据手机号查询用户Id
+            dbUserId = baseMapper.getUserIdByMobile(bindMobile);
+        } else if(null != userId) {
+            // 根据用户Id查询用户是否存在
+            dbUserId = baseMapper.getUserIdByUserId(userId);
+        }
+        if (null == dbUserId){
             return ResponseJson.error("你输入的账号不存在");
         }
         Integer operationUserId = baseMapper.getOperationUserIdByMobile(mobile);

+ 13 - 6
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -112,14 +112,16 @@ public class ClubServiceImpl implements ClubService {
     public ResponseJson<ClubUpdateDto> updateClubUserInfo(ClubUpdateDto club) {
         // 参数校验
         if (club.getClubId() == null || club.getUserId() == null || StringUtils.isBlank(club.getLinkMan())
-        || StringUtils.isBlank(club.getName()) || StringUtils.isBlank(club.getContractEmail())) {
+        || StringUtils.isBlank(club.getContractPhone())) {
             return ResponseJson.error("参数异常", null);
         }
-        UserPo user = new UserPo();
-        Integer userIdByEmail = baseMapper.getUserIdByEmail(club.getContractEmail());
-        if (null != userIdByEmail && !userIdByEmail.equals(club.getUserId()) ) {
-            return ResponseJson.error("该邮箱已被使用", null);
+        if (StringUtils.isNotBlank(club.getContractEmail())) {
+            Integer userIdByEmail = baseMapper.getUserIdByEmail(club.getContractEmail());
+            if (null != userIdByEmail && !userIdByEmail.equals(club.getUserId()) ) {
+                return ResponseJson.error("该邮箱已被使用", null);
+            }
         }
+        UserPo user = new UserPo();
         // 邮箱
         user.setEmail(club.getContractEmail());
         // 用户Id
@@ -127,7 +129,12 @@ public class ClubServiceImpl implements ClubService {
         // 用户名
         user.setUserName(club.getLinkMan());
         // 组织名称
-        user.setName(club.getName());
+        if (StringUtils.isNotBlank(club.getName())){
+            user.setName(club.getName());
+        } else {
+            // 用户名
+            user.setName(club.getLinkMan());
+        }
         // 更新机构用户信息
         clubMapper.updateClubUserByUpdateInfo(user);
         // 更新机构信息

+ 130 - 33
src/main/java/com/caimei365/user/service/impl/LoginServiceImpl.java

@@ -10,6 +10,7 @@ import com.caimei365.user.mapper.RegisterMapper;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.dto.AuthBindDto;
 import com.caimei365.user.model.dto.LoginPasswordDto;
+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;
@@ -115,17 +116,17 @@ public class LoginServiceImpl implements LoginService {
             return ResponseJson.error(appletsInfo.getMsg(), null);
         }
         Map<String, Object> infoData = appletsInfo.getData();
-        String openId = (String) infoData.get("openId");
-        String unionId = (String) infoData.get("unionId");
-        String sessionKey = (String) infoData.get("sessionKey");
+        String openId = (String) infoData.get("openid");
+        String unionId = (String) infoData.get("unionid");
+        String sessionKey = (String) infoData.get("session_key");
         try {
             if (StringUtils.isEmpty(unionId) || StringUtils.isBlank(unionId)) {
                 String result = WeChatService.decrypt(encryptedData, sessionKey, iv, "UTF-8");
                 log.info("解密数据>>>>>>" + result);
                 Map parseMap = JSONObject.parseObject(result, Map.class);
                 assert parseMap != null;
-                unionId = parseMap.get("unionId").toString();
-                infoData.put("unionId", unionId);
+                unionId = parseMap.get("unionid").toString();
+                infoData.put("unionid", unionId);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -231,7 +232,7 @@ public class LoginServiceImpl implements LoginService {
                 operation = new UserLoginVo();
                 operation.setOpenId(openId);
                 operation.setUnionId(unionId);
-                return ResponseJson.error("您的微信尚未绑定任何机构", operation);
+                return ResponseJson.error(-4, "您的微信尚未绑定任何机构", operation);
             } else {
                 // 表示 openId存在, unionId不存在
                 operationMapper.updateOperationUnionId(operation.getUserId(), unionId);
@@ -360,6 +361,89 @@ public class LoginServiceImpl implements LoginService {
         return operationAuthLogin(openId, unionId, "www");
     }
 
+    /**
+     * 微信扫码后,绑定机构账号
+     *
+     * @param scanBindDto {
+     *                    mobileOrEmail 手机号或邮箱
+     *                    password      密码
+     *                    mobile        手机号
+     *                    smsCode       手机验证码
+     *                    linkName      联系人
+     *                    }
+     */
+    @Override
+    public ResponseJson<UserLoginVo> qrCodeAuthScanBind(ScanBindDto scanBindDto) {
+        String mobileOrEmail = scanBindDto.getMobileOrEmail();
+        String password = scanBindDto.getPassword();
+        String mobile = scanBindDto.getMobile();
+        String smsCode = scanBindDto.getSmsCode();
+        String linkName = scanBindDto.getLinkName();
+        String unionId = scanBindDto.getUnionId();
+        //处理比对密码
+        UserLoginVo user = loginMapper.getLoginUserByMobileOrEmail(mobileOrEmail);
+        String md5Password = Md5Util.md5(password);
+        if (null != user && md5Password.equals(user.getPassword())) {
+            // 查询使用该手机号的运营人员或用户
+            String checkRust = operationBindCheck(mobile, smsCode);
+            if (checkRust != null) {
+                return ResponseJson.error(checkRust, null);
+            }
+            Map<Object, Object> infoData = redisService.getEntries("wxInfo:website:" + unionId);
+            log.info("扫码绑定微信, 获取unionId>>>>>>" + unionId);
+            String openId = (String) infoData.get("openid");
+            String nickName = (String) infoData.get("nickname");
+            String avatarUrl = (String) infoData.get("headimgurl");
+            // 判断微信是否已经绑定
+            UserLoginVo operationByUnionId = loginMapper.getLoginUserByUnionId(unionId,"www");
+            if (operationByUnionId != null) {
+                return ResponseJson.error("该微信已绑定,请重新刷新首页", null);
+            }
+            /*
+                组装运营人员数据 operation
+             */
+            OperationPo operation = new OperationPo();
+            // 用户Id
+            operation.setUserId(user.getUserId());
+            // 手机号
+            operation.setMobile(mobile);
+            operation.setLinkName(linkName);
+            // 微信昵称头像
+            operation.setNickName(nickName);
+            operation.setAvatarUrl(avatarUrl);
+            // unionId,openId
+            operation.setUnionId(unionId);
+            operation.setPcOpenId(openId);
+            // 组织机构0
+            operation.setOrganizeId(0);
+            // 绑定的机构/供应商Id,绑定的用户类型
+            if (user != null && 3 == user.getUserIdentity() ) {
+                operation.setShopId(user.getShopId());
+                operation.setUserType(2);
+            } else if (user != null) {
+                operation.setClubId(user.getClubId());
+                operation.setUserType(1);
+            }
+            // 绑定状态
+            operation.setStatus(2);
+            // 删除标识
+            operation.setDelFlag(0);
+            Date time = new Date();
+            // 添加时间
+            operation.setAddTime(time);
+            // 绑定时间
+            operation.setBindTime(time);
+            // 更新时间
+            operation.setUpdateTime(time);
+            /*
+                保存数据库 operation
+             */
+            registerMapper.insertOperation(operation);
+            return logonVerify(user);
+        }
+        return ResponseJson.error("输入的密码和账户名不匹配", null);
+    }
+
     /**
      * 邀请码登录
      *
@@ -391,10 +475,10 @@ public class LoginServiceImpl implements LoginService {
         }
         // 用户身份:1机构,2供应商
         int userIdentity = 3 == operation.getUserIdentity() ? 2 : 1;
-        if (operation.getClubStatus() != null && 1 == userIdentity && 91 != operation.getClubStatus()) {
+        if (1 == userIdentity && operation.getClubStatus() != null && 91 == operation.getClubStatus()) {
             return ResponseJson.error("您的机构已冻结", null);
         }
-        if (operation.getShopStatus() != null && 2 == userIdentity && 91 != operation.getShopStatus()) {
+        if (2 == userIdentity && operation.getShopStatus() != null && 91 == operation.getShopStatus()) {
             return ResponseJson.error("您的企业账号已被冻结,请联系客服处理", null);
         }
         if (0 != operation.getDelFlag()) {
@@ -406,7 +490,7 @@ public class LoginServiceImpl implements LoginService {
         operationPo.setUnionId(unionId);
         Map<Object, Object> infoData = redisService.getEntries("wxInfo:applets:" + unionId);
         // 微信openId
-        operationPo.setOpenId((String) infoData.get("openId"));
+        operationPo.setOpenId((String) infoData.get("openid"));
         // 微信昵称
         operationPo.setNickName(nickName);
         // 微信头像
@@ -456,33 +540,14 @@ public class LoginServiceImpl implements LoginService {
         if (null == userId || StringUtils.isBlank(mobile) || StringUtils.isBlank(smsCode)) {
             return ResponseJson.error("参数异常", null);
         }
-        String redisSmsCode = (String) redisService.get("code:" + mobile);
-        if (!redisSmsCode.equals(smsCode)) {
-            return ResponseJson.error("手机验证码错误", null);
-        }
-        // 手机号验证
-        String result = commonService.mobileAndCodeValidate(mobile, null);
-        if (result != null) {
-            // 查询使用该手机号的运营人员或用户
-            UserLoginVo dbUser = loginMapper.getLoginUserByMobile(mobile);
-            boolean offlineClub = false;
-            boolean offlineShop = false;
-            if (null != dbUser){
-                // 已下线机构
-                offlineClub = null != dbUser.getClubStatus() && 91 == dbUser.getClubStatus();
-                // 已下线供应商
-                offlineShop = null != dbUser.getShopStatus() && 91 == dbUser.getShopStatus();
-            }
-            if (offlineClub || offlineShop) {
-                // 解绑已下线的运营人员
-                unbindOperation(dbUser.getOperationId());
-            } else {
-                return ResponseJson.error(result, null);
-            }
+        // 查询使用该手机号的运营人员或用户
+        String checkRust = operationBindCheck(mobile, smsCode);
+        if (checkRust != null) {
+            return ResponseJson.error(checkRust, null);
         }
         Map<Object, Object> infoData = redisService.getEntries("wxInfo:applets:" + unionId);
         log.info("绑定微信bindingWx,获取unionId>>>>>>" + unionId);
-        String openId = (String) infoData.get("openId");
+        String openId = (String) infoData.get("openid");
         // 判断微信是否已经绑定
         UserLoginVo operationByUnionId = loginMapper.getLoginUserByUnionId(unionId,"mini");
         if (operationByUnionId != null) {
@@ -532,6 +597,38 @@ public class LoginServiceImpl implements LoginService {
         registerMapper.insertOperation(operation);
         return ResponseJson.success("绑定微信成功", user);
     }
+
+    /**
+     * 查询使用该手机号的运营人员或用户
+     */
+    private String operationBindCheck(String mobile, String smsCode) {
+        String redisSmsCode = (String) redisService.get("code:" + mobile);
+        if (redisSmsCode == null || !redisSmsCode.equals(smsCode)) {
+            return "手机验证码错误";
+        }
+        // 手机号验证
+        String result = commonService.mobileAndCodeValidate(mobile, null);
+        if (result != null) {
+            // 查询使用该手机号的运营人员或用户
+            UserLoginVo dbUser = loginMapper.getLoginUserByMobile(mobile);
+            boolean offlineClub = false;
+            boolean offlineShop = false;
+            if (null != dbUser){
+                // 已下线机构
+                offlineClub = null != dbUser.getClubStatus() && 91 == dbUser.getClubStatus();
+                // 已下线供应商
+                offlineShop = null != dbUser.getShopStatus() && 91 == dbUser.getShopStatus();
+            }
+            if (offlineClub || offlineShop) {
+                // 解绑已下线的运营人员
+                unbindOperation(dbUser.getOperationId());
+            } else {
+                return result;
+            }
+        }
+        return null;
+    }
+
     /**
      * 解绑运营人员
      *

+ 10 - 8
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -51,17 +51,16 @@ public class RegisterServiceImpl implements RegisterService{
     /**
      * 检查账号可以注册
      *
-     * @param mobileOrEmail 手机号或邮箱
+     * @param mobile 手机号
      * @return sucess
      */
     @Override
-    public ResponseJson registerCheck(String mobileOrEmail) {
+    public ResponseJson registerCheck(String mobile) {
         // 手机号验证
-        String mobileResult = commonService.mobileAndCodeValidate(mobileOrEmail, null);
-        if (mobileResult != null) {return ResponseJson.error(mobileResult);}
-        // 邮箱验证
-        String emailResult = commonService.emailValidate(mobileOrEmail);
-        if (emailResult != null) {return ResponseJson.error(emailResult);}
+        String mobileResult = commonService.mobileAndCodeValidate(mobile, null);
+        if (mobileResult != null) {
+            return ResponseJson.error(mobileResult);
+        }
         return ResponseJson.success("该账号可以注册");
     }
 
@@ -214,7 +213,7 @@ public class RegisterServiceImpl implements RegisterService{
             // 微信unionId
             operation.setUnionId(clubRegisterDto.getUnionId());
             Map<Object, Object> infoData = redisService.getEntries("wxInfo:applets:" + clubRegisterDto.getUnionId());
-            String openId = (String) infoData.get("openId");
+            String openId = (String) infoData.get("openid");
             // 微信openId
             operation.setOpenId(openId);
             // 添加时间
@@ -555,6 +554,9 @@ public class RegisterServiceImpl implements RegisterService{
         if (insertClubFlag < 1) {
             throw new RuntimeException("插入数据库异常club:" + club.toString());
         }
+        // user更新clubId
+        user.setClubId(club.getClubId());
+        registerMapper.updateUserClubId(user.getUserId(), club.getClubId());
         /*
          * 操作成功,推送短信给机构,获取账号密码。
          * 协销去后台审核,机构用账号密码登录绑定微信

+ 1 - 1
src/main/java/com/caimei365/user/service/impl/SellerServiceImpl.java

@@ -52,7 +52,7 @@ public class SellerServiceImpl implements SellerService {
         String token = JwtUtil.createToken(seller.getUserId());
         seller.setToken(token);
         Map<Object, Object> infoData = redisService.getEntries("wxInfo:applets:" + unionId);
-        String openId = (String) infoData.get("openId");
+        String openId = (String) infoData.get("openid");
         sellerMapper.updateServiceProviderByUserId(seller.getUserId(), openId, unionId);
         log.info("协销账号密码登录openid>>>>" + openId + " ,unionId>>>>>" + unionId);
         return ResponseJson.success(seller);

+ 28 - 4
src/main/resources/mapper/BaseMapper.xml

@@ -6,6 +6,11 @@
         where email = #{email} and userIdentity in (1,2,3,4)
         limit 1
     </select>
+    <select id="getUserIdByUserId" resultType="java.lang.Integer">
+        select userID from user
+        where userID = #{userId} and userIdentity in (1,2,3,4)
+        limit 1
+    </select>
     <select id="getUserIdByMobile" resultType="java.lang.Integer">
         select u.userID from user u
         left join cm_mall_operation_user cu on cu.userID = u.userID
@@ -42,10 +47,29 @@
         from town where townID = #{townID}
     </select>
     <select id="getUserByUserId" resultType="com.caimei365.user.model.vo.UserVo">
-        select userID as userId,registerUserTypeID as registerUserTypeId,source,clubID as clubId,shopID as shopId,
-               serviceProviderID as serviceProviderId,name,userName,email,mobile,bindMobile,password,
-               userIdentity,userPermission,clubStatus,manufacturerStatus,serviceProviderStatus,auditNote,auditStatus,
-               agreeFlag,registerTime,registerIP as registerIp,validFlag
+        select  userID as userId,
+                registerUserTypeID as registerUserTypeId,
+                source,
+                clubID as clubId,
+                shopID as shopId,
+               serviceProviderID as serviceProviderId,
+               name,
+               userName,
+               email,
+               mobile,
+               bindMobile,
+               password,
+               userIdentity,
+               userPermission,
+               clubStatus,
+               manufacturerStatus,
+               serviceProviderStatus,
+               auditNote,
+               auditStatus,
+               agreeFlag,
+               registerTime,
+               registerIP as registerIp,
+               validFlag
         from user
         where userID = #{userId}
     </select>

+ 2 - 1
src/main/resources/mapper/LoginMapper.xml

@@ -69,7 +69,8 @@
         limit 1
     </select>
     <select id="getServiceProviderUserByOpenId" resultType="com.caimei365.user.model.vo.UserLoginVo">
-        select u.userID as userId,
+        select s.serviceProviderId as serviceProviderId,
+               s.userID as userId,
                u.userName as userName,
                u.mobile as mobile,
                u.bindMobile as bindMobile,

+ 2 - 2
src/main/resources/mapper/RegisterMapper.xml

@@ -14,8 +14,8 @@
                   values(#{name},#{shortName},#{contractMobile},#{linkMan},#{userId},#{addTime},#{status},#{serviceProviderId},#{scanFlag},#{contractEmail},#{linkMan},#{provinceId},#{cityId},#{townId},#{address},#{shopPhoto},#{businessLicense},#{socialCreditCode},#{firstClubType},#{secondClubType},#{department},#{medicalPracticeLicense},#{mainProduct})
     </insert>
     <insert id="insertOperation" parameterType="com.caimei365.user.model.po.OperationPo" keyProperty="id" useGeneratedKeys="true">
-        insert into cm_mall_operation_user(`userID`, `clubID`, `shopID`, `userOrganizeID`,`linkName`, `nickName`, `headimgurl`, `userType`, `mobile`, `linkName`, `status`, `unionId`, `openid`, `addTime`, `updateTime`, `bindTime`, `delFlag`)
-                                    values(#{userId},#{clubId},#{shopId},#{organizeId},#{linkName},#{nickName},#{avatarUrl},#{userType},#{mobile},#{linkName},#{status},#{unionId},#{openId},#{addTime},#{updateTime},#{bindTime},#{delFlag})
+        insert into cm_mall_operation_user(`userID`, `clubID`, `shopID`, `userOrganizeID`,`linkName`,`nickName`,`headimgurl`,`userType`,`mobile`,`status`, `unionId`, `openid`,`pcOpenid`, `addTime`, `updateTime`, `bindTime`, `delFlag`)
+                                    values(#{userId},#{clubId},#{shopId},#{organizeId},#{linkName},#{nickName},#{avatarUrl},#{userType},#{mobile} ,#{status},#{unionId},#{openId},#{pcOpenId},#{addTime},#{updateTime},#{bindTime},#{delFlag})
     </insert>
     <insert id="insertShopUser" parameterType="com.caimei365.user.model.po.UserPo" keyProperty="userId" useGeneratedKeys="true">
         insert into user(`userOrganizeID`,`registerTime`, `registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`, `manufacturerStatus` , `password`, `agreeFlag`, `validFlag`)