Browse Source

1.机构员工修改手机号退出登录

yuanliang 1 year ago
parent
commit
c3629343d8

+ 16 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantInfoController.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.tenant.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
@@ -107,7 +108,7 @@ public class TenantInfoController extends BaseController {
     public HttpResponseResult<Boolean> updateTenantInfo(@Valid @RequestBody TenantInfoVo.TenantInfo info) {
 
         TenantInfo tenantInfo = JSON.parseObject(info.jsonString(), TenantInfo.class);
-            tenantInfoService.updateById(tenantInfo);
+        tenantInfoService.updateById(tenantInfo);
 
         return  HttpResponseResult.succeed(true);
 
@@ -308,6 +309,20 @@ public class TenantInfoController extends BaseController {
 
         }
 
+        // 修改了手机号码,清理token和WXOpenId
+        if (StringUtils.isNotEmpty(sysUser.getPhone()) && !user.getPhone().equals(sysUser.getPhone())) {
+            // 清除登录token信息
+            TenantStaff tenantStaff = tenantStaffService.getByUserId(user.getId());
+            if (tenantStaff != null) {
+                sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
+                        user.getPhone(), tenantStaff.getWxOpenid());
+            }
+            // 清除WXOpenId
+            tenantStaffService.update(null, Wrappers.<TenantStaff>lambdaUpdate()
+                    .set(TenantStaff::getWxOpenid, null)
+                    .eq(TenantStaff::getUserId, user.getId()));
+        }
+
         return HttpResponseResult.succeed(true);
     }
 }

+ 52 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantStaffController.java

@@ -0,0 +1,52 @@
+package com.yonge.cooleshow.tenant.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.microsvc.toolkit.common.response.template.R;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+@RestController
+@RequestMapping("${app-config.url.tenant:}/tenantStaff")
+@Api(value = "机构员工表", tags = "机构员工信息")
+public class TenantStaffController extends BaseController {
+
+    @Resource
+    SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private TenantStaffService tenantStaffService;
+
+    @PostMapping("/logout")
+    @ApiOperation(value = "退出登录", notes = "传入TenantInfo")
+    public R<JSONObject> logout() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return R.defaultR();
+        }
+        // 清理token和WXOpenId
+        TenantStaff tenantStaff = tenantStaffService.getByUserId(sysUser.getId());
+        if (tenantStaff != null) {
+            sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
+                    sysUser.getPhone(), tenantStaff.getWxOpenid());
+            // 清除WXOpenId
+            tenantStaffService.update(null, Wrappers.<TenantStaff>lambdaUpdate()
+                    .set(TenantStaff::getWxOpenid, null)
+                    .eq(TenantStaff::getUserId, sysUser.getId()));
+        }
+        return R.defaultR();
+    }
+}

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java

@@ -436,6 +436,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
             if(tenantStaff != null){
                 sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
                         oldTenantInfo.getPhone(),tenantStaff.getWxOpenid());
+                // 清除WXOpenId
+                tenantStaffMapper.update(null, Wrappers.<TenantStaff>lambdaUpdate()
+                        .set(TenantStaff::getWxOpenid, null)
+                        .eq(TenantStaff::getUserId, sysUser.getId()));
             }
         }
         tenantInfoMapper.update(null, Wrappers.<TenantInfo>lambdaUpdate()

+ 15 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantInfoController.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.tenant.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
@@ -308,6 +309,20 @@ public class TenantInfoController extends BaseController {
 
         }
 
+        // 修改了手机号码,清理token和WXOpenId
+        if (StringUtils.isNotEmpty(sysUser.getPhone()) && !user.getPhone().equals(sysUser.getPhone())) {
+            // 清除登录token信息
+            TenantStaff tenantStaff = tenantStaffService.getByUserId(user.getId());
+            if (tenantStaff != null) {
+                sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
+                        user.getPhone(), tenantStaff.getWxOpenid());
+            }
+            // 清除WXOpenId
+            tenantStaffService.update(null, Wrappers.<TenantStaff>lambdaUpdate()
+                    .set(TenantStaff::getWxOpenid, null)
+                    .eq(TenantStaff::getUserId, user.getId()));
+        }
+
         return HttpResponseResult.succeed(true);
     }
 }

+ 52 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantStaffController.java

@@ -0,0 +1,52 @@
+package com.yonge.cooleshow.tenant.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.microsvc.toolkit.common.response.template.R;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+@RestController
+@RequestMapping("/tenantStaff")
+@Api(value = "机构员工表", tags = "机构员工信息")
+public class TenantStaffController extends BaseController {
+
+    @Resource
+    SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private TenantStaffService tenantStaffService;
+
+    @PostMapping("/logout")
+    @ApiOperation(value = "退出登录", notes = "传入TenantInfo")
+    public R<JSONObject> logout() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return R.defaultR();
+        }
+        // 清理token和WXOpenId
+        TenantStaff tenantStaff = tenantStaffService.getByUserId(sysUser.getId());
+        if (tenantStaff != null) {
+            sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
+                    sysUser.getPhone(), tenantStaff.getWxOpenid());
+            // 清除WXOpenId
+            tenantStaffService.update(null, Wrappers.<TenantStaff>lambdaUpdate()
+                    .set(TenantStaff::getWxOpenid, null)
+                    .eq(TenantStaff::getUserId, sysUser.getId()));
+        }
+        return R.defaultR();
+    }
+}