mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-13 11:49:49 +08:00
新增 后管生成个人桩时,生成密钥逻辑,并且绑定个人桩时增加密钥校验
This commit is contained in:
@@ -30,6 +30,7 @@ import com.jsowell.pile.vo.base.PileInfoVO;
|
|||||||
import com.jsowell.pile.vo.uniapp.*;
|
import com.jsowell.pile.vo.uniapp.*;
|
||||||
import com.jsowell.pile.vo.web.PileStationVO;
|
import com.jsowell.pile.vo.web.PileStationVO;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -113,7 +114,12 @@ public class PileService {
|
|||||||
// 组装pile_basic_info表数据
|
// 组装pile_basic_info表数据
|
||||||
basicInfo = new PileBasicInfo();
|
basicInfo = new PileBasicInfo();
|
||||||
basicInfo.setSn(sn); // sn号
|
basicInfo.setSn(sn); // sn号
|
||||||
basicInfo.setBusinessType(BusinessTypeEnum.OPERATING_PILE.getValue()); // 经营类型 默认运营桩
|
basicInfo.setBusinessType(dto.getChargerPileType()); // 经营类型 1-运营桩;2-个人桩
|
||||||
|
if (StringUtils.equals(BusinessTypeEnum.INDIVIDUAL_PILE.getValue(), dto.getChargerPileType())) {
|
||||||
|
// 个人桩生成一个八位的密钥(字母加数字)
|
||||||
|
String secretKey = RandomStringUtils.randomAlphanumeric(8).toUpperCase(Locale.ROOT);
|
||||||
|
basicInfo.setSecretKey(secretKey);
|
||||||
|
}
|
||||||
basicInfo.setSoftwareProtocol(dto.getSoftwareProtocol()); // 软件协议
|
basicInfo.setSoftwareProtocol(dto.getSoftwareProtocol()); // 软件协议
|
||||||
basicInfo.setMerchantId(Long.valueOf(dto.getMerchantId())); // 运营商id
|
basicInfo.setMerchantId(Long.valueOf(dto.getMerchantId())); // 运营商id
|
||||||
basicInfo.setStationId(Long.valueOf(dto.getStationId())); // 站点id
|
basicInfo.setStationId(Long.valueOf(dto.getStationId())); // 站点id
|
||||||
@@ -245,7 +251,17 @@ public class PileService {
|
|||||||
// 说明已经被绑定过,抛出异常
|
// 说明已经被绑定过,抛出异常
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_PILE_HAS_BEEN_BINDING_ERROR);
|
throw new BusinessException(ReturnCodeEnum.CODE_PILE_HAS_BEEN_BINDING_ERROR);
|
||||||
}
|
}
|
||||||
// 如果没被绑定,则此用户为管理员
|
// 如果没被绑定,先校验桩密钥是否一致
|
||||||
|
PileBasicInfo pileBasicInfo = pileBasicInfoService.selectPileBasicInfoBySN(dto.getPileSn());
|
||||||
|
if (pileBasicInfo == null) {
|
||||||
|
// 未查到则说明没有此桩
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_PILE_NOT_INFO);
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(pileBasicInfo.getSecretKey(), dto.getSecretKey())) {
|
||||||
|
// 错误的密钥信息
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_SECRET_KEY_ERROR);
|
||||||
|
}
|
||||||
|
// 密钥正确,且桩未被绑定,则此用户为管理员
|
||||||
pileMemberRelation.setMemberId(dto.getMemberId());
|
pileMemberRelation.setMemberId(dto.getMemberId());
|
||||||
pileMemberRelation.setType("1"); // 1-管理员
|
pileMemberRelation.setType("1"); // 1-管理员
|
||||||
return pileMemberRelationService.insertPileMemberRelation(pileMemberRelation);
|
return pileMemberRelationService.insertPileMemberRelation(pileMemberRelation);
|
||||||
@@ -346,7 +362,7 @@ public class PileService {
|
|||||||
public PersonPileConnectorSumInfoVO getAccumulativeInfo(QueryPersonPileDTO dto) {
|
public PersonPileConnectorSumInfoVO getAccumulativeInfo(QueryPersonPileDTO dto) {
|
||||||
List<PersonPileConnectorSumInfoVO> accumulativeInfo = orderBasicInfoService.getAccumulativeInfo(dto);
|
List<PersonPileConnectorSumInfoVO> accumulativeInfo = orderBasicInfoService.getAccumulativeInfo(dto);
|
||||||
if (CollectionUtils.isEmpty(accumulativeInfo)) {
|
if (CollectionUtils.isEmpty(accumulativeInfo)) {
|
||||||
throw new BusinessException("00400011", "未查到相关订单信息!");
|
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
|
||||||
}
|
}
|
||||||
// BigDecimal sumChargingTime = BigDecimal.ZERO;
|
// BigDecimal sumChargingTime = BigDecimal.ZERO;
|
||||||
// BigDecimal sumUsedElectricity = BigDecimal.ZERO;
|
// BigDecimal sumUsedElectricity = BigDecimal.ZERO;
|
||||||
@@ -391,7 +407,7 @@ public class PileService {
|
|||||||
PageHelper.startPage(pageNum, pageSize);
|
PageHelper.startPage(pageNum, pageSize);
|
||||||
List<PersonPileConnectorSumInfoVO> accumulativeInfo = orderBasicInfoService.getAccumulativeInfo(dto);
|
List<PersonPileConnectorSumInfoVO> accumulativeInfo = orderBasicInfoService.getAccumulativeInfo(dto);
|
||||||
if (CollectionUtils.isEmpty(accumulativeInfo)) {
|
if (CollectionUtils.isEmpty(accumulativeInfo)) {
|
||||||
throw new BusinessException("00400011", "未查到相关订单信息!");
|
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
|
||||||
}
|
}
|
||||||
PageInfo<PersonPileConnectorSumInfoVO> pageInfo = new PageInfo<>(accumulativeInfo);
|
PageInfo<PersonPileConnectorSumInfoVO> pageInfo = new PageInfo<>(accumulativeInfo);
|
||||||
for (PersonPileConnectorSumInfoVO personPileConnectorSumInfoVO : pageInfo.getList()) {
|
for (PersonPileConnectorSumInfoVO personPileConnectorSumInfoVO : pageInfo.getList()) {
|
||||||
|
|||||||
@@ -115,6 +115,12 @@ public enum ReturnCodeEnum {
|
|||||||
CODE_USER_BINDING_CARNO_ERROR("00500002", "用户绑定车牌号异常"),
|
CODE_USER_BINDING_CARNO_ERROR("00500002", "用户绑定车牌号异常"),
|
||||||
|
|
||||||
CODE_USER_UNBIND_CARNO_ERROR("00500003", "用户解绑车牌号异常"),
|
CODE_USER_UNBIND_CARNO_ERROR("00500003", "用户解绑车牌号异常"),
|
||||||
|
|
||||||
|
CODE_QUERY_ORDER_INFO_IS_NULL("00400011", "未查到相关订单信息!"),
|
||||||
|
|
||||||
|
CODE_PILE_NOT_INFO("00400012", "未查到该该桩的信息,请检查!"),
|
||||||
|
|
||||||
|
CODE_SECRET_KEY_ERROR("00400013", "填写的桩密钥有误,请检查!"),
|
||||||
;
|
;
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|||||||
@@ -40,6 +40,12 @@ public class PileBasicInfo extends BaseEntity {
|
|||||||
@Excel(name = "经营类型", readConverterExp = "1=-运营桩;2-个人桩")
|
@Excel(name = "经营类型", readConverterExp = "1=-运营桩;2-个人桩")
|
||||||
private String businessType;
|
private String businessType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 个人桩密钥(八位,字母数字组合)
|
||||||
|
*/
|
||||||
|
@Excel(name = "个人桩密钥")
|
||||||
|
private String secretKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 软件协议(1-云快充;2-永联)
|
* 软件协议(1-云快充;2-永联)
|
||||||
*/
|
*/
|
||||||
@@ -190,12 +196,21 @@ public class PileBasicInfo extends BaseEntity {
|
|||||||
return delFlag;
|
return delFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSecretKey() {
|
||||||
|
return secretKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecretKey(String secretKey) {
|
||||||
|
this.secretKey = secretKey;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
|
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
|
||||||
.append("id", getId())
|
.append("id", getId())
|
||||||
.append("sn", getSn())
|
.append("sn", getSn())
|
||||||
.append("businessType", getBusinessType())
|
.append("businessType", getBusinessType())
|
||||||
|
.append("secretKey", getSecretKey())
|
||||||
.append("softwareProtocol", getSoftwareProtocol())
|
.append("softwareProtocol", getSoftwareProtocol())
|
||||||
.append("productionDate", getProductionDate())
|
.append("productionDate", getProductionDate())
|
||||||
.append("licenceId", getLicenceId())
|
.append("licenceId", getLicenceId())
|
||||||
|
|||||||
@@ -51,4 +51,10 @@ public class BatchCreatePileDTO {
|
|||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经营类型
|
||||||
|
* 1-运营桩;2-个人桩
|
||||||
|
*/
|
||||||
|
private String chargerPileType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ public class PileMemberBindingDTO {
|
|||||||
*/
|
*/
|
||||||
private String pileSn;
|
private String pileSn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 个人桩密钥
|
||||||
|
*/
|
||||||
|
private String secretKey;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 手机号
|
* 手机号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="id" column="id" />
|
<result property="id" column="id" />
|
||||||
<result property="sn" column="sn" />
|
<result property="sn" column="sn" />
|
||||||
<result property="businessType" column="business_type" />
|
<result property="businessType" column="business_type" />
|
||||||
|
<result property="secretKey" column="secret_key" />
|
||||||
<result property="softwareProtocol" column="software_protocol" />
|
<result property="softwareProtocol" column="software_protocol" />
|
||||||
<result property="productionDate" column="production_date" />
|
<result property="productionDate" column="production_date" />
|
||||||
<result property="licenceId" column="licence_id" />
|
<result property="licenceId" column="licence_id" />
|
||||||
@@ -26,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
<!--@mbg.generated-->
|
<!--@mbg.generated-->
|
||||||
id, sn, business_type, software_protocol, production_date, licence_id, model_id, sim_id,
|
id, sn, business_type, secret_key, software_protocol, production_date, licence_id, model_id, sim_id,
|
||||||
merchant_id, station_id, fault_reason, create_by, create_time, update_by, update_time, del_flag, remark
|
merchant_id, station_id, fault_reason, create_by, create_time, update_by, update_time, del_flag, remark
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
@@ -40,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<where>
|
<where>
|
||||||
<if test="sn != null and sn != ''"> and sn = #{sn}</if>
|
<if test="sn != null and sn != ''"> and sn = #{sn}</if>
|
||||||
<if test="businessType != null and businessType != ''"> and business_type = #{businessType}</if>
|
<if test="businessType != null and businessType != ''"> and business_type = #{businessType}</if>
|
||||||
|
<if test="secretKey != null and secretKey != ''"> and secret_key = #{secretKey}</if>
|
||||||
<if test="softwareProtocol != null and softwareProtocol != ''"> and software_protocol = #{softwareProtocol}</if>
|
<if test="softwareProtocol != null and softwareProtocol != ''"> and software_protocol = #{softwareProtocol}</if>
|
||||||
<!--<if test="params.beginProductionDate != null and params.beginProductionDate != '' and params.endProductionDate != null and params.endProductionDate != ''"> and production_date between #{params.beginProductionDate} and #{params.endProductionDate}</if>
|
<!--<if test="params.beginProductionDate != null and params.beginProductionDate != '' and params.endProductionDate != null and params.endProductionDate != ''"> and production_date between #{params.beginProductionDate} and #{params.endProductionDate}</if>
|
||||||
--> <if test="licenceId != null "> and licence_id = #{licenceId}</if>
|
--> <if test="licenceId != null "> and licence_id = #{licenceId}</if>
|
||||||
@@ -67,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="sn != null">sn,</if>
|
<if test="sn != null">sn,</if>
|
||||||
<if test="businessType != null">business_type,</if>
|
<if test="businessType != null">business_type,</if>
|
||||||
|
<if test="secretKey != null">secret_key,</if>
|
||||||
<if test="softwareProtocol != null">software_protocol,</if>
|
<if test="softwareProtocol != null">software_protocol,</if>
|
||||||
<if test="productionDate != null">production_date,</if>
|
<if test="productionDate != null">production_date,</if>
|
||||||
<if test="licenceId != null">licence_id,</if>
|
<if test="licenceId != null">licence_id,</if>
|
||||||
@@ -85,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="sn != null">#{sn},</if>
|
<if test="sn != null">#{sn},</if>
|
||||||
<if test="businessType != null">#{businessType},</if>
|
<if test="businessType != null">#{businessType},</if>
|
||||||
|
<if test="secretKey != null">#{secretKey},</if>
|
||||||
<if test="softwareProtocol != null">#{softwareProtocol},</if>
|
<if test="softwareProtocol != null">#{softwareProtocol},</if>
|
||||||
<if test="productionDate != null">#{productionDate},</if>
|
<if test="productionDate != null">#{productionDate},</if>
|
||||||
<if test="licenceId != null">#{licenceId},</if>
|
<if test="licenceId != null">#{licenceId},</if>
|
||||||
@@ -107,6 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<trim prefix="SET" suffixOverrides=",">
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
<if test="sn != null">sn = #{sn},</if>
|
<if test="sn != null">sn = #{sn},</if>
|
||||||
<if test="businessType != null">business_type = #{businessType},</if>
|
<if test="businessType != null">business_type = #{businessType},</if>
|
||||||
|
<if test="secretKey != null">secret_key = #{secretKey},</if>
|
||||||
<if test="softwareProtocol != null">software_protocol = #{softwareProtocol},</if>
|
<if test="softwareProtocol != null">software_protocol = #{softwareProtocol},</if>
|
||||||
<if test="productionDate != null">production_date = #{productionDate},</if>
|
<if test="productionDate != null">production_date = #{productionDate},</if>
|
||||||
<if test="licenceId != null">licence_id = #{licenceId},</if>
|
<if test="licenceId != null">licence_id = #{licenceId},</if>
|
||||||
@@ -189,13 +194,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<insert id="batchInsertPileBasicInfo">
|
<insert id="batchInsertPileBasicInfo">
|
||||||
insert into pile_basic_info
|
insert into pile_basic_info
|
||||||
(sn, business_type, software_protocol, production_date, licence_id, model_id, sim_id,
|
(sn, business_type, secret_key, software_protocol, production_date, licence_id, model_id, sim_id,
|
||||||
merchant_id, station_id, fault_reason, create_by, update_by, del_flag, remark)
|
merchant_id, station_id, fault_reason, create_by, update_by, del_flag, remark)
|
||||||
values
|
values
|
||||||
<foreach collection="infoList" item="item" separator=",">
|
<foreach collection="infoList" item="item" separator=",">
|
||||||
(
|
(
|
||||||
#{item.sn,jdbcType=VARCHAR},
|
#{item.sn,jdbcType=VARCHAR},
|
||||||
#{item.businessType,jdbcType=VARCHAR},
|
#{item.businessType,jdbcType=VARCHAR},
|
||||||
|
#{item.secretKey,jdbcType=VARCHAR},
|
||||||
#{item.softwareProtocol,jdbcType=VARCHAR},
|
#{item.softwareProtocol,jdbcType=VARCHAR},
|
||||||
#{item.productionDate,jdbcType=TIMESTAMP},
|
#{item.productionDate,jdbcType=TIMESTAMP},
|
||||||
#{item.licenceId,jdbcType=BIGINT},
|
#{item.licenceId,jdbcType=BIGINT},
|
||||||
|
|||||||
@@ -259,6 +259,7 @@
|
|||||||
placeholder="请选择桩类型"
|
placeholder="请选择桩类型"
|
||||||
>
|
>
|
||||||
<el-option label="运营桩" value="1" />
|
<el-option label="运营桩" value="1" />
|
||||||
|
<el-option label="个人桩" value="2" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--<el-form-item label="充电桩型号" prop="modelId">
|
<!--<el-form-item label="充电桩型号" prop="modelId">
|
||||||
|
|||||||
Reference in New Issue
Block a user