Commit 1567d994 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.修改极短期间开预测定时任务逻辑,解决优化后部分优化结果时间段过短问题;
2.修改心知天气气象数据获取及接收定时任务,解决天气数据通过邮件下载后,部分数据精度丢失问题;
3.修改首页各个接口逻辑,对小数类型字段进行处理,修改首页接口,增加小时保留两位四舍五入逻辑,同时解决线路详情接口部分查询逻辑报错问题;
4.能耗分析模块,能耗概览接口修改,修改查询逻辑,修改数据获取逻辑及绿电占比计算逻辑;
5.能耗分析模块,消纳曲线用电趋势接口修改,修改查询逻辑,修改数据获取逻辑及绿电占比计算逻辑;
6.能耗分析模块,用电详情接口修改,修改查询逻辑,修改数据获取逻辑及绿电占比计算逻辑;
7.修改首页先导实验井间开制度模块接口查询逻辑,解决极短期间开优化修改后没有第一次开井时间标识导致数据查询不出来问题;
8.基础间开制度新增修改接口逻辑修改,删除防冻堵对井口处理逻辑;
9.极短期间开优化算法修改,增加防冻堵井开井时间优化逻辑;
10.提供长庆通过日期获取当日间开优化结果接口开发,完成接口冒烟测试并添加线上接口文档;
11.提供长庆1天光伏出力预测结果接口开发,完成接口冒烟测试并添加线上接口文档;
12.提供长庆15天光伏出力预测结果接口开发,完成接口冒烟测试并添加线上接口文档;
13.修改极短期间开优化算法,优化防冻堵策略;
14.开发第三方历史天气导入功能;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 5002ca0b
......@@ -96,54 +96,6 @@ public class LoginService {
return jsonString;
}
private static String getDepartment(String ouId, XContext context) {
try {
SysOrganizationRelMapper bean = context.getBean(SysOrganizationRelMapper.class);
QueryWrapper<SysOrganizationRelEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ou_id", ouId);
queryWrapper.lambda().lt(SysOrganizationRelEnt::getEffectTime, new Date());
queryWrapper.lambda().gt(SysOrganizationRelEnt::getEndTime, new Date());
SysOrganizationRelEnt sysOrganizationRelEnt = bean.selectOne(queryWrapper);
String ouIdPath = sysOrganizationRelEnt.getOuIdPath();
if (StringUtils.isEmpty(ouIdPath)) {
return null;
}
String[] split = ouIdPath.split("/");
SysOrganizationMapper mapper = context.getBean(SysOrganizationMapper.class);
QueryWrapper<SysOrganizationEnt> wrapper = new QueryWrapper<>();
wrapper.in("id", split);
wrapper.eq("is_deleted", "1");
List<SysOrganizationEnt> sysOrganizationEnts = mapper.selectList(wrapper);
Map<String, SysOrganizationEnt> personMap = sysOrganizationEnts.stream().collect(Collectors.toMap(
ent -> ent.getId(),
ent -> ent,
(p, n) -> p
));
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < split.length; i++) {
String ouName = personMap.get(split[i]).getOuName();
if (i == split.length - 1) {
buffer.append(ouName);
} else {
buffer.append(ouName).append(SPLIT);
}
}
return buffer.toString();
} catch (Exception e) {
context.log().info("获取机构path错误");
return null;
}
}
@XText("获取最后一次登录信息")
@XApiGet
public XSingleResult<GetLastLoginInfoOutput> getLastLoginInfo(XContext context, GetLastLoginInfoInput input) {
......@@ -161,14 +113,6 @@ public class LoginService {
return XSingleResult.success(output);
}
private boolean checkIsSendSmsCode(XContext context) {
Integer sendSmsCodeSwitch = new LoginConfig().sendSmsCodeSwitch.findValue(context);
if (sendSmsCodeSwitch != null && sendSmsCodeSwitch == 1) {
return true;
}
return false;
}
@XText("登陆发送短信")
@XApiGet(anonymous = true)
public XServiceResult sendCode(XContext context, SendCodeInput input) {
......@@ -207,62 +151,6 @@ public class LoginService {
return XServiceResult.OK;
}
private XSingleResult<SysUserEnt> checkAccount(XContext context, String loginName, String password) {
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) {
insertError(context, loginName);
Long count = getErrorTimes(context, loginName, sysUserEnt);
throw new XServiceException(1000, "用户名或密码错误,还剩" + (5 - count) + "次机会");
}
if (StringUtils.isNotBlank(password)) {
//password = MD5Util.encryptPassword(AESUtil.decrypt(password));
String decrypt = sysUserEnt.getPassword();
if (!password.equals(decrypt)) {
insertError(context, loginName);
Long count = getErrorTimes(context, loginName, sysUserEnt);
throw new XServiceException(1000, "用户名或密码错误,还剩" + (5 - count) + "次机会");
}
}
return XSingleResult.success(sysUserEnt);
}
private void checkSmsCode(XContext context, String userKey, String smsCode) {
if (!checkIsSendSmsCode(context)) {
return;
}
if (StringUtils.isBlank(smsCode)) {
throw new XServiceException(context, LoginError.NotValidateSmsCode);
}
LoginSmsCodeCache smsCodeCache = LoginSmsCodeCache.exist(context, userKey);
if (smsCodeCache != null) {
String code = smsCodeCache.getCode();
if (code.equals(smsCode)) {
LoginSmsCodeCache.delete(context, userKey);
return;
}
}
throw new XServiceException(context, LoginError.NotValidateSmsCode);
}
private void checkCode(XContext context, String code, String codeIden) {
// if (!checkIsSendSmsCode(context)) {
// return;
// }
if (code == null) {
throw new XServiceException(context, LoginError.NotExistCode);
}
LoginVerCodeCache isUse = LoginVerCodeCache.exist(context, codeIden);
if (isUse == null) {
throw new XServiceException(context, LoginError.NotUsedCode);
}
if (!isUse.getCode().toLowerCase().equals(code.toLowerCase())) {
throw new XServiceException(context, LoginError.NotCompareCode);
}
}
@XText("账号密码登录")
@XApiPost(anonymous = true)
public XSingleResult<LoginByAccountOutput> loginByAccount(XContext context, LoginByAccountInput input) {
......@@ -634,6 +522,109 @@ public class LoginService {
return XSingleResult.success(output);
}
/*------------------------------- private -------------------------------*/
private static String getDepartment(String ouId, XContext context) {
try {
SysOrganizationRelMapper bean = context.getBean(SysOrganizationRelMapper.class);
QueryWrapper<SysOrganizationRelEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ou_id", ouId);
queryWrapper.lambda().lt(SysOrganizationRelEnt::getEffectTime, new Date());
queryWrapper.lambda().gt(SysOrganizationRelEnt::getEndTime, new Date());
SysOrganizationRelEnt sysOrganizationRelEnt = bean.selectOne(queryWrapper);
String ouIdPath = sysOrganizationRelEnt.getOuIdPath();
if (StringUtils.isEmpty(ouIdPath)) {
return null;
}
String[] split = ouIdPath.split("/");
SysOrganizationMapper mapper = context.getBean(SysOrganizationMapper.class);
QueryWrapper<SysOrganizationEnt> wrapper = new QueryWrapper<>();
wrapper.in("id", split);
wrapper.eq("is_deleted", "1");
List<SysOrganizationEnt> sysOrganizationEnts = mapper.selectList(wrapper);
Map<String, SysOrganizationEnt> personMap = sysOrganizationEnts.stream().collect(Collectors.toMap(
ent -> ent.getId(),
ent -> ent,
(p, n) -> p
));
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < split.length; i++) {
String ouName = personMap.get(split[i]).getOuName();
if (i == split.length - 1) {
buffer.append(ouName);
} else {
buffer.append(ouName).append(SPLIT);
}
}
return buffer.toString();
} catch (Exception e) {
context.log().info("获取机构path错误");
return null;
}
}
private boolean checkIsSendSmsCode(XContext context) {
Integer sendSmsCodeSwitch = new LoginConfig().sendSmsCodeSwitch.findValue(context);
if (sendSmsCodeSwitch != null && sendSmsCodeSwitch == 1) {
return true;
}
return false;
}
private XSingleResult<SysUserEnt> checkAccount(XContext context, String loginName, String password) {
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) {
insertError(context, loginName);
Long count = getErrorTimes(context, loginName, sysUserEnt);
throw new XServiceException(1000, "用户名或密码错误,还剩" + (5 - count) + "次机会");
}
if (StringUtils.isNotBlank(password)) {
//password = MD5Util.encryptPassword(AESUtil.decrypt(password));
String decrypt = sysUserEnt.getPassword();
if (!password.equals(decrypt)) {
insertError(context, loginName);
Long count = getErrorTimes(context, loginName, sysUserEnt);
throw new XServiceException(1000, "用户名或密码错误,还剩" + (5 - count) + "次机会");
}
}
return XSingleResult.success(sysUserEnt);
}
private void checkSmsCode(XContext context, String userKey, String smsCode) {
if (!checkIsSendSmsCode(context)) {
return;
}
if (StringUtils.isBlank(smsCode)) {
throw new XServiceException(context, LoginError.NotValidateSmsCode);
}
LoginSmsCodeCache smsCodeCache = LoginSmsCodeCache.exist(context, userKey);
if (smsCodeCache != null) {
String code = smsCodeCache.getCode();
if (code.equals(smsCode)) {
LoginSmsCodeCache.delete(context, userKey);
return;
}
}
throw new XServiceException(context, LoginError.NotValidateSmsCode);
}
private void checkCode(XContext context, String code, String codeIden) {
if (code == null) {
throw new XServiceException(context, LoginError.NotExistCode);
}
LoginVerCodeCache isUse = LoginVerCodeCache.exist(context, codeIden);
if (isUse == null) {
throw new XServiceException(context, LoginError.NotUsedCode);
}
if (!isUse.getCode().toLowerCase().equals(code.toLowerCase())) {
throw new XServiceException(context, LoginError.NotCompareCode);
}
}
private void deleteError(XContext context, SysUserEnt sysUserEnt) {
//删除登录日志错误信息
SysUserLoginLogMapper userLoginLogMapper = context.getBean(SysUserLoginLogMapper.class);
......
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