Browse Source

ldm版本part3

Aslee 3 years ago
parent
commit
93ab088096

+ 1 - 1
src/main/java/com/caimei/config/WxApiInterceptor.java

@@ -49,7 +49,7 @@ public class WxApiInterceptor implements HandlerInterceptor {
             String[] cacheArr = cacheValue.split(",");
             String[] cacheArr = cacheValue.split(",");
             String mobile = cacheArr[0];
             String mobile = cacheArr[0];
             String appId = cacheArr[1];
             String appId = cacheArr[1];
-            clubUser = clubMapper.getWxClubUser(mobile, appId);
+            clubUser = clubMapper.getWxClubUser(mobile, appId, null);
         } else {
         } else {
             // 服务号登录用户
             // 服务号登录用户
             clubUser = loginMapper.findClubUserByOpenId(cacheValue);
             clubUser = loginMapper.findClubUserByOpenId(cacheValue);

+ 2 - 14
src/main/java/com/caimei/controller/wechat/LoginApi.java

@@ -49,18 +49,17 @@ public class LoginApi {
         return loginService.sendVerifyCode(mobile, appId, type);
         return loginService.sendVerifyCode(mobile, appId, type);
     }
     }
 
 
-    @ApiOperation("服务号邀请码登录")
+    @ApiOperation("服务号验证码登录")
     @ApiImplicitParam(name = "params", value = "mobile:手机号;verifyCode:验证码;invitationCode:邀请码;accessToken;openId;appId", required = true)
     @ApiImplicitParam(name = "params", value = "mobile:手机号;verifyCode:验证码;invitationCode:邀请码;accessToken;openId;appId", required = true)
     @PostMapping("/login/service/invitation/code")
     @PostMapping("/login/service/invitation/code")
     public ResponseJson<WxClubUserVo> invitationCode(@RequestBody String params) throws Exception {
     public ResponseJson<WxClubUserVo> invitationCode(@RequestBody String params) throws Exception {
         JSONObject parseObject = JSONObject.parseObject(params);
         JSONObject parseObject = JSONObject.parseObject(params);
         String mobile = parseObject.getString("mobile");
         String mobile = parseObject.getString("mobile");
         String verifyCode = parseObject.getString("verifyCode");
         String verifyCode = parseObject.getString("verifyCode");
-        String invitationCode = parseObject.getString("invitationCode");
         String accessToken = parseObject.getString("accessToken");
         String accessToken = parseObject.getString("accessToken");
         String openId = parseObject.getString("openId");
         String openId = parseObject.getString("openId");
         String appId = parseObject.getString("appId");
         String appId = parseObject.getString("appId");
-        return loginService.loginByInvitationCode(mobile, verifyCode, invitationCode, accessToken, openId, appId);
+        return loginService.loginByVerifyCode(mobile, verifyCode, accessToken, openId, appId);
     }
     }
 
 
     @ApiOperation("订阅号验证码登录")
     @ApiOperation("订阅号验证码登录")
@@ -74,17 +73,6 @@ public class LoginApi {
         return loginService.loginByVerifyCode(mobile, verifyCode, appId);
         return loginService.loginByVerifyCode(mobile, verifyCode, appId);
     }
     }
 
 
-    @ApiOperation("订阅号邀请码登录")
-    @ApiImplicitParam(name = "params", value = "mobile:手机号;invitationCode:邀请码;openId;appId", required = true)
-    @PostMapping("/login/subscribe/invitation/code")
-    public ResponseJson<WxClubUserVo> loginByInvitationCode(@RequestBody String params){
-        JSONObject parseObject = JSONObject.parseObject(params);
-        String mobile = parseObject.getString("mobile");
-        String invitationCode = parseObject.getString("invitationCode");
-        String appId = parseObject.getString("appId");
-        return loginService.loginByInvitationCode(mobile, invitationCode, appId);
-    }
-
     @ApiOperation("校验token是否失效")
     @ApiOperation("校验token是否失效")
     @PostMapping("/token/check")
     @PostMapping("/token/check")
     public ResponseJson checkToken(){
     public ResponseJson checkToken(){

+ 1 - 1
src/main/java/com/caimei/mapper/cmMapper/ClubMapper.java

@@ -28,7 +28,7 @@ public interface ClubMapper {
 
 
     void insertFeedback(@Param("clubUserId") Integer clubUserId, @Param("content") String content);
     void insertFeedback(@Param("clubUserId") Integer clubUserId, @Param("content") String content);
 
 
-    WxClubUserVo getWxClubUser(@Param("mobile") String mobile, @Param("appId") String appId);
+    WxClubUserVo getWxClubUser(@Param("mobile") String mobile, @Param("appId") String appId, @Param("authId") Integer authId);
 
 
     WxClubDetailsVo getClubDetails(Integer authId);
     WxClubDetailsVo getClubDetails(Integer authId);
 
 

+ 1 - 3
src/main/java/com/caimei/mapper/cmMapper/LoginMapper.java

@@ -18,7 +18,5 @@ public interface LoginMapper {
 
 
     WxClubUserVo findClubUserByOpenId(String openId);
     WxClubUserVo findClubUserByOpenId(String openId);
 
 
-    ClubUserPo findByInvitationCode(String invitationCode);
-
-    void bindClubUser(@Param("mobile") String mobile, @Param("nickName") String nickName, @Param("openId") String openId, @Param("invitationCode") String invitationCode);
+    void bindClubUser(@Param("mobile") String mobile, @Param("nickName") String nickName, @Param("openId") String openId);
 }
 }

+ 5 - 0
src/main/java/com/caimei/service/auth/impl/AuthClubServiceImpl.java

@@ -133,6 +133,11 @@ public class AuthClubServiceImpl implements AuthClubService {
         clubUser.setName(name);
         clubUser.setName(name);
         clubUser.setMobile(mobile);
         clubUser.setMobile(mobile);
         if (insertFlag) {
         if (insertFlag) {
+            // 根据手机号校验该机构下是否已添加该机构用户
+            WxClubUserVo wxClubUser = clubMapper.getWxClubUser(mobile, null, authId);
+            if (null != wxClubUser) {
+                return ResponseJson.error("该用户已存在,请勿重复添加");
+            }
             clubUser.setAddTime(new Date());
             clubUser.setAddTime(new Date());
             clubMapper.insertClubUser(clubUser);
             clubMapper.insertClubUser(clubUser);
         } else {
         } else {

+ 3 - 19
src/main/java/com/caimei/service/wechat/LoginService.java

@@ -29,16 +29,9 @@ public interface LoginService {
     ResponseJson sendVerifyCode(String mobile, String appId, Integer type);
     ResponseJson sendVerifyCode(String mobile, String appId, Integer type);
 
 
     /**
     /**
-     * 服务号邀请码登录
-     * @param mobile
-     * @param verifyCode
-     * @param invitationCode
-     * @param accessToken
-     * @param openId
-     * @param appId
-     * @return
+     * 服务号验证码登录
      */
      */
-    ResponseJson<WxClubUserVo> loginByInvitationCode(String mobile, String verifyCode, String invitationCode, String accessToken, String openId, String appId) throws Exception;
+    ResponseJson<WxClubUserVo> loginByVerifyCode(String mobile, String verifyCode, String accessToken, String openId, String appId) throws Exception;
 
 
     /**
     /**
      * 订阅号验证码登录
      * 订阅号验证码登录
@@ -48,13 +41,4 @@ public interface LoginService {
      * @return
      * @return
      */
      */
     ResponseJson<WxClubUserVo> loginByVerifyCode(String mobile, String verifyCode, String appId);
     ResponseJson<WxClubUserVo> loginByVerifyCode(String mobile, String verifyCode, String appId);
-
-    /**
-     * 订阅号邀请码登录
-     * @param mobile
-     * @param invitationCode
-     * @param appId
-     * @return
-     */
-    ResponseJson<WxClubUserVo> loginByInvitationCode(String mobile, String invitationCode, String appId);
-}
+ }

+ 11 - 54
src/main/java/com/caimei/service/wechat/impl/LoginServiceImpl.java

@@ -122,16 +122,13 @@ public class LoginServiceImpl implements LoginService {
 
 
 
 
     @Override
     @Override
-    public ResponseJson<WxClubUserVo> loginByInvitationCode(String mobile, String verifyCode, String invitationCode, String accessToken, String openId, String appId) throws Exception {
+    public ResponseJson<WxClubUserVo> loginByVerifyCode(String mobile, String verifyCode, String accessToken, String openId, String appId) throws Exception {
         if (StringUtils.isEmpty(mobile)) {
         if (StringUtils.isEmpty(mobile)) {
             return ResponseJson.error("参数异常,请输入手机号", null);
             return ResponseJson.error("参数异常,请输入手机号", null);
         }
         }
         if (StringUtils.isEmpty(verifyCode)) {
         if (StringUtils.isEmpty(verifyCode)) {
             return ResponseJson.error("参数异常,请输入验证码", null);
             return ResponseJson.error("参数异常,请输入验证码", null);
         }
         }
-        if (StringUtils.isEmpty(invitationCode)) {
-            return ResponseJson.error("参数异常,请输入邀请码", null);
-        }
         if (StringUtils.isEmpty(accessToken)) {
         if (StringUtils.isEmpty(accessToken)) {
             return ResponseJson.error("参数异常,请输入accessToken", null);
             return ResponseJson.error("参数异常,请输入accessToken", null);
         }
         }
@@ -146,13 +143,13 @@ public class LoginServiceImpl implements LoginService {
         if (!verifyCode.equals(redisVerifyCode)) {
         if (!verifyCode.equals(redisVerifyCode)) {
             return ResponseJson.error("验证码错误,请重新输入", null);
             return ResponseJson.error("验证码错误,请重新输入", null);
         }
         }
-        // 校验邀请码是否有效
-        ClubUserPo clubUserPo = loginMapper.findByInvitationCode(invitationCode);
-        if (null == clubUserPo || 2 == clubUserPo.getStatus() || clubUserPo.getInvitationCodeTime().compareTo(new Date()) < 0) {
-            return ResponseJson.error("邀请码已失效", null);
+        // 校验机构用户是否存在
+        WxClubUserVo wxClubUser = clubMapper.getWxClubUser(mobile, appId, null);
+        if (null == wxClubUser) {
+            return ResponseJson.error("抱歉,您的手机号暂无权限登录", null);
         }
         }
         // 校验机构和供应商的状态是否为已上线
         // 校验机构和供应商的状态是否为已上线
-        CmBrandAuthPo clubPo = authMapper.getAuthById(clubUserPo.getAuthId());
+        CmBrandAuthPo clubPo = authMapper.getAuthById(wxClubUser.getAuthId());
         Integer shopStatus = shopMapper.getShopStatus(clubPo.getAuthUserId());
         Integer shopStatus = shopMapper.getShopStatus(clubPo.getAuthUserId());
         if (1 != clubPo.getStatus() || 1 != shopStatus) {
         if (1 != clubPo.getStatus() || 1 != shopStatus) {
             return ResponseJson.error("登录失败", null);
             return ResponseJson.error("登录失败", null);
@@ -164,10 +161,10 @@ public class LoginServiceImpl implements LoginService {
         }
         }
         Map<String, String> userInfo = WxUtils.getUserInfo(accessToken, openId);
         Map<String, String> userInfo = WxUtils.getUserInfo(accessToken, openId);
         String nickName = userInfo.get("nickName");
         String nickName = userInfo.get("nickName");
-        loginMapper.bindClubUser(mobile, nickName, openId, invitationCode);
+        loginMapper.bindClubUser(mobile, nickName, openId);
         WxClubUserVo clubUser = new WxClubUserVo();
         WxClubUserVo clubUser = new WxClubUserVo();
-        clubUser.setClubUserId(clubUserPo.getId());
-        clubUser.setAuthId(clubUserPo.getAuthId());
+        clubUser.setClubUserId(wxClubUser.getClubUserId());
+        clubUser.setAuthId(wxClubUser.getAuthId());
         clubUser.setAuthUserId(clubPo.getAuthUserId());
         clubUser.setAuthUserId(clubPo.getAuthUserId());
         clubUser.setMobile(mobile);
         clubUser.setMobile(mobile);
         clubUser.setOpenId(openId);
         clubUser.setOpenId(openId);
@@ -194,11 +191,11 @@ public class LoginServiceImpl implements LoginService {
             return ResponseJson.error("验证码错误,请重新输入", null);
             return ResponseJson.error("验证码错误,请重新输入", null);
         }
         }
         // 获取手机号对应机构用户
         // 获取手机号对应机构用户
-        WxClubUserVo clubUser = clubMapper.getWxClubUser(mobile, appId);
+        WxClubUserVo clubUser = clubMapper.getWxClubUser(mobile, appId, null);
         if (null == clubUser) {
         if (null == clubUser) {
             clubUser = new WxClubUserVo();
             clubUser = new WxClubUserVo();
             clubUser.setMobile(mobile);
             clubUser.setMobile(mobile);
-            return ResponseJson.error(-2,"未注册,请填写邀请码注册", clubUser);
+            return ResponseJson.error(-2,"抱歉,您的手机号暂无权限登录", clubUser);
         }
         }
         // 校验机构和供应商的状态是否为已上线
         // 校验机构和供应商的状态是否为已上线
         CmBrandAuthPo clubPo = authMapper.getAuthById(clubUser.getAuthId());
         CmBrandAuthPo clubPo = authMapper.getAuthById(clubUser.getAuthId());
@@ -212,44 +209,4 @@ public class LoginServiceImpl implements LoginService {
         clubUser.setAccessToken(accessToken);
         clubUser.setAccessToken(accessToken);
         return ResponseJson.success(clubUser);
         return ResponseJson.success(clubUser);
     }
     }
-
-    @Override
-    public ResponseJson<WxClubUserVo> loginByInvitationCode(String mobile, String invitationCode, String appId) {
-        if (StringUtils.isEmpty(mobile)) {
-            return ResponseJson.error("参数异常,请输入手机号", null);
-        }
-        if (StringUtils.isEmpty(invitationCode)) {
-            return ResponseJson.error("参数异常,请输入邀请码", null);
-        }
-        if (StringUtils.isEmpty(appId)) {
-            return ResponseJson.error("参数异常,请输入appId", null);
-        }
-        // 校验邀请码是否有效
-        ClubUserPo clubUserPo = loginMapper.findByInvitationCode(invitationCode);
-        if (null == clubUserPo || 2 == clubUserPo.getStatus() || clubUserPo.getInvitationCodeTime().compareTo(new Date()) < 0) {
-            return ResponseJson.error("邀请码已失效", null);
-        }
-        // 校验机构和供应商的状态是否为已上线
-        CmBrandAuthPo clubPo = authMapper.getAuthById(clubUserPo.getAuthId());
-        Integer shopStatus = shopMapper.getShopStatus(clubPo.getAuthUserId());
-        if (1 != clubPo.getStatus() || 1 != shopStatus) {
-            return ResponseJson.error("登录失败", null);
-        }
-        // 校验appId是否和机构所属供应商的appId相同
-        String dbAppId = shopMapper.getAppId(clubPo.getAuthUserId());
-        if (StringUtils.isEmpty(dbAppId) || !appId.equals(dbAppId)) {
-            return ResponseJson.error("登录失败", null);
-        }
-        loginMapper.bindClubUser(mobile, null, null, invitationCode);
-        WxClubUserVo clubUser = new WxClubUserVo();
-        clubUser.setClubUserId(clubUserPo.getId());
-        clubUser.setAuthId(clubUserPo.getAuthId());
-        clubUser.setAuthUserId(clubPo.getAuthUserId());
-        clubUser.setMobile(mobile);
-        // 登录成功redis保存token
-        String accessToken = UUID.randomUUID().toString();
-        redisService.set(accessToken, mobile + "," + appId, 60L * 60 * 24);
-        clubUser.setAccessToken(accessToken);
-        return ResponseJson.success(clubUser);
-    }
 }
 }

+ 6 - 1
src/main/resources/mapper/ClubMapper.xml

@@ -85,7 +85,12 @@
                  left join cm_brand_auth a on cu.authId = a.id
                  left join cm_brand_auth a on cu.authId = a.id
                  left join cm_brand_auth_user au on a.authUserId = au.authUserId
                  left join cm_brand_auth_user au on a.authUserId = au.authUserId
         where cu.mobile = #{mobile}
         where cu.mobile = #{mobile}
-          and au.appId = #{appId}
+          <if test="appId != null and appId != ''">
+              and au.appId = #{appId}
+          </if>
+          <if test="authId != null">
+              and cu.authId = #{authId}
+          </if>
           and cu.delFlag = 0
           and cu.delFlag = 0
         limit 1
         limit 1
     </select>
     </select>

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

@@ -3,12 +3,11 @@
 <mapper namespace="com.caimei.mapper.cmMapper.LoginMapper">
 <mapper namespace="com.caimei.mapper.cmMapper.LoginMapper">
     <update id="bindClubUser">
     <update id="bindClubUser">
         update cm_brand_club_user
         update cm_brand_club_user
-        set status   = 1,
-            mobile   = #{mobile},
+        set mobile   = #{mobile},
             openId   = #{openId},
             openId   = #{openId},
             nickName = #{nickName},
             nickName = #{nickName},
             bindTime = NOW()
             bindTime = NOW()
-        where invitationCode = #{invitationCode};
+        where mobile = #{mobile};
     </update>
     </update>
 
 
     <select id="findClubUserByOpenId" resultType="com.caimei.model.vo.WxClubUserVo">
     <select id="findClubUserByOpenId" resultType="com.caimei.model.vo.WxClubUserVo">
@@ -21,9 +20,4 @@
           and a.status = 1
           and a.status = 1
           and au.status = 1
           and au.status = 1
     </select>
     </select>
-    <select id="findByInvitationCode" resultType="com.caimei.model.po.ClubUserPo">
-        select id, authId, status, invitationCodeTime
-        from cm_brand_club_user
-        where invitationCode = #{invitationCode} and delFlag = 0
-    </select>
 </mapper>
 </mapper>