单位稳态指标数据统计日表 算法
This commit is contained in:
@@ -0,0 +1,76 @@
|
|||||||
|
package com.njcn.prepare.harmonic.controller.area;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.IRStatHarmonicOrgDService;
|
||||||
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.user.pojo.po.Dept;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类的介绍:
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @version 1.0.0
|
||||||
|
* @createTime 2023/7/19 14:09
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "单位稳态指标数据统计")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("AreaHarmonic")
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RStatHarmonicOrgController extends BaseController {
|
||||||
|
|
||||||
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
|
||||||
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
|
|
||||||
|
private final IRStatHarmonicOrgDService irStatHarmonicOrgDService;
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||||
|
@ApiOperation("日统计")
|
||||||
|
@PostMapping("day")
|
||||||
|
@ApiImplicitParam(value = "orgParam",name = "orgParam",required = true)
|
||||||
|
@ApiModelProperty("r_stat_harmonic_org_d表数据需要先生成r_stat_org_d表")
|
||||||
|
public HttpResult<Boolean> dayHandle(@RequestBody OrgParam orgParam){
|
||||||
|
log.info(LocalDateTime.now()+"dayHandle开始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("dayHandle");
|
||||||
|
/**
|
||||||
|
* 支持补录
|
||||||
|
*/
|
||||||
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
|
if(StringUtils.isEmpty(orgParam.getOrgId())){
|
||||||
|
Dept data = deptFeignClient.getRootDept().getData();
|
||||||
|
deptGetLineParam.setDeptId(data.getId());
|
||||||
|
}else {
|
||||||
|
deptGetLineParam.setDeptId(orgParam.getOrgId());
|
||||||
|
}
|
||||||
|
deptGetLineParam.setServerName(ServerInfo.PREPARE_BOOT);
|
||||||
|
List<DeptGetChildrenMoreDTO> data = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||||
|
irStatHarmonicOrgDService.dayHandle(data,orgParam.getDataDate());
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.njcn.prepare.harmonic.mapper.mysql.area;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.harmonic.pojo.po.RStatHarmonicOrgD;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuyang
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface RStatHarmonicOrgDMapper extends MppBaseMapper<RStatHarmonicOrgD> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RStatHarmonicOrgD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RStatOrgDPO;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatHarmonicOrgDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.IRStatHarmonicOrgDService;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类的介绍:
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @version 1.0.0
|
||||||
|
* @createTime 2023/7/20 9:31
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RStatHarmonicOrgDServiceImpl extends MppServiceImpl<RStatHarmonicOrgDMapper, RStatHarmonicOrgD> implements IRStatHarmonicOrgDService {
|
||||||
|
|
||||||
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper;
|
||||||
|
|
||||||
|
private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper;
|
||||||
|
|
||||||
|
private final RStatOrgDMapper rStatOrgDMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dayHandle(List<DeptGetChildrenMoreDTO> data, String dataDate) {
|
||||||
|
List<RStatHarmonicOrgD> orgDList = new ArrayList<>();
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
data.forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
/*主网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v)->{
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type",dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if(Objects.equals(dictData.getCode(),DicDataEnum.TOTAL_INDICATOR.getCode())){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicOrgD rStatHarmonicOrgD = new RStatHarmonicOrgD();
|
||||||
|
rStatHarmonicOrgD.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicOrgD.setDataDate(date);
|
||||||
|
rStatHarmonicOrgD.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicOrgD.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicOrgD.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
||||||
|
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
||||||
|
rStatHarmonicOrgD.setOverLimitMeasurementRatioAverage(1.00F);
|
||||||
|
}else{
|
||||||
|
String value = df.format((float)rStatHarmonicOrgD.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement());
|
||||||
|
rStatHarmonicOrgD.setOverLimitMeasurementRatioAverage(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
orgDList.add(rStatHarmonicOrgD);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/*配网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> pwMonitorMap = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
pwMonitorMap.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.select("is_freq", "is_v_dev", "is_v", "is_i", "is_unbalance", "is_i_neg").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker", "is_inuharm").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.NEG_CURRENT.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicOrgD rStatHarmonicOrgD = new RStatHarmonicOrgD();
|
||||||
|
rStatHarmonicOrgD.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicOrgD.setDataDate(date);
|
||||||
|
rStatHarmonicOrgD.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicOrgD.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicOrgD.setOverLimitMeasurementAverage(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
||||||
|
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
||||||
|
rStatHarmonicOrgD.setOverLimitMeasurementRatioAverage(1.00F);
|
||||||
|
}else{
|
||||||
|
String value = df.format((float)rStatHarmonicOrgD.getOverLimitMeasurementAverage()/ rStatOrgDPO.getEffectiveMeasurement());
|
||||||
|
rStatHarmonicOrgD.setOverLimitMeasurementRatioAverage(Float.parseFloat(value));
|
||||||
|
}
|
||||||
|
orgDList.add(rStatHarmonicOrgD);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
System.out.println("orgDList===:" + orgDList);
|
||||||
|
// if(!CollectionUtils.isEmpty(orgDList)){
|
||||||
|
// this.saveOrUpdateBatchByMultiId(orgDList,1000);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
private Integer getSteadyStatisData(DictData dictData, List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS, List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS) {
|
||||||
|
Integer value = 0;
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.VOLTAGE_DEV.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsVDev()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.FLICKER.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpSurplusHarmonicDetailDS.stream().filter(temp ->temp.getIsFlicker()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_VOLTAGE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsV()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_CURRENT.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsI()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpSurplusHarmonicDetailDS.stream().filter(temp ->temp.getIsInuharm()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.PHASE_VOLTAGE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsUnbalance()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.FREQUENCY_DEV.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsFreq()==1).count()+"");
|
||||||
|
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.NEG_CURRENT.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsINeg()==1).count()+"");
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.harmonic.pojo.po.RStatHarmonicOrgD;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuyang
|
||||||
|
*/
|
||||||
|
public interface IRStatHarmonicOrgDService extends IMppService<RStatHarmonicOrgD> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日表处理
|
||||||
|
* @param data 监测点信息
|
||||||
|
* @param dataDate 时间
|
||||||
|
*/
|
||||||
|
void dayHandle(List<DeptGetChildrenMoreDTO> data, String dataDate);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -116,48 +116,49 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//开始执行短信发送
|
// //开始执行短信发送
|
||||||
//设置超时时间-可自行调整
|
// //设置超时时间-可自行调整
|
||||||
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
|
// System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
|
||||||
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
|
// System.setProperty("sun.net.client.defaultReadTimeout", "10000");
|
||||||
//初始化ascClient需要的几个参数
|
// //初始化ascClient需要的几个参数
|
||||||
//短信API产品名称(短信产品名固定,无需修改)
|
// //短信API产品名称(短信产品名固定,无需修改)
|
||||||
final String product = "Dysmsapi";
|
// final String product = "Dysmsapi";
|
||||||
//短信API产品域名(接口地址固定,无需修改)
|
// //短信API产品域名(接口地址固定,无需修改)
|
||||||
final String domain = "dysmsapi.aliyuncs.com";
|
// final String domain = "dysmsapi.aliyuncs.com";
|
||||||
//替换成你的AK
|
// //替换成你的AK
|
||||||
//你的accessKeyId,参考本文档步骤2
|
// //你的accessKeyId,参考本文档步骤2
|
||||||
final String accessKeyId = "LTAI4FxsR76x2dq3w9c5puUe";
|
// final String accessKeyId = "LTAI4FxsR76x2dq3w9c5puUe";
|
||||||
//你的accessKeySecret,参考本文档步骤2
|
// //你的accessKeySecret,参考本文档步骤2
|
||||||
final String accessKeySecret = "GxkTR8fsrvHtixTlD9UPmOGli35tZs";
|
// final String accessKeySecret = "GxkTR8fsrvHtixTlD9UPmOGli35tZs";
|
||||||
//初始化ascClient,暂时不支持多region(请勿修改)
|
// //初始化ascClient,暂时不支持多region(请勿修改)
|
||||||
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
|
// IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
|
||||||
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
|
// DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
|
||||||
IAcsClient acsClient = new DefaultAcsClient(profile);
|
// IAcsClient acsClient = new DefaultAcsClient(profile);
|
||||||
SendSmsRequest request = new SendSmsRequest();
|
// SendSmsRequest request = new SendSmsRequest();
|
||||||
request.setMethod(MethodType.POST);
|
// request.setMethod(MethodType.POST);
|
||||||
request.setPhoneNumbers(phone);
|
// request.setPhoneNumbers(phone);
|
||||||
//必填:短信签名-可在短信控制台中找到
|
// //必填:短信签名-可在短信控制台中找到
|
||||||
request.setSignName("灿能云");
|
// request.setSignName("灿能云");
|
||||||
//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
|
// //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
|
||||||
request.setTemplateCode(msgTemplate);
|
// request.setTemplateCode(msgTemplate);
|
||||||
String vcode = getMessageCode();
|
String vcode = getMessageCode();
|
||||||
String code = "{\"code\":\"" + vcode + "\"}";
|
// String code = "{\"code\":\"" + vcode + "\"}";
|
||||||
request.setTemplateParam(code);
|
// request.setTemplateParam(code);
|
||||||
//请求失败这里会抛ClientException异常
|
// //请求失败这里会抛ClientException异常
|
||||||
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
|
// SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
|
||||||
String key = RedisKeyEnum.SMS_LOGIN_KEY.getKey() + phone;
|
String key = RedisKeyEnum.SMS_LOGIN_KEY.getKey() + phone;
|
||||||
if (sendSmsResponse.getCode() != null && "OK".equals(sendSmsResponse.getCode())) {
|
// if (sendSmsResponse.getCode() != null && "OK".equals(sendSmsResponse.getCode())) {
|
||||||
//成功发送短信验证码后,保存进redis
|
// //成功发送短信验证码后,保存进redis
|
||||||
|
// redisUtil.saveByKey(key, vcode);
|
||||||
|
// } else {
|
||||||
|
// throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL);
|
||||||
|
// }
|
||||||
redisUtil.saveByKey(key, vcode);
|
redisUtil.saveByKey(key, vcode);
|
||||||
} else {
|
|
||||||
throw new BusinessException(UserResponseEnum.SEND_CODE_FAIL);
|
|
||||||
}
|
|
||||||
AppSendMsg appSendMsg = new AppSendMsg();
|
AppSendMsg appSendMsg = new AppSendMsg();
|
||||||
appSendMsg.setPhone(phone);
|
appSendMsg.setPhone(phone);
|
||||||
appSendMsg.setMessage(vcode);
|
appSendMsg.setMessage(vcode);
|
||||||
appSendMsg.setSendTime(LocalDateTime.now());
|
appSendMsg.setSendTime(LocalDateTime.now());
|
||||||
appSendMsg.setSendStatus(sendSmsResponse.getCode() == null ? "无状态" : sendSmsResponse.getCode());
|
// appSendMsg.setSendStatus(sendSmsResponse.getCode() == null ? "无状态" : sendSmsResponse.getCode());
|
||||||
appSendMsgService.save(appSendMsg);
|
appSendMsgService.save(appSendMsg);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("发送短信异常,异常为:"+e.getMessage());
|
logger.error("发送短信异常,异常为:"+e.getMessage());
|
||||||
@@ -283,11 +284,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> impleme
|
|||||||
throw new BusinessException(UserResponseEnum.REGISTER_PHONE_REPEAT);
|
throw new BusinessException(UserResponseEnum.REGISTER_PHONE_REPEAT);
|
||||||
}
|
}
|
||||||
user = new User();
|
user = new User();
|
||||||
user.setName(phoneNew);
|
User user2 = this.lambdaQuery().eq(User::getId,userId).one();
|
||||||
user.setLoginName(phoneNew);
|
user2.setName(phoneNew);
|
||||||
user.setPhone(phoneNew);
|
user2.setLoginName(phoneNew);
|
||||||
user.setDevCode(devCode);
|
user2.setPhone(phoneNew);
|
||||||
this.updateById(user);
|
user2.setDevCode(devCode);
|
||||||
|
this.updateById(user2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user