fix: 优化逻辑

This commit is contained in:
tangwei 2026-04-29 09:31:08 +08:00
parent 459fff4fc5
commit daa70d3f20
8 changed files with 65 additions and 15 deletions

View File

@ -22,6 +22,7 @@ import com.yfd.platform.utils.QgcQueryWrapperUtil;
import com.yfd.platform.utils.SecurityUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.annotation.Resource;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
@ -67,9 +68,7 @@ public class FishDraftDataServiceImpl extends ServiceImpl<FishDraftDataMapper, F
String TM = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "TM");
String startTime=null;
String endTime=null;
SecurityUtils.getCurrentUser().getAuthorities();
String userId = SecurityUtils.getCurrentUser().getAuthorities().contains("sjtb:import-add") || "admin".equals(SecurityUtils.getCurrentUsername()) ?null:SecurityUtils.getUserId();
String userId = (SecurityUtils.hasPermission("sjtb:edit-review") || "admin".equals(SecurityUtils.getCurrentUsername())) ?null:SecurityUtils.getUserId();
// 如果 startTime endTime 为空尝试从 TM 字段解析
if (StrUtil.isNotBlank(TM)&& TM.split( ",").length==2) {
startTime=TM.split(",")[0];

View File

@ -7,6 +7,7 @@ import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.datasource.DataSource;
import com.yfd.platform.system.domain.SysUser;
import com.yfd.platform.system.domain.SysUserRequest;
import com.yfd.platform.system.service.ISmsVerifyCodeService;
import com.yfd.platform.system.service.IUserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -33,6 +34,9 @@ public class UserController {
@Resource
private IUserService userService;
@Resource
private ISmsVerifyCodeService smsVerifyCodeService;
@Log(module = "系统用户", value = "新增系统用户")
@PostMapping("/addUser")
@Operation(summary = "新增系统用户")
@ -157,12 +161,7 @@ public class UserController {
if (StrUtil.isBlank(id)) {
ResponseResult.error("参数为空");
}
boolean ok = userService.resetPassword(id);
if (ok) {
return ResponseResult.success();
} else {
return ResponseResult.error();
}
return userService.resetPassword(id);
}
/***********************************
@ -216,8 +215,13 @@ public class UserController {
if (auditStatus == null || (auditStatus != 1 && auditStatus != 2)) {
return ResponseResult.error("审核状态错误1-通过 2-驳回");
}
SysUser user = userService.getById(userId);
if (user == null) {
return ResponseResult.error("用户不存在");
}
boolean ok = userService.auditUser(userId, auditStatus);
if (ok) {
smsVerifyCodeService.sendAuditNotify(user.getPhone(), auditStatus, sysUserRequest.getCommentInfo());
return ResponseResult.success();
} else {
return ResponseResult.error("审核失败");

View File

@ -37,4 +37,13 @@ public interface ISmsVerifyCodeService extends IService<SmsVerifyCode> {
* 生成6位数字验证码
*/
String generateCode();
/**
* 发送审核结果通知短信
* @param phone 手机号
* @param auditStatus 审核状态 1-通过 2-驳回
* @param reason 驳回原因可选
* @return 是否发送成功
*/
boolean sendAuditNotify(String phone, Integer auditStatus, String reason);
}

View File

@ -101,7 +101,7 @@ public interface IUserService extends IService<SysUser> {
*id 重置密码的 用户id
* 返回值说明: 判断是否重置成功
************************************/
boolean resetPassword(String id) throws Exception;
ResponseResult resetPassword(String id) throws Exception;
/***********************************
* 用途说明设置账号状态(管理员)

View File

@ -96,4 +96,28 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
public String generateCode() {
return String.format("%06d", RANDOM.nextInt(1000000));
}
@Override
public boolean sendAuditNotify(String phone, Integer auditStatus, String reason) {
if (phone == null || phone.isEmpty()) {
return false;
}
String content;
if (auditStatus == 1) {
content = "您的数据填报系统账号已审核通过,现在可以正常登录系统了。";
} else if (auditStatus == 2) {
if (reason != null && !reason.isEmpty()) {
content = "您的数据填报系统账号审核未通过,原因:" + reason;
} else {
content = "您的数据填报系统账号审核未通过,请联系管理员。";
}
} else {
return false;
}
try {
return smsSender.send(phone, content);
} catch (Exception e) {
return false;
}
}
}

View File

@ -425,8 +425,7 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
* 返回值说明: 判断是重置成功
************************************/
@Override
public boolean resetPassword(String id) throws Exception {
boolean isOk = false;
public ResponseResult resetPassword(String id) throws Exception {
//根据当前用户id 查询角色表的级别 currentUser.getUser() 获取当前用户id
String level = sysUserMapper.getMaxLevel(id);
//判断是否获取级别
@ -443,10 +442,11 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
new Timestamp(System.currentTimeMillis())).set(
"lastmodifier", getUsername());
//是否修改成功
isOk = this.update(updateWrapper);
this.update(updateWrapper);
return ResponseResult.success("重置密码成功");
}
}
return isOk;
return ResponseResult.error();
}
/***********************************

View File

@ -22,10 +22,12 @@ import com.yfd.platform.exception.BadRequestException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import java.util.Collection;
import java.util.List;
/**
@ -91,4 +93,16 @@ public class SecurityUtils {
return JSONUtil.toList(array,Long.class);
}
// SecurityUtils.java
public static boolean hasPermission(String permission) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null || !authentication.isAuthenticated()) {
return false;
}
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
return authorities != null && authorities.stream()
.anyMatch(auth -> permission.equals(auth.getAuthority()));
}
}

View File

@ -1,6 +1,6 @@
spring:
profiles:
active: prod
active: devtw
jasypt:
encryptor: