Преглед изворни кода

Merge branch 'feature/0824-logoff' of http://git.dayaedu.com/yonge/cooleshow

# Conflicts:
#	cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java
#	cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java
#	cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java
#	cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java
zouxuan пре 1 година
родитељ
комит
a1398f7676

+ 5 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java

@@ -176,5 +176,9 @@ public interface SysUserDao extends BaseDAO<Long, SysUser> {
 
     SysUser getSysUserByOpenId(@Param("openId") String openId, @Param("clientId") String clientId);
 
-    int logoffByPhone(@Param("phone") String phone);
+    int logoffByPhone(@Param("num") int num, @Param("phone") String phone);
+
+    void updateLockStatusByPhone(@Param("phone") String phone);
+
+    int countByPhone(@Param("phone") String phone);
 }

+ 2 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java

@@ -223,4 +223,6 @@ public interface SysUserService extends BaseService<Long, SysUser> {
      * @return SysUser
      */
     SysUser getSysUserByOpenId(String openId, String clientId);
+
+    void logoffByPhone(String phone);
 }

+ 19 - 5
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -4,15 +4,12 @@ import com.alibaba.fastjson.JSON;
 import com.google.common.collect.Lists;
 import com.yonge.cooleshow.api.feign.AdminFeignService;
 import com.yonge.cooleshow.api.feign.dto.UserFriendInfoVO;
-import com.yonge.cooleshow.auth.api.dto.QRLoginDto;
-import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
-import com.yonge.cooleshow.auth.api.dto.SysUserInfo;
-import com.yonge.cooleshow.auth.api.dto.SysUserQueryInfo;
-import com.yonge.cooleshow.auth.api.dto.UserSetReq;
+import com.yonge.cooleshow.auth.api.dto.*;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.vo.UserSetVo;
 import com.yonge.cooleshow.auth.config.CustomerServiceConfig;
 import com.yonge.cooleshow.auth.config.RongCloudConfig;
+import com.yonge.cooleshow.auth.core.service.CustomTokenServices;
 import com.yonge.cooleshow.auth.dal.dao.SysUserDao;
 import com.yonge.cooleshow.auth.enums.EClientType;
 import com.yonge.cooleshow.auth.service.SysConfigService;
@@ -68,6 +65,8 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
     private AdminFeignService adminFeignService;
     @Autowired
     private CustomerServiceConfig customerServiceConfig;
+    @Resource
+    private CustomTokenServices tokenService;
 
     @Override
     public BaseDAO<Long, SysUser> getDAO() {
@@ -418,4 +417,19 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
     public SysUser getSysUserByOpenId(String openId, String clientId) {
         return sysUserDao.getSysUserByOpenId(openId, clientId);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void logoffByPhone(String phone) {
+        int num = sysUserDao.countByPhone(phone);
+        //冻结相关所有客户端账号
+        sysUserDao.updateLockStatusByPhone(phone);
+        //注销用户
+        int i = sysUserDao.logoffByPhone(num,phone);
+        if(i < 1){
+            throw new BizException("用户不存在或已注销");
+        }
+        //退出登录
+        tokenService.revokeTokenByPhone(phone);
+    }
 }

+ 1 - 5
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java

@@ -439,11 +439,7 @@ public class UserController extends BaseController {
         if (!b) {
             throw new BadCredentialsException("验证码校验失败");
         }
-        int i = sysUserService.getDao().logoffByPhone(sysUser.getPhone());
-        if(i < 1){
-            throw new BizException("用户不存在或已注销");
-        }
-        tokenService.revokeTokenByPhone(sysUser.getPhone());
+        sysUserService.logoffByPhone(sysUser.getPhone());
 //        sysUserService.logoffById(sysUser.getId());
         return succeed(true);
     }

+ 11 - 0
cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -337,6 +337,17 @@
             update employee set lock_flag_ = #{lockFlag} where user_id_ = #{userId}
         </if>
     </update>
+    <update id="logoffByPhone">
+        update sys_user set del_flag_ = 1, phone_ = concat(#{num},'D', phone_),update_time_ = now() where phone_ = #{phone}
+    </update>
+    <update id="updateLockStatusByPhone">
+        update student set lock_flag_ = 1 where user_id_ = (select id_ from sys_user where phone_ = #{phone});
+        update teacher set lock_flag_ = 1 where user_id_ = (select id_ from sys_user where phone_ = #{phone});
+        update employee set lock_flag_ = 1 where user_id_ = (select id_ from sys_user where phone_ = #{phone});
+    </update>
+    <select id="countByPhone" resultType="java.lang.Integer">
+        SELECT count(1) FROM sys_user WHERE phone_ LIKE CONCAT('%',#{phone},'%')
+    </select>
 
     <select id="getSysUserByOpenId" resultType="com.yonge.cooleshow.auth.api.entity.SysUser">
         SELECT t1.*