Ver Fonte

授权登录优化

chao há 4 anos atrás
pai
commit
d169c4ac8f

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

@@ -63,14 +63,14 @@ public interface LoginMapper {
      * @param source
      * @return BaseUser
      */
-    UserLoginVo getOperationUserByUnionId(@Param("unionId") String unionId, @Param("source") String source);
+    UserLoginVo getLoginUserByUnionId(@Param("unionId") String unionId, @Param("source") String source);
     /**
      * 根据openId获取运营人员
      * @param openId
      * @param source
      * @return
      */
-    UserLoginVo getOperationUserByOpenId(@Param("openId") String openId, @Param("source") String source);
+    UserLoginVo getLoginUserByOpenId(@Param("openId") String openId, @Param("source") String source);
     /**
      * 根据邀请码获取运营人员
      * @param invitationCode

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

@@ -218,9 +218,9 @@ public class LoginServiceImpl implements LoginService {
      * @return BaseUser
      */
     private ResponseJson<UserLoginVo> operationAuthLogin(String openId, String unionId, String source) {
-        UserLoginVo operation = loginMapper.getOperationUserByUnionId(unionId, source);
+        UserLoginVo operation = loginMapper.getLoginUserByUnionId(unionId, source);
         if (null == operation) {
-            operation = loginMapper.getOperationUserByOpenId(openId, source);
+            operation = loginMapper.getLoginUserByOpenId(openId, source);
             if (null == operation) {
                 operation = new UserLoginVo();
                 operation.setOpenId(openId);
@@ -457,8 +457,6 @@ public class LoginServiceImpl implements LoginService {
         OperationPo operationByMobile = loginMapper.getOperationByMobile(mobile);
         // 使用该手机号的运营人员或用户
         UserLoginVo userByMobile = loginMapper.getLoginUserByMobileOrEmail(mobile);
-        // 要绑定的用户
-        UserLoginVo user = loginMapper.getLoginUserByUserId(userId);
         // 判断手机号有没有成为运营人员或机构手机号
         boolean b = userByMobile != null && !userId.equals(userByMobile.getUserId());
         if (operationByMobile != null) {
@@ -475,10 +473,12 @@ public class LoginServiceImpl implements LoginService {
         log.info("绑定微信bindingWx,获取unionId>>>>>>" + unionId);
         String openId = (String) infoData.get("openId");
         // 判断微信是否已经绑定
-        UserLoginVo operationByUnionId = loginMapper.getOperationUserByUnionId(unionId,"mini");
+        UserLoginVo operationByUnionId = loginMapper.getLoginUserByUnionId(unionId,"mini");
         if (operationByUnionId != null) {
             return ResponseJson.error("该微信已绑定,请重新刷新首页", null);
         }
+        // 要绑定的用户
+        UserLoginVo user = loginMapper.getLoginUserByUserId(userId);
         /*
             组装运营人员数据 operation
          */

+ 72 - 48
src/main/resources/mapper/LoginMapper.xml

@@ -5,6 +5,7 @@
         select u.userID as userId,
                u.clubID as clubId,
                u.shopID as shopId,
+               u.serviceProviderId as serviceProviderId,
                u.userName as userName,
                u.mobile as mobile,
                u.bindMobile as bindMobile,
@@ -22,6 +23,7 @@
         select u.userID as userId,
             u.clubID as clubId,
             u.shopID as shopId,
+            u.serviceProviderId as serviceProviderId,
             u.userName as userName,
             u.mobile as mobile,
             u.bindMobile as bindMobile,
@@ -73,56 +75,78 @@
         where s.userID = #{userId}
         limit 1
     </select>
-    <select id="getOperationUserByUnionId" resultType="com.caimei365.user.model.vo.UserLoginVo">
-        select o.userID as userId,
-               o.mobile as mobile,
-               o.clubID as clubId,
-               o.shopID as shopId,
-               o.unionId as unionId,
-                <if test="source=='www'">
-                    o.pcOpenid as openId
-                </if>
-                <if test="source=='crm'">
-                    o.crmOpenid as openId
-                </if>
-                <if test="source=='mini'">
-                    o.openid as openId
-                </if>
-        from
-          cm_mall_operation_user o
-        where unionId = #{unionId} and delFlag = '0'
-        and userOrganizeID=0
+    <select id="getLoginUserByUnionId" resultType="com.caimei365.user.model.vo.UserLoginVo">
+        select u.userID as userId,
+            u.clubID as clubId,
+            u.shopID as shopId,
+            u.serviceProviderId as serviceProviderId,
+            u.userName as userName,
+            u.mobile as mobile,
+            u.bindMobile as bindMobile,
+            u.email as email,
+            u.userPermission as userPermission,
+            u.userIdentity as userIdentity,
+            u.password as password,
+            u.clubStatus as clubStatus,
+            u.manufacturerStatus as shopStatus,
+            o.unionId as unionId,
+            o.status as operationStatus,
+            o.mobile as operationMobile,
+            <if test="source=='www'">
+                o.pcOpenid as openId
+            </if>
+            <if test="source=='crm'">
+                o.crmOpenid as openId
+            </if>
+            <if test="source=='mini'">
+                o.openid as openId
+            </if>
+        from user u
+        left join cm_mall_operation_user o on o.userID = u.userID
+        where (o.unionId = #{unionId} and o.delFlag = '0')
+        and (u.userIdentity in (1,2,3,4) and u.userOrganizeID = 0)
         limit 1
     </select>
-    <select id="getOperationUserByOpenId" resultType="com.caimei365.user.model.vo.UserLoginVo">
-        select o.userID as userId,
-               o.mobile as mobile,
-               o.clubID as clubId,
-               o.shopID as shopId,
-                <if test="source=='www'">
-                    o.pcOpenid as openId,
-                </if>
-                <if test="source=='crm'">
-                    o.crmOpenid as openId,
-                </if>
-                <if test="source=='mini'">
-                    o.openid as openId,
-                </if>
-                o.unionId as unionId
-        from
-          cm_mall_operation_user o
-        where
-        <if test="source=='www'">
-            pcOpenid = #{openId}
-        </if>
-        <if test="source=='crm'">
-            crmOpenid = #{openId}
-        </if>
-        <if test="source=='mini'">
-            openid = #{openId}
-        </if>
-        and delFlag = '0'
-        and userOrganizeID=0
+    <select id="getLoginUserByOpenId" resultType="com.caimei365.user.model.vo.UserLoginVo">
+        select u.userID as userId,
+            u.clubID as clubId,
+            u.shopID as shopId,
+            u.serviceProviderId as serviceProviderId,
+            u.userName as userName,
+            u.mobile as mobile,
+            u.bindMobile as bindMobile,
+            u.email as email,
+            u.userPermission as userPermission,
+            u.userIdentity as userIdentity,
+            u.password as password,
+            u.clubStatus as clubStatus,
+            u.manufacturerStatus as shopStatus,
+            o.unionId as unionId,
+            o.status as operationStatus,
+            o.mobile as operationMobile,
+            <if test="source=='www'">
+                o.pcOpenid as openId
+            </if>
+            <if test="source=='crm'">
+                o.crmOpenid as openId
+            </if>
+            <if test="source=='mini'">
+                o.openid as openId
+            </if>
+        from user u
+        left join cm_mall_operation_user o on o.userID = u.userID
+        where (
+            <if test="source=='www'">
+                o.pcOpenid = #{openId}
+            </if>
+            <if test="source=='crm'">
+                o.crmOpenid = #{openId}
+            </if>
+            <if test="source=='mini'">
+                o.openid = #{openId}
+            </if>
+            and o.delFlag = '0')
+        and (u.userIdentity in (1,2,3,4) and u.userOrganizeID = 0)
         limit 1
     </select>
     <update id="updateServiceProviderUnionId">

+ 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`, `userOrganizeID`, `nickName`, `headimgurl`, `userType`, `mobile`, `linkName`, `status`, `unionId`, `openid`, `addTime`, `updateTime`, `bindTime`, `delFlag`)
-                                    values(#{userId},#{clubId},#{organizeId},#{nickName},#{avatarUrl},#{userType},#{mobile},#{linkName},#{status},#{unionId},#{openId},#{addTime},#{updateTime},#{bindTime},#{delFlag})
+        insert into cm_mall_operation_user(`userID`, `clubID`, `shopID`, `userOrganizeID`, `nickName`, `headimgurl`, `userType`, `mobile`, `linkName`, `status`, `unionId`, `openid`, `addTime`, `updateTime`, `bindTime`, `delFlag`)
+                                    values(#{userId},#{clubId},#{shopId},#{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(`userOrganizeID`,`registerTime`, `registerIP`, `source`, `registerUserTypeID`, `name`, `userName`, `bindMobile`, `email`, `userIdentity`, `userPermission`, `manufacturerStatus` , `password`, `agreeFlag`, `validFlag`)