From e69b405aebf0911cecb726d422d1ed84ad68d3be Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Fri, 20 Sep 2024 10:57:39 +0800
Subject: [PATCH] 查询督办组织
---
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 97 insertions(+), 7 deletions(-)
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java
index 86a6a72..15b4a2d 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java
@@ -3,6 +3,7 @@
import cn.huge.base.common.bo.ReturnBO;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.*;
+import cn.huge.module.client.api.impl.SysClientImpl;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.ctuser.dao.mapper.CtAccountMapper;
import cn.huge.module.ctuser.domain.po.CtAccount;
@@ -13,6 +14,8 @@
import cn.huge.module.ctuser.dto.CtUserAddrDTO;
import cn.huge.module.ctuser.dto.UserLoginDTO;
import cn.huge.module.cust.constant.UserBaseConsts;
+import cn.huge.module.sys.dto.GridTokenBaseDTO;
+import cn.huge.module.sys.dto.GridUserBaseDTO;
import cn.huge.module.utils.JwtUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -21,14 +24,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
-import javax.annotation.PostConstruct;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -56,6 +57,8 @@
private CtUserService ctUserService;
@Autowired
private CtUseroleService ctUseroleService;
+ @Autowired
+ private SysClientImpl sysClient;
/**
* 更新对象
@@ -153,9 +156,23 @@
* @param accType 账号类型
* @return
*/
- public CtAccount getByAccAndType(String acc, String accType){
+ public CtAccount getByAccAndType(String acc, int accType){
QueryWrapper<CtAccount> accountWrapper = new QueryWrapper<>();
accountWrapper.eq("acc", acc)
+ .eq("acc_type", accType);
+ CtAccount ctAccount = this.getOne(accountWrapper);
+ return ctAccount;
+ }
+
+ /**
+ * 根据用户编号和类型查询
+ * @param userId 用户编号
+ * @param accType 账号类型
+ * @return
+ */
+ public CtAccount getByUserIdAndType(String userId, int accType){
+ QueryWrapper<CtAccount> accountWrapper = new QueryWrapper<>();
+ accountWrapper.eq("user_id", userId)
.eq("acc_type", accType);
CtAccount ctAccount = this.getOne(accountWrapper);
return ctAccount;
@@ -197,7 +214,7 @@
try{
// 判断账号密码是否为空
if (StringUtils.isBlank(ctAccountLoginDTO.getAcc()) || StringUtils.isBlank(ctAccountLoginDTO.getCipher())) {
- return ReturnSucUtils.getRepInfo("账号或密码不能为空", null);
+ return ReturnFailUtils.getRepInfo("账号或密码不能为空");
}
// 判断账号是否存在
CtAccount ctAccount = this.getByAccAndType(ctAccountLoginDTO.getAcc(), UserBaseConsts.ACC_TYPE_1);
@@ -214,11 +231,11 @@
if (checkCredential(ctAccountLoginDTO.getCipher(), ctAccount)) {
//返回结果
UserLoginDTO userLoginDTO = new UserLoginDTO();
- CtUser ctUser = ctUserService.getByIdFromRedis(ctAccount.getUserId());
+ CtUser ctUser = ctUserService.getById(ctAccount.getUserId());
if (ObjectUtils.isEmpty(ctUser)){
return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
}
- if (UserBaseConsts.USER_STATUS_2.equals(ctUser.getStatus()) || UserBaseConsts.USER_STATUS_3.equals(ctUser.getStatus())){
+ if (ctUser.getStatus() != UserBaseConsts.USER_STATUS_1){
return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
}
// 封装用户信息
@@ -275,7 +292,12 @@
*/
public ReturnBO webChangeCipher(String userId, CtCipherDTO ctCipherDTO){
try{
- CtAccount ctAccount = this.getByAccAndType(userId, UserBaseConsts.ACC_TYPE_1);
+ CtUser loginUser = ctUserService.getById(userId);
+ CtAccount ctAccount = this.getByAccAndType(loginUser.getAcc(), UserBaseConsts.ACC_TYPE_1);
+// QueryWrapper<CtAccount> ctAccountQueryWrapper = new QueryWrapper<>();
+// ctAccountQueryWrapper.eq("user_id", loginUser.getId()).
+// eq("acc_type", UserBaseConsts.ACC_TYPE_1);
+// CtAccount ctAccount =mapper.selectOne(ctAccountQueryWrapper);
if (ObjectUtils.isEmpty(ctAccount)){
return ReturnFailUtils.getRepInfo("输入账号或密码不正确,请确认后重试!");
}
@@ -298,4 +320,72 @@
}
}
+ /**
+ * web端-网格系统单点登录
+ * @param gridTokenBaseDTO 网格系统token
+ * @return UserLoginDTO
+ */
+ public ReturnBO webGridLogin(GridTokenBaseDTO gridTokenBaseDTO) {
+ try{
+ GridUserBaseDTO gridUserBaseDTO = sysClient.getUserInfo(gridTokenBaseDTO);
+
+ // 判断账号密码是否为空
+ if (ObjectUtils.isEmpty(gridUserBaseDTO)) {
+ return ReturnFailUtils.getRepInfo("gridToken已失效,请重新登录!");
+ }
+ // 判断账号是否存在
+ CtAccount ctAccount = this.getByAccAndType(gridUserBaseDTO.getAccount(), UserBaseConsts.ACC_TYPE_1);
+ if(ObjectUtils.isEmpty(ctAccount)){
+ ctAccount = this.getByAccAndType(gridUserBaseDTO.getMobile(), UserBaseConsts.ACC_TYPE_1);
+ }
+ if (ObjectUtils.isNotEmpty(ctAccount)){
+ //返回结果
+ UserLoginDTO userLoginDTO = new UserLoginDTO();
+ CtUser ctUser = ctUserService.getById(ctAccount.getUserId());
+ if (ObjectUtils.isEmpty(ctUser)){
+ return ReturnFailUtils.getRepInfo("用户不存在!");
+ }
+ // 封装用户信息
+ userLoginDTO.setToken(JwtUtils.buildJWT(ctUser.getId()));
+ userLoginDTO.setUserId(ctUser.getId());
+ userLoginDTO.setTrueName(ctUser.getTrueName());
+ userLoginDTO.setUnit(ctUser.getUnitName());
+ userLoginDTO.setDept(ctUser.getDeptName());
+ userLoginDTO.setCustId(ctUser.getCustId());
+ // 登录用户角色
+ List<CtUserole> ctUseroleList = ctUseroleService.listByUserId(ctUser.getId());
+ userLoginDTO.setCtUseroleList(ctUseroleList);
+ // 登录用户地址信息
+ CtUserAddrDTO ctUserAddrDTO = new CtUserAddrDTO();
+ ctUserAddrDTO.setProv(ctUser.getProv());
+ ctUserAddrDTO.setProvName(ctUser.getProvName());
+ ctUserAddrDTO.setCity(ctUser.getCity());
+ ctUserAddrDTO.setCityName(ctUser.getCityName());
+ ctUserAddrDTO.setArea(ctUser.getArea());
+ ctUserAddrDTO.setAreaName(ctUser.getAreaName());
+ ctUserAddrDTO.setRoad(ctUser.getRoad());
+ ctUserAddrDTO.setRoadName(ctUser.getRoadName());
+ ctUserAddrDTO.setVillage(ctUser.getVillage());
+ ctUserAddrDTO.setVillageName(ctUser.getVillageName());
+ userLoginDTO.setCtUserAddrDTO(ctUserAddrDTO);
+ // 最后登录时间
+ Date loginTime = ctAccount.getLoginTime();
+ if (ObjectUtils.isEmpty(ctAccount.getLoginTime())){
+ loginTime = DateUtils.getNowDate();
+ }
+ userLoginDTO.setLastLoginTime(loginTime);
+ // 更新最新登录时间
+ UpdateWrapper<CtAccount> accountUpdateWrapper = new UpdateWrapper<>();
+ accountUpdateWrapper.set("login_time", loginTime).eq("id", ctAccount.getId());
+ this.update(accountUpdateWrapper);
+ return ReturnSucUtils.getRepInfo(userLoginDTO);
+ }else{
+ return ReturnFailUtils.getRepInfo("用户不存在!,请确认后重试!");
+ }
+ }catch (Exception e){
+ log.error("service方法[AccountService.webGridLogin]调用失败,异常信息:"+e, e);
+ throw new ServiceException("CtAccountService.webGridLogin", e);
+ }
+ }
+
}
--
Gitblit v1.8.0