ADMIN 不单点登录

This commit is contained in:
方亮 2025-10-11 18:12:39 +08:00
parent 55c090af2d
commit 7e90939bea
4 changed files with 34 additions and 7 deletions

View File

@ -12,7 +12,6 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.redis.service.RedisService;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.config.SystemConfig;
import com.bonus.system.api.RemoteConfigService;
import com.bonus.system.api.RemoteUserService;
import com.bonus.system.api.domain.SysUser;
import com.bonus.system.api.model.LoginUser;
@ -20,7 +19,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -65,7 +63,11 @@ public class TokenService {
*/
public Map<String, Object> createToken(LoginUser loginUser) {
// 检查并删除已有的token
delExistingToken(loginUser.getSysUser().getUserId());
if (!isWindows() && "admin".equals(loginUser.getSysUser().getUserName())) {
delExistingToken(loginUser.getSysUser().getUserId());
}
String token = IdUtils.fastUUID();
Long userId = loginUser.getSysUser().getUserId();
String userName = loginUser.getSysUser().getUserName();
@ -93,6 +95,14 @@ public class TokenService {
AjaxResult edit = remoteUserService.systemUpdateUser(sysUser, SecurityConstants.INNER);
return rspMap;
}
public static boolean isWindows() {
String osName = System.getProperty("os.name").toLowerCase();
return osName.contains("win");
}
public boolean isLogin(String userId) {
String existingTokenKey = redisService.getCacheObject(LOGIN_USER_KEY + userId);

View File

@ -16,4 +16,5 @@ public class AttProMonthPo {
private Double grossSalary;
private Double netSalary;
private Integer payNum;
private Integer status;
}

View File

@ -140,11 +140,27 @@ public class ThreeTableOneRosterTask {
Integer id =mapper.getProMonthDataByTable(attProMonthPo);
if(id!=null && id>0){
attProMonthPo.setId(id);
attProMonthPo.setStatus(1);
mapper.updateProMonthData(attProMonthPo);
mapper.updateMonthId(attProMonthPo);
//查询是否存在本月数据
attProMonthPo.setMonth(current.toString());
Integer idMonth = mapper.getProMonthDataByTable(attProMonthPo);
if(idMonth!=null && idMonth>0){
//不更新
}else{
attProMonthPo.setStatus(0);
mapper.insertProMonthData(attProMonthPo);
}
}else{
attProMonthPo.setStatus(1);
mapper.insertProMonthData(attProMonthPo);
mapper.updateMonthId(attProMonthPo);
//插入本月空数据
attProMonthPo.setStatus(0);
attProMonthPo.setMonth(current.toString());
mapper.insertProMonthData(attProMonthPo);
}
mapper.updateMonthId(attProMonthPo);
}
}

View File

@ -332,13 +332,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<insert id="insertProMonthData" keyProperty="id" keyColumn="id" useGeneratedKeys="true">
insert into tb_pro_month_table(pro_id,table_month,roster_num,attendance_num,repair_num,salary_num,sub_num,team_num,gross_salary,net_salary,pay_num)
values(#{proId},#{month},#{rosterNum},#{attendanceNum},#{repairNum},#{salaryNum},#{subNum},#{teamNum},#{grossSalary},#{netSalary},#{payNum})
insert into tb_pro_month_table(pro_id,table_month,roster_num,attendance_num,repair_num,salary_num,sub_num,team_num,gross_salary,net_salary,pay_num,status)
values(#{proId},#{month},#{rosterNum},#{attendanceNum},#{repairNum},#{salaryNum},#{subNum},#{teamNum},#{grossSalary},#{netSalary},#{payNum},#{status})
</insert>
<update id="updateProMonthData">
update tb_pro_month_table set roster_num=#{rosterNum},attendance_num=#{attendanceNum},repair_num=#{repairNum},salary_num=#{salaryNum},
sub_num=#{subNum},team_num=#{teamNum},gross_salary=#{grossSalary},net_salary=#{netSalary},pay_num=#{payNum}
sub_num=#{subNum},team_num=#{teamNum},gross_salary=#{grossSalary},net_salary=#{netSalary},pay_num=#{payNum},status = #{status}
where pro_id=#{proId} and table_month=#{month}
</update>