Kaynağa Gözat

运营人员绑定

chao 4 yıl önce
ebeveyn
işleme
e085d08ed9

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

@@ -35,16 +35,15 @@ public class LoginApi {
      *
      * @param loginPasswordDto {
      *                           mobileOrEmail 手机号或邮箱
-     *                           password 密码
+     *                           password      密码
+     *                           unionId       微信unionId
      *                         }
      * @return UserLoginVo
      */
     @ApiOperation("登录(用户名,密码)")
     @PostMapping("/password")
     public ResponseJson<UserLoginVo> passwordLogin(LoginPasswordDto loginPasswordDto) {
-        String mobileOrEmail = loginPasswordDto.getMobileOrEmail();
-        String password = loginPasswordDto.getPassword();
-        return loginService.passwordLogin(mobileOrEmail, password);
+        return loginService.passwordLogin(loginPasswordDto);
     }
 
     /**
@@ -194,17 +193,15 @@ public class LoginApi {
      *                         mobile    手机号
      *                         smsCode   手机验证码(verificationCode)
      *                         unionId   微信unionId
+     *                         nickName       微信昵称
+     *                         avatarUrl      微信头像(headimgurl)
      *                     }
      * @return UserLoginVo
      */
     @ApiOperation("运营人员绑定微信")
     @PostMapping("/auth/bind")
     public ResponseJson<UserLoginVo> operationBindWeChat(AuthBindDto authBindDto) {
-        Integer userId = authBindDto.getUserId();
-        String mobile = authBindDto.getMobile();
-        String smsCode = authBindDto.getSmsCode();
-        String unionId = authBindDto.getUnionId();
-        return loginService.operationBindWeChat(userId, mobile, smsCode, unionId);
+        return loginService.operationBindWeChat(authBindDto);
     }
 
 

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

@@ -31,7 +31,7 @@ public class RegisterApi {
      *
      * @param mobileOrEmail 手机号或邮箱
      */
-    @ApiOperation("检查账号可以注册")
+    @ApiOperation("检查账号是否可以注册")
     @ApiImplicitParam(required = true, name = "mobileOrEmail", value = "手机号或邮箱")
     @GetMapping("/check")
     public ResponseJson registerCheck(String mobileOrEmail) {

+ 10 - 1
src/main/java/com/caimei365/user/model/dto/AuthBindDto.java

@@ -40,5 +40,14 @@ public class AuthBindDto implements Serializable {
     @NotNull
     @ApiModelProperty("微信unionId")
     private String unionId;
-
+    /**
+     * 微信昵称
+     */
+    @ApiModelProperty("微信昵称")
+    private String nickName;
+    /**
+     * 微信头像(headimgurl)
+     */
+    @ApiModelProperty("微信头像(headimgurl)")
+    private String avatarUrl;
 }

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

@@ -12,6 +12,10 @@ import java.io.Serializable;
  */
 @Data
 public class UserPo implements Serializable {
+    /**
+     * 组织ID
+     */
+    private Integer organizeId;
     /**
      * 用户ID
      */

+ 17 - 8
src/main/java/com/caimei365/user/service/LoginService.java

@@ -1,6 +1,8 @@
 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.vo.UserLoginVo;
 import org.springframework.http.HttpHeaders;
 
@@ -18,11 +20,14 @@ public interface LoginService {
     /**
      * 登录(用户名,密码)
      *
-     * @param mobileOrEmail 手机号或邮箱
-     * @param password      密码
+     * @param loginPasswordDto {
+     *                           mobileOrEmail 手机号或邮箱
+     *                           password      密码
+     *                           unionId       微信unionId
+     *                         }
      * @return BaseUser
      */
-    ResponseJson<UserLoginVo> passwordLogin(String mobileOrEmail, String password);
+    ResponseJson<UserLoginVo> passwordLogin(LoginPasswordDto loginPasswordDto);
 
     /**
      * 微信授权登录(小程序)
@@ -90,11 +95,15 @@ public interface LoginService {
     /**
      * 运营人员绑定微信
      *
-     * @param userId    要绑定的用户Id(userID)
-     * @param mobile    手机号
-     * @param smsCode   手机验证码(verificationCode)
-     * @param smsCode   微信unionId
+     * @param authBindDto {
+     *                         userId    要绑定的用户Id(userID)
+     *                         mobile    手机号
+     *                         smsCode   手机验证码(verificationCode)
+     *                         unionId   微信unionId
+     *                         nickName       微信昵称
+     *                         avatarUrl      微信头像(headimgurl)
+     *                     }
      * @return OperationPo
      */
-    ResponseJson<UserLoginVo> operationBindWeChat(Integer userId, String mobile, String smsCode, String unionId);
+    ResponseJson<UserLoginVo> operationBindWeChat(AuthBindDto authBindDto);
 }

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

@@ -3,10 +3,11 @@ package com.caimei365.user.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei365.user.components.WeChatService;
-import com.caimei365.user.mapper.BaseMapper;
 import com.caimei365.user.mapper.LoginMapper;
 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.po.OperationPo;
 import com.caimei365.user.model.vo.UserLoginVo;
 import com.caimei365.user.service.LoginService;
@@ -50,12 +51,18 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 登录(用户名,密码)
      *
-     * @param mobileOrEmail 手机号或邮箱
-     * @param password      密码
+     * @param loginPasswordDto {
+     *                           mobileOrEmail 手机号或邮箱
+     *                           password      密码
+     *                           unionId       微信unionId
+     *                         }
      * @return BaseUser
      */
     @Override
-    public ResponseJson<UserLoginVo> passwordLogin(String mobileOrEmail, String password) {
+    public ResponseJson<UserLoginVo> passwordLogin(LoginPasswordDto loginPasswordDto) {
+        String mobileOrEmail = loginPasswordDto.getMobileOrEmail();
+        String password = loginPasswordDto.getPassword();
+        String unionId = loginPasswordDto.getUnionId();
         if (StringUtils.isBlank(mobileOrEmail)) {
             return ResponseJson.error("请填写账户名", null);
         }
@@ -65,6 +72,9 @@ public class LoginServiceImpl implements LoginService {
         //处理比对密码
         UserLoginVo baseUser = loginMapper.getLoginUserByMobileOrEmail(mobileOrEmail);
         if (baseUser != null) {
+            // 如果前端传入unionId,则存入返回前端
+            baseUser.setUnionId(unionId);
+            // 比对密码
             String md5Password = Md5Util.md5(password);
             String dbPassword = baseUser.getPassword();
             if (md5Password.equals(dbPassword)) {
@@ -417,14 +427,24 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 运营人员绑定微信
      *
-     * @param userId    要绑定的用户Id(userID)
-     * @param mobile    手机号
-     * @param smsCode   手机验证码(verificationCode)
-     * @param unionId   微信unionId
+     * @param authBindDto {
+     *                         userId    要绑定的用户Id(userID)
+     *                         mobile    手机号
+     *                         smsCode   手机验证码(verificationCode)
+     *                         unionId   微信unionId
+     *                         nickName       微信昵称
+     *                         avatarUrl      微信头像(headimgurl)
+     *                     }
      * @return OperationPo
      */
     @Override
-    public ResponseJson<UserLoginVo> operationBindWeChat(Integer userId, String mobile, String smsCode, String unionId) {
+    public ResponseJson<UserLoginVo> operationBindWeChat(AuthBindDto authBindDto) {
+        Integer userId = authBindDto.getUserId();
+        String mobile = authBindDto.getMobile();
+        String smsCode = authBindDto.getSmsCode();
+        String unionId = authBindDto.getUnionId();
+        String nickName = authBindDto.getNickName();
+        String avatarUrl = authBindDto.getAvatarUrl();
         // 参数校验
         if (null == userId || StringUtils.isBlank(mobile) || StringUtils.isBlank(smsCode)) {
             return ResponseJson.error("参数异常", null);
@@ -443,7 +463,8 @@ public class LoginServiceImpl implements LoginService {
         boolean b = userByMobile != null && !userId.equals(userByMobile.getUserId());
         if (operationByMobile != null) {
             userByMobile = loginMapper.getLoginUserByUserId(operationByMobile.getUserId());
-            if (b || (91 != userByMobile.getClubStatus() && 91 != userByMobile.getShopStatus())) {
+            boolean b2 = (null != userByMobile.getClubStatus() && 91 != userByMobile.getClubStatus()) || (null != userByMobile.getShopStatus() && 91 != userByMobile.getShopStatus());
+            if (b || b2) {
                 return ResponseJson.error("该手机号已被使用", null);
             } else {
                 // 解绑运营人员
@@ -466,10 +487,14 @@ public class LoginServiceImpl implements LoginService {
         operation.setUserId(userId);
         // 手机号
         operation.setMobile(mobile);
-        // unionId
+        // 微信昵称头像
+        operation.setNickName(nickName);
+        operation.setAvatarUrl(avatarUrl);
+        // unionId,openId
         operation.setUnionId(unionId);
-        // openId
         operation.setOpenId(openId);
+        // 组织机构0
+        operation.setOrganizeId(0);
         // 绑定的机构/供应商Id,绑定的用户类型
         if (user != null && 3 == user.getUserIdentity() ) {
             operation.setShopId(user.getShopId());

+ 6 - 0
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -118,6 +118,8 @@ public class RegisterServiceImpl implements RegisterService {
         user.setSource(clubRegisterDto.getSource());
         // 用户类型,供应商1,会员机构3,普通机构4
         user.setRegisterUserTypeId(4);
+        // 采美默认组织机构0
+        user.setOrganizeId(0);
         // 组织名称
         user.setName(clubRegisterDto.getUserName());
         user.setUserName(clubRegisterDto.getUserName());
@@ -439,6 +441,8 @@ public class RegisterServiceImpl implements RegisterService {
         user.setRegisterIp("192.168.1.10");
         // 注册来源: 0网站 1小程序(拉机构上线小程序注册)
         user.setSource(1);
+        // 采美默认组织机构0
+        user.setOrganizeId(0);
         // 用户类型,供应商1,会员机构3,普通机构4
         user.setRegisterUserTypeId(4);
         // 组织名称
@@ -655,6 +659,8 @@ public class RegisterServiceImpl implements RegisterService {
         user.setRegisterIp(ip);
         // 注册来源: 0网站 1小程序
         user.setSource(shopRegisterDto.getSource());
+        // 采美默认组织机构0
+        user.setOrganizeId(0);
         // 密码
         user.setPassword(Md5Util.md5(shopRegisterDto.getPassword()));
         // 用户类型,供应商1,会员机构3,普通机构4

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

@@ -2,8 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.user.mapper.RegisterMapper">
     <insert id="insertClubUser" parameterType="com.caimei365.user.model.po.UserPo" keyProperty="userId" useGeneratedKeys="true">
-        insert into user(`registerTime`, `registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`, `clubStatus`, `password`, `agreeFlag`, `validFlag`, `serviceProviderID`, `serviceProviderStatus`)
-                  values(#{registerTime},#{registerIp},#{source},#{registerUserTypeId},#{name},#{userName},#{bindMobile},#{email},#{userIdentity},#{userPermission},#{clubStatus},#{password},#{agreeFlag},#{validFlag},#{serviceProviderId},#{serviceProviderStatus})
+        insert into user(`userOrganizeID`,`registerTime`,`registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`, `clubStatus`, `password`, `agreeFlag`, `validFlag`, `serviceProviderID`, `serviceProviderStatus`)
+                  values(#{organizeId},#{registerTime},#{registerIp},#{source},#{registerUserTypeId},#{name},#{userName},#{bindMobile},#{email},#{userIdentity},#{userPermission},#{clubStatus},#{password},#{agreeFlag},#{validFlag},#{serviceProviderId},#{serviceProviderStatus})
     </insert>
     <insert id="insertClub" parameterType="com.caimei365.user.model.po.ClubPo" keyProperty="clubId" useGeneratedKeys="true">
         insert into club(`name`, `sname`, `contractMobile`, `linkMan`, `userID`, `addTime`, `status`, `spID`, `scanFlag`)
@@ -18,8 +18,8 @@
                                     values(#{userId},#{clubId},#{organizeId},#{nickName},#{avatarUrl},#{userType},#{mobile},#{linkName},#{status},#{unionId},#{openId},#{addTime},#{updateTime},#{bindTime},#{delFlag})
     </insert>
     <insert id="insertShopUser" parameterType="com.caimei365.user.model.po.UserPo" keyProperty="userId" useGeneratedKeys="true">
-        insert into user(`registerTime`, `registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`, `manufacturerStatus` , `password`, `agreeFlag`, `validFlag`)
-        values(#{registerTime},#{registerIp},#{source},#{registerUserTypeId},#{name},#{userName},#{bindMobile},#{email},#{userIdentity},#{userPermission},#{manufacturerStatus},#{password},#{agreeFlag},#{validFlag})
+        insert into user(`userOrganizeID`,`registerTime`, `registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`, `manufacturerStatus` , `password`, `agreeFlag`, `validFlag`)
+        values(#{organizeId},#{registerTime},#{registerIp},#{source},#{registerUserTypeId},#{name},#{userName},#{bindMobile},#{email},#{userIdentity},#{userPermission},#{manufacturerStatus},#{password},#{agreeFlag},#{validFlag})
     </insert>
     <insert id="insertShop" parameterType="com.caimei365.user.model.po.ShopPo" keyProperty="shopId" useGeneratedKeys="true">
         insert into shop(`userID`, `name`, `sname`, `linkMan`, `contractMobile`, `contractEmail1`, `provinceID`, `cityID`, `townID`, `address`, `socialCreditCode`, `businessLicenseImage`, `firstShopType`, `secondShopType`, `mainpro`, `addTime`, `validFlag`, `status`)