diff --git a/pom.xml b/pom.xml
index 517be2e..2e9311f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,11 +30,6 @@
-
- com.jjb.saas
- jjb-saas-system-client
- 1.7.0-SNAPSHOT
-
com.zcloud.basic.info
@@ -66,6 +61,12 @@
jjb-saas-system-client
1.7.0-SNAPSHOT
+
+ com.jjb.saas
+ jjb-saas-auth-client
+ 1.6.6-SNAPSHOT
+
+
diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java
index d318f73..b45c8b6 100644
--- a/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java
+++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java
@@ -135,5 +135,13 @@ public class UserController {
userService.changePassword(id);
return SingleResponse.buildSuccess();
}
+
+
+ @ApiOperation("修改密码")
+ @PostMapping("/updatePassword")
+ public Response updatePassword(@Validated @RequestBody UserUpdatePassWordCmd userUpdatePassWordCmd){
+
+ return userService.updatePassword(userUpdatePassWordCmd);
+ }
}
diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java
index 7476f47..f76270d 100644
--- a/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java
+++ b/web-app/src/main/java/com/zcloud/basic/info/command/CorpInfoUpdateExe.java
@@ -4,6 +4,7 @@ import com.alibaba.cola.dto.Response;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.system.client.tenant.facade.TenantFacade;
import com.jjb.saas.system.client.tenant.request.OtaPlatformUserUpdateCmd;
+import com.jjb.saas.system.client.tenant.request.TenantUpdateStatusCmd;
import com.zcloud.basic.info.domain.gateway.CorpInfoGateway;
import com.zcloud.basic.info.domain.model.CorpInfoE;
import com.zcloud.basic.info.dto.CorpInfoUpdateCmd;
@@ -96,6 +97,14 @@ public class CorpInfoUpdateExe {
BeanUtils.copyProperties(corpInfoUpdateUseFlagCmd, corpInfoDO);
corpInfoRepository.updateById(corpInfoDO);
//TODO 通知GBS修改禁用启用标识
+ TenantUpdateStatusCmd tenantUpdateStatusCmd = new TenantUpdateStatusCmd();
+ tenantUpdateStatusCmd.setId(corpInfoUpdateUseFlagCmd.getId());
+ if (corpInfoUpdateUseFlagCmd.getUseFlag() == 1){
+ tenantUpdateStatusCmd.setStatusEnum("TRUE");
+ } else if (corpInfoUpdateUseFlagCmd.getUseFlag() == 0){
+ tenantUpdateStatusCmd.setStatusEnum("FALSE");
+ }
+ tenantFacade.updateStatusEnum(tenantUpdateStatusCmd);
}
}
diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java
index 2f4c392..a18eef0 100644
--- a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java
+++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java
@@ -1,5 +1,6 @@
package com.zcloud.basic.info.command;
+import com.alibaba.cola.dto.Response;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.system.client.user.facade.UserFacade;
import com.zcloud.basic.info.domain.gateway.UserEmploymentLogGateway;
@@ -7,11 +8,13 @@ import com.zcloud.basic.info.domain.gateway.UserGateway;
import com.zcloud.basic.info.domain.model.UserE;
import com.zcloud.basic.info.domain.model.UserEmploymentLogE;
import com.zcloud.basic.info.dto.UserUpdateCmd;
+import com.zcloud.basic.info.dto.UserUpdatePassWordCmd;
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
import com.zcloud.basic.info.persistence.dataobject.UserDO;
import com.zcloud.basic.info.persistence.repository.CorpInfoRepository;
import com.zcloud.basic.info.persistence.repository.UserRepository;
import com.zcloud.gbscommon.utils.Const;
+import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.ZcloudRedisUtil;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
@@ -21,6 +24,8 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
+import java.util.Map;
+
/**
* web-app
@@ -85,5 +90,14 @@ public class UserUpdateExe {
userE.resetPassword();
userRepository.changePassword(id, userE.getPassword());
}
+
+
+ @Transactional(rollbackFor = Exception.class)
+ public Response executeUpdatePassword(UserUpdatePassWordCmd userUpdatePassWordCmd) {
+ UserE userE = new UserE();
+ BeanUtils.copyProperties(userUpdatePassWordCmd, userE);
+ userE.encryptionPassword();
+ return userGateway.updatePassword(userE);
+ }
}
diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java
index 923e2f1..fdbd836 100644
--- a/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java
+++ b/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java
@@ -119,5 +119,10 @@ public class UserServiceImpl implements UserServiceI {
userUpdateExe.executeChangePassword(id);
}
+ @Override
+ public Response updatePassword(UserUpdatePassWordCmd userUpdatePassWordCmd) {
+ return userUpdateExe.executeUpdatePassword(userUpdatePassWordCmd);
+ }
+
}
diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java
index 4259296..50c4a66 100644
--- a/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java
+++ b/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java
@@ -49,5 +49,6 @@ public interface UserServiceI {
UserCO getInfoByUserId(Long aLong);
void changePassword(Long id);
+ Response updatePassword(UserUpdatePassWordCmd userUpdatePassWordCmd);
}
diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/UserUpdatePassWordCmd.java b/web-client/src/main/java/com/zcloud/basic/info/dto/UserUpdatePassWordCmd.java
new file mode 100644
index 0000000..d6de65e
--- /dev/null
+++ b/web-client/src/main/java/com/zcloud/basic/info/dto/UserUpdatePassWordCmd.java
@@ -0,0 +1,34 @@
+package com.zcloud.basic.info.dto;
+
+import com.alibaba.cola.dto.Command;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * web-client
+ *
+ * @Author zhangyue
+ * @Date 2025-11-04 14:07:38
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserUpdatePassWordCmd extends Command {
+ @ApiModelProperty(value = "GBS用户id", name = "id", required = true)
+ @NotNull(message = "GBS用户id不能为空")
+ private Long id;
+ @ApiModelProperty(value = "原密码", name = "password")
+ @NotEmpty(message = "原密码不能为空")
+ private String password;
+ @ApiModelProperty(value = "新密码", name = "newPassword")
+ @NotEmpty(message = "新密码不能为空")
+ private String newPassword;
+}
+
diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/UserGateway.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/UserGateway.java
index febe628..3c2d1f4 100644
--- a/web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/UserGateway.java
+++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/UserGateway.java
@@ -32,5 +32,10 @@ public interface UserGateway {
Boolean deletedUserByIds(Long[] id);
Response countUser(Map params);
+
+ /**
+ * 修改密码
+ */
+ Response updatePassword(UserE userE);
}
diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java
index 4002db7..f2d99b6 100644
--- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java
+++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java
@@ -129,6 +129,8 @@ public class UserE extends BaseE {
//密码
private String password;
+ //密码
+ private String newPassword;
// 入职状态
private Integer employmentFlag;
// 父级租户id
@@ -360,5 +362,10 @@ public class UserE extends BaseE {
String encrypt = Sm2Util.encryptHex(MD5.md5(defaultPassword), publicKey);
this.setPassword(encrypt);
}
+
+ public void encryptionPassword() {
+ this.setPassword(Sm2Util.encryptHex(MD5.md5(password), publicKey));
+ this.setNewPassword(Sm2Util.encryptHex(MD5.md5(newPassword), publicKey));
+ }
}
diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/UserGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/UserGatewayImpl.java
index ae54429..3c7bc70 100644
--- a/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/UserGatewayImpl.java
+++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/UserGatewayImpl.java
@@ -6,6 +6,7 @@ import com.zcloud.basic.info.domain.gateway.UserGateway;
import com.zcloud.basic.info.domain.model.UserE;
import com.zcloud.basic.info.persistence.dataobject.UserDO;
import com.zcloud.basic.info.persistence.repository.UserRepository;
+import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -55,5 +56,12 @@ public class UserGatewayImpl implements UserGateway {
public Response countUser(Map params) {
return userRepository.countUser(params);
}
+
+ @Override
+ public Response updatePassword(UserE userE) {
+ UserDO userDO = new UserDO();
+ BeanUtils.copyProperties(userE, userDO);
+ return userRepository.updatePassword(userDO);
+ }
}
diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserDO.java
index e19cfc0..7d44a96 100644
--- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserDO.java
+++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserDO.java
@@ -131,6 +131,10 @@ public class UserDO extends BaseDO {
@ApiModelProperty(value = "密码")
@TableField(exist = false)
private String password;
+ //密码
+ @ApiModelProperty(value = "新密码")
+ @TableField(exist = false)
+ private String newPassword;
// 年龄
@ApiModelProperty(value = "年龄")
diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java
index e8a9b98..b9978e7 100644
--- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java
+++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java
@@ -56,5 +56,9 @@ public interface UserRepository extends BaseRepository {
Map getRoleMap();
+
+
+ Response updatePassword(UserDO userDO);
+
}
diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java
index d9d019f..09f9e44 100644
--- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java
+++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java
@@ -8,12 +8,16 @@ import com.alibaba.cola.dto.SingleResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jjb.saas.auth.client.account.facade.AccountFacade;
+import com.jjb.saas.auth.client.account.request.AccountPasswordCheckCmd;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.jjb.saas.system.client.role.facade.RoleFacade;
import com.jjb.saas.system.client.role.response.RoleCO;
+import com.jjb.saas.system.client.system.facade.SystemFacade;
+import com.jjb.saas.system.client.tenant.facade.TenantFacade;
import com.jjb.saas.system.client.user.facade.UserFacade;
import com.jjb.saas.system.client.user.request.RoleDeptAddCmd;
import com.jjb.saas.system.client.user.request.UserAddCmd;
@@ -55,6 +59,9 @@ public class UserRepositoryImpl extends BaseRepositoryImpl i
@DubboReference(check = false)
private RoleFacade roleFacade;
+ @DubboReference(check = false)
+ private AccountFacade accountFacade;
+
@Override
public PageResponse listPage(Map params) {
IPage iPage = new Query().getPage(params);
@@ -62,6 +69,7 @@ public class UserRepositoryImpl extends BaseRepositoryImpl i
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params, "u.");
queryWrapper.orderByDesc("u.sort");
queryWrapper.eq("u.delete_enum", "FALSE");
+ queryWrapper.apply("u.id != u.corpinfo_id");
IPage result = userMapper.selectUserPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@@ -106,6 +114,7 @@ public class UserRepositoryImpl extends BaseRepositoryImpl i
@Override
public UserDO getInfoById(Long id) {
+
return userMapper.getInfoById(id);
}
@@ -267,5 +276,22 @@ public class UserRepositoryImpl extends BaseRepositoryImpl i
}
return null;
}
+
+ @Override
+ public Response updatePassword(UserDO userDO) {
+ // TODO 验证老密码是否正确
+ AccountPasswordCheckCmd accountPasswordCheckCmd = new AccountPasswordCheckCmd();
+ accountPasswordCheckCmd.setUserId(userDO.getId());
+ accountPasswordCheckCmd.setPassword(userDO.getPassword());
+ SingleResponse response = accountFacade.checkPassword(accountPasswordCheckCmd);
+ if(!response.isSuccess()){
+ return Response.buildFailure("原密码不正确");
+ }
+// 更新密码
+ UserUpdatePasswordCmd userUpdatePasswordCmd = new UserUpdatePasswordCmd();
+ userUpdatePasswordCmd.setId(userDO.getId());
+ userUpdatePasswordCmd.setPassword(userDO.getNewPassword());
+ return userFacade.updatePassword(userUpdatePasswordCmd);
+ }
}
diff --git a/web-infrastructure/src/main/resources/mapper/UserMapper.xml b/web-infrastructure/src/main/resources/mapper/UserMapper.xml
index e21a31e..1ed6a7a 100644
--- a/web-infrastructure/src/main/resources/mapper/UserMapper.xml
+++ b/web-infrastructure/src/main/resources/mapper/UserMapper.xml
@@ -71,7 +71,8 @@
left join department d on d.id = u.department_id
left join post p on p.id = u.post_id
- u.delete_enum = 'FALSE'
+ u.id != u.corpinfo_id
+ and u.delete_enum = 'FALSE'
and u.corpinfo_id = #{params.corpinfoId}