From 34b608a3f66aa2887eff37ad87b2893b96b9b7d1 Mon Sep 17 00:00:00 2001
From: xusd <hugeinfo123>
Date: Sat, 12 Oct 2024 14:17:50 +0800
Subject: [PATCH] 网格系统账号登录初始化逻辑
---
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java | 197 ++++++++++++++++++++++++++++--------------------
1 files changed, 115 insertions(+), 82 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 15b4a2d..2ae5d36 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
@@ -36,17 +36,17 @@
import java.util.Map;
/**
+ * @author liyj
+ * @version 1.0.0
* @title: 客户用户账号表业务逻辑处理
* @Description 客户用户账号表业务逻辑处理
* @company hugeinfo
- * @author liyj
* @Time 2024-08-19 20:04:18
- * @version 1.0.0
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
-public class CtAccountService extends ServiceImpl<CtAccountMapper, CtAccount>{
+public class CtAccountService extends ServiceImpl<CtAccountMapper, CtAccount> {
@Autowired
private CtAccountMapper mapper;
@@ -61,102 +61,110 @@
private SysClientImpl sysClient;
/**
- * 更新对象
- * @param entity 对象
- */
- public void updateCtAccount(CtAccount entity){
- try{
+ * 更新对象
+ *
+ * @param entity 对象
+ */
+ public void updateCtAccount(CtAccount entity) {
+ try {
mapper.updateCtAccount(entity);
- }catch (Exception e){
- log.error("[CtAccountService.updateCtAccount]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CtAccountService.updateCtAccount]调用失败,异常信息:" + e, e);
throw new ServiceException("CtAccountService.updateCtAccount", e);
}
}
/**
- * 条件更新对象
- * @param entity 对象
- * @param terms 条件
- */
- public void updateCtAccountTerms(CtAccount entity, Map<String, Object> terms){
- try{
+ * 条件更新对象
+ *
+ * @param entity 对象
+ * @param terms 条件
+ */
+ public void updateCtAccountTerms(CtAccount entity, Map<String, Object> terms) {
+ try {
mapper.updateCtAccountTerms(entity, terms);
- }catch (Exception e){
- log.error("[CtAccountService.updateCtAccountTerms]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CtAccountService.updateCtAccountTerms]调用失败,异常信息:" + e, e);
throw new ServiceException("CtAccountService.updateCtAccountTerms", e);
}
}
/**
- * 根据编号物理删除
- * @param id 查询条件集合
- */
- public void deleteCtAccount(String id){
- try{
+ * 根据编号物理删除
+ *
+ * @param id 查询条件集合
+ */
+ public void deleteCtAccount(String id) {
+ try {
mapper.deleteCtAccount(id);
- }catch (Exception e){
- log.error("[CtAccountService.deleteCtAccount]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CtAccountService.deleteCtAccount]调用失败,异常信息:" + e, e);
throw new ServiceException("CtAccountService.deleteCtAccount", e);
}
}
/**
- * 按条件查询
- * @param terms 条件
- * @return List
- */
- public List<CtAccount> listTerms(Map<String, Object> terms){
+ * 按条件查询
+ *
+ * @param terms 条件
+ * @return List
+ */
+ public List<CtAccount> listTerms(Map<String, Object> terms) {
return mapper.listTerms(terms);
}
/**
- * 按条件统计
- * @param terms 条件
- * @return long
- */
- public long countTerms(Map<String, Object> terms){
+ * 按条件统计
+ *
+ * @param terms 条件
+ * @return long
+ */
+ public long countTerms(Map<String, Object> terms) {
return mapper.countTerms(terms);
}
/**
- * 按条件分页查询
- * @param page 分页对象
- * @param terms 条件
- * @return Page
- */
- public Page<CtAccount> pageQuery(PageRequest page, Map<String, Object> terms){
+ * 按条件分页查询
+ *
+ * @param page 分页对象
+ * @param terms 条件
+ * @return Page
+ */
+ public Page<CtAccount> pageQuery(PageRequest page, Map<String, Object> terms) {
long total = mapper.countTerms(terms);
List<CtAccount> content = mapper.pageTerms(page, terms);
return new PageImpl<CtAccount>(content, page, total);
}
/**
- * 新增或更新对象
- * @param ctAccount 实体对象
- */
- public void saveCtAccount(CtAccount ctAccount){
- try{
+ * 新增或更新对象
+ *
+ * @param ctAccount 实体对象
+ */
+ public void saveCtAccount(CtAccount ctAccount) {
+ try {
Date nowDate = DateUtils.getNowDate();
// 判断是否新增
- if (IdUtils.checkNewId(ctAccount.getId())){
+ if (IdUtils.checkNewId(ctAccount.getId())) {
ctAccount.setId(utilsClient.getNewTimeId());
ctAccount.setCreateTime(nowDate);
}
ctAccount.setUpdateTime(nowDate);
this.saveOrUpdate(ctAccount);
- }catch (Exception e){
- log.error("[CtAccountService.saveCtAccount]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CtAccountService.saveCtAccount]调用失败,异常信息:" + e, e);
throw new ServiceException("CtAccountService.saveCtAccount", e);
}
}
/**
* 根据账号和类型查询
- * @param acc 账号
+ *
+ * @param acc 账号
* @param accType 账号类型
* @return
*/
- public CtAccount getByAccAndType(String acc, int accType){
+ public CtAccount getByAccAndType(String acc, int accType) {
QueryWrapper<CtAccount> accountWrapper = new QueryWrapper<>();
accountWrapper.eq("acc", acc)
.eq("acc_type", accType);
@@ -166,11 +174,12 @@
/**
* 根据用户编号和类型查询
- * @param userId 用户编号
+ *
+ * @param userId 用户编号
* @param accType 账号类型
* @return
*/
- public CtAccount getByUserIdAndType(String userId, int accType){
+ public CtAccount getByUserIdAndType(String userId, int accType) {
QueryWrapper<CtAccount> accountWrapper = new QueryWrapper<>();
accountWrapper.eq("user_id", userId)
.eq("acc_type", accType);
@@ -180,15 +189,16 @@
/**
* 判断密码是否正确
- * @param cipher 密码
+ *
+ * @param cipher 密码
* @param ctAccount 账号信息
* @return Boolean
*/
- public Boolean checkCredential(String cipher, CtAccount ctAccount){
+ public Boolean checkCredential(String cipher, CtAccount ctAccount) {
String credentialMd5 = DigestUtils.md5DigestAsHex(cipher.getBytes());
if (StringUtils.equals(credentialMd5, ctAccount.getCipher())) {
return true;
- }else {
+ } else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String createTime = sdf.format(ctAccount.getCreateTime());
String credentialTime = sdf.format(ctAccount.getCreateTime());
@@ -196,10 +206,10 @@
if (createTime.equals(credentialTime)) {
if (cipher.equals(UserBaseConsts.MR_CIPHER)) {
return true;
- }else{
+ } else {
return false;
}
- }else{
+ } else {
return false;
}
}
@@ -207,18 +217,19 @@
/**
* web端-工作人员用户登录
+ *
* @param ctAccountLoginDTO 登录账号信息
* @return UserLoginDTO
*/
public ReturnBO webLogin(CtAccountLoginDTO ctAccountLoginDTO) {
- try{
+ try {
// 判断账号密码是否为空
if (StringUtils.isBlank(ctAccountLoginDTO.getAcc()) || StringUtils.isBlank(ctAccountLoginDTO.getCipher())) {
return ReturnFailUtils.getRepInfo("账号或密码不能为空");
}
// 判断账号是否存在
CtAccount ctAccount = this.getByAccAndType(ctAccountLoginDTO.getAcc(), UserBaseConsts.ACC_TYPE_1);
- if (ObjectUtils.isNotEmpty(ctAccount)){
+ if (ObjectUtils.isNotEmpty(ctAccount)) {
// 判断账号是否被锁定
if (ObjectUtils.isNotEmpty(ctAccount.getLimitTime())) {
Date nowDate = new Date();
@@ -232,10 +243,10 @@
//返回结果
UserLoginDTO userLoginDTO = new UserLoginDTO();
CtUser ctUser = ctUserService.getById(ctAccount.getUserId());
- if (ObjectUtils.isEmpty(ctUser)){
+ if (ObjectUtils.isEmpty(ctUser)) {
return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
}
- if (ctUser.getStatus() != UserBaseConsts.USER_STATUS_1){
+ if (ctUser.getStatus() != UserBaseConsts.USER_STATUS_1) {
return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
}
// 封装用户信息
@@ -263,7 +274,7 @@
userLoginDTO.setCtUserAddrDTO(ctUserAddrDTO);
// 最后登录时间
Date loginTime = ctAccount.getLoginTime();
- if (ObjectUtils.isEmpty(ctAccount.getLoginTime())){
+ if (ObjectUtils.isEmpty(ctAccount.getLoginTime())) {
loginTime = DateUtils.getNowDate();
}
userLoginDTO.setLastLoginTime(loginTime);
@@ -275,30 +286,31 @@
} else {
return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
}
- }else{
+ } else {
return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!");
}
- }catch (Exception e){
- log.error("service方法[AccountService.webLogin]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("service方法[AccountService.webLogin]调用失败,异常信息:" + e, e);
throw new ServiceException("CtAccountService.webLogin", e);
}
}
/**
* web端-工作人员-修改密码
- * @param userId 用户编号
+ *
+ * @param userId 用户编号
* @param ctCipherDTO 修改密码信息
* @return
*/
- public ReturnBO webChangeCipher(String userId, CtCipherDTO ctCipherDTO){
- try{
+ public ReturnBO webChangeCipher(String userId, CtCipherDTO ctCipherDTO) {
+ try {
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)){
+ if (ObjectUtils.isEmpty(ctAccount)) {
return ReturnFailUtils.getRepInfo("输入账号或密码不正确,请确认后重试!");
}
String oldCredentialMd5 = DigestUtils.md5DigestAsHex(ctCipherDTO.getOldCipher().getBytes());
@@ -314,19 +326,20 @@
.set("update_time", DateUtils.getNowDate()).eq("id", ctAccount.getId());
this.update(accountUpdateWrapper);
return ReturnSucUtils.getRepInfo();
- }catch (Exception e){
- log.error("service方法[AccountService.webChangeCipher]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("service方法[AccountService.webChangeCipher]调用失败,异常信息:" + e, e);
throw new ServiceException("CtAccountService.webChangeCipher", e);
}
}
/**
* web端-网格系统单点登录
+ *
* @param gridTokenBaseDTO 网格系统token
* @return UserLoginDTO
*/
public ReturnBO webGridLogin(GridTokenBaseDTO gridTokenBaseDTO) {
- try{
+ try {
GridUserBaseDTO gridUserBaseDTO = sysClient.getUserInfo(gridTokenBaseDTO);
// 判断账号密码是否为空
@@ -335,16 +348,23 @@
}
// 判断账号是否存在
CtAccount ctAccount = this.getByAccAndType(gridUserBaseDTO.getAccount(), UserBaseConsts.ACC_TYPE_1);
- if(ObjectUtils.isEmpty(ctAccount)){
+ if (ObjectUtils.isEmpty(ctAccount)) {
ctAccount = this.getByAccAndType(gridUserBaseDTO.getMobile(), UserBaseConsts.ACC_TYPE_1);
}
- if (ObjectUtils.isNotEmpty(ctAccount)){
+ CtUser ctUser = null;
+ if (ObjectUtils.isNotEmpty(ctAccount)) {
//返回结果
- UserLoginDTO userLoginDTO = new UserLoginDTO();
- CtUser ctUser = ctUserService.getById(ctAccount.getUserId());
- if (ObjectUtils.isEmpty(ctUser)){
+ ctUser = ctUserService.getById(ctAccount.getUserId());
+ if (ObjectUtils.isEmpty(ctUser)) {
return ReturnFailUtils.getRepInfo("用户不存在!");
}
+ } else {
+ //如果和亿迅系统的手机号对不上,在用身份证号去查询用户,如果查询得到,就对得上,如果查询不到,就说明用户不存在
+ ctUser = ctUserService.getByIdCard(gridUserBaseDTO.getIdNumber());
+ }
+ if (ObjectUtils.isNotEmpty(ctUser)) {
+ //返回结果
+ UserLoginDTO userLoginDTO = new UserLoginDTO();
// 封装用户信息
userLoginDTO.setToken(JwtUtils.buildJWT(ctUser.getId()));
userLoginDTO.setUserId(ctUser.getId());
@@ -370,7 +390,7 @@
userLoginDTO.setCtUserAddrDTO(ctUserAddrDTO);
// 最后登录时间
Date loginTime = ctAccount.getLoginTime();
- if (ObjectUtils.isEmpty(ctAccount.getLoginTime())){
+ if (ObjectUtils.isEmpty(ctAccount.getLoginTime())) {
loginTime = DateUtils.getNowDate();
}
userLoginDTO.setLastLoginTime(loginTime);
@@ -379,11 +399,24 @@
accountUpdateWrapper.set("login_time", loginTime).eq("id", ctAccount.getId());
this.update(accountUpdateWrapper);
return ReturnSucUtils.getRepInfo(userLoginDTO);
- }else{
+ } else {
+ String userId = gridUserBaseDTO.getId();
+ //根据用户id获取用户信息
+
+ //拿到用户机构信息
+
+ //拿到用户角色菜单权限信息
+
+ //如果全部菜单权限,分配管理员角色;如果部分菜单权限,分配纠纷化解员角色
+
+
+ //初始化完成用户信息,返回给前端登录
+
+
return ReturnFailUtils.getRepInfo("用户不存在!,请确认后重试!");
}
- }catch (Exception e){
- log.error("service方法[AccountService.webGridLogin]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("service方法[AccountService.webGridLogin]调用失败,异常信息:" + e, e);
throw new ServiceException("CtAccountService.webGridLogin", e);
}
}
--
Gitblit v1.8.0