Commit 7b77a05d authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.添加easy excel配置,增加转换器,增加全局excel导出样式,增加场站下拉选解析器;
2.开发光伏电站模板导出接口,增加模板导出类,并完成接口冒烟测试及接口文档;
3.间开制度管理模块新增设为基础制度开关接口,添加线上接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 46f54127
package pps.core.system.service;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
......@@ -224,55 +226,42 @@ public class LoginService {
return XServiceResult.OK;
}
/**
* 通过模拟登录
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link LoginBySimulateOutput}>
*/
@XText("模拟用户登陆")
@XApiPost(anonymous = true)
public XSingleResult<LoginByAccountOutput> loginBySimulate(XContext context, LoginBySimulateInput input) {
String loginName = input.getLoginName(); //账号
public XSingleResult<LoginBySimulateOutput> loginBySimulate(XContext context, LoginBySimulateInput input) {
String loginName = input.getLoginName();
SysUserMapper mapper = context.getBean(SysUserMapper.class);
QueryWrapper<SysUserEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SysUserEnt::getLoginName, loginName);
SysUserEnt sysUserEnt = mapper.selectOne(queryWrapper);
if (sysUserEnt == null) {
SysUserEnt sysUserEnt = mapper.selectOne(
new LambdaQueryWrapper<SysUserEnt>()
.eq(SysUserEnt::getLoginName, loginName)
);
if (ObjectUtil.isNull(sysUserEnt)) {
return XSingleResult.error(context, NotExistUserName);
}
Date now = new Date();
SysUserOrganizationRelMapper relMapper = context.getBean(SysUserOrganizationRelMapper.class);
QueryWrapper<SysUserOrganizationRelEnt> relQueryWrapper = new QueryWrapper<>();
relQueryWrapper.lambda().eq(SysUserOrganizationRelEnt::getUserId, sysUserEnt.getId());
relQueryWrapper.lambda().le(SysUserOrganizationRelEnt::getEffectTime, now);
relQueryWrapper.lambda().gt(SysUserOrganizationRelEnt::getEndTime, now);
SysUserOrganizationRelEnt sysUserOrganizationRelEnt = relMapper.selectOne(relQueryWrapper);
if (sysUserOrganizationRelEnt == null) {
sysUserOrganizationRelEnt = new SysUserOrganizationRelEnt();
sysUserOrganizationRelEnt.setOuId("1");
}
XApiCookieConf apiCookieConf = XConfManager.getConf(XApiCookieConf.class);
Integer expiresIn = apiCookieConf.getExpires();
String userName = sysUserEnt.getUserName(); //姓名
Long orgId = LOGIN_FLAG_SIMULATE; //组织机构id
Long roleId0 = 1L; //角色id1
Long roleId1 = 1L; //角色id2
Long userId = IdWorker.getId(); //用户id
String userCode = sysUserEnt.getId();//这个是用户字符串类型的唯一标志
String ssoToken = null; //sso系统授权的token
String ssoRefreshToken = null; //sso系统授权的刷新token
String uniqueId = XUuidUtils.randomUUID();
XUser user = XUser.createUser(XUser.ENTRY_API,
orgId,
new Long[]{roleId0, roleId1},
userId,
userCode,
Integer expiresIn = XConfManager.getConf(XApiCookieConf.class).getExpires();
XSingleResult<XToken> saveUserResult = XTokenHelper.saveUser(context,
XUser.createUser(XUser.ENTRY_API,
LOGIN_FLAG_SIMULATE,
new Long[]{1L, 1L},
IdWorker.getId(),
sysUserEnt.getId(),
loginName,
userName,
new XSsoAuth(uniqueId, ssoToken, ssoRefreshToken));
XSingleResult<XToken> saveUserResult = XTokenHelper.saveUser(context, user, expiresIn);
sysUserEnt.getUserName(),
new XSsoAuth(XUuidUtils.randomUUID(), null, null))
, expiresIn);
saveUserResult.throwIfFail();
LoginByAccountOutput output = new LoginByAccountOutput();
output.setExpiresIn(expiresIn);
output.setToken(saveUserResult.getResult().getToken());
PpsUserSession session = context.getSession(PpsUserSession.class);
output.setSession(session);
return XSingleResult.success(output);
return XSingleResult.success(LoginBySimulateOutput.builder()
.expiresIn(expiresIn)
.token(saveUserResult.getResult().getToken())
// .session(context.getSession(PpsUserSession.class))
.build());
}
@XText("退出")
......
package pps.core.system.service.data.sys_login;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
/**
* 模拟登录
*
* @author ZWT
* @date 2024/05/08
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class LoginBySimulateOutput {
/**
* token信息
*/
@XText("token")
private String token;
/**
* 有效时间(秒)
*/
@XText("有效时间(秒)")
private Integer expiresIn;
// @XText("session")
// private PpsUserSession session;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment