mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 19:15:35 +08:00
创建会员优惠计费模板
This commit is contained in:
@@ -83,75 +83,80 @@ public class PileBillingTemplate extends BaseEntity {
|
||||
*/
|
||||
private String publicFlag;
|
||||
|
||||
/**
|
||||
* 是否会员模板标识(0-否;1-是)
|
||||
*/
|
||||
private String memberFlag;
|
||||
|
||||
/**
|
||||
* 发布时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date publishTime;
|
||||
|
||||
public String getPublicFlag() {
|
||||
return publicFlag;
|
||||
}
|
||||
|
||||
public void setPublicFlag(String publicFlag) {
|
||||
this.publicFlag = publicFlag;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setTemplateCode(String templateCode) {
|
||||
this.templateCode = templateCode;
|
||||
}
|
||||
|
||||
public String getTemplateCode() {
|
||||
return templateCode;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setStationId(Long stationId) {
|
||||
this.stationId = stationId;
|
||||
}
|
||||
|
||||
public Long getStationId() {
|
||||
return stationId;
|
||||
}
|
||||
|
||||
public void setDelFlag(String delFlag) {
|
||||
this.delFlag = delFlag;
|
||||
}
|
||||
|
||||
public String getDelFlag() {
|
||||
return delFlag;
|
||||
}
|
||||
|
||||
public List<PileBillingDetail> getPileBillingDetailList() {
|
||||
return pileBillingDetailList;
|
||||
}
|
||||
|
||||
public void setPileBillingDetailList(List<PileBillingDetail> pileBillingDetailList) {
|
||||
this.pileBillingDetailList = pileBillingDetailList;
|
||||
}
|
||||
// public String getPublicFlag() {
|
||||
// return publicFlag;
|
||||
// }
|
||||
//
|
||||
// public void setPublicFlag(String publicFlag) {
|
||||
// this.publicFlag = publicFlag;
|
||||
// }
|
||||
//
|
||||
// public void setId(Long id) {
|
||||
// this.id = id;
|
||||
// }
|
||||
//
|
||||
// public Long getId() {
|
||||
// return id;
|
||||
// }
|
||||
//
|
||||
// public void setTemplateCode(String templateCode) {
|
||||
// this.templateCode = templateCode;
|
||||
// }
|
||||
//
|
||||
// public String getTemplateCode() {
|
||||
// return templateCode;
|
||||
// }
|
||||
//
|
||||
// public void setName(String name) {
|
||||
// this.name = name;
|
||||
// }
|
||||
//
|
||||
// public String getName() {
|
||||
// return name;
|
||||
// }
|
||||
//
|
||||
// public void setType(String type) {
|
||||
// this.type = type;
|
||||
// }
|
||||
//
|
||||
// public String getType() {
|
||||
// return type;
|
||||
// }
|
||||
//
|
||||
// public void setStationId(Long stationId) {
|
||||
// this.stationId = stationId;
|
||||
// }
|
||||
//
|
||||
// public Long getStationId() {
|
||||
// return stationId;
|
||||
// }
|
||||
//
|
||||
// public void setDelFlag(String delFlag) {
|
||||
// this.delFlag = delFlag;
|
||||
// }
|
||||
//
|
||||
// public String getDelFlag() {
|
||||
// return delFlag;
|
||||
// }
|
||||
//
|
||||
// public List<PileBillingDetail> getPileBillingDetailList() {
|
||||
// return pileBillingDetailList;
|
||||
// }
|
||||
//
|
||||
// public void setPileBillingDetailList(List<PileBillingDetail> pileBillingDetailList) {
|
||||
// this.pileBillingDetailList = pileBillingDetailList;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@@ -173,4 +173,11 @@ public interface PileBillingTemplateService {
|
||||
* @return
|
||||
*/
|
||||
int changeStationTemplate(String stationId, String templateId);
|
||||
|
||||
/**
|
||||
* 创建优惠计费模板
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
int createPreferentialBillingTemplate(CreateOrUpdateBillingTemplateDTO dto);
|
||||
}
|
||||
|
||||
@@ -15,12 +15,13 @@ import com.jsowell.common.util.id.Seq;
|
||||
import com.jsowell.pile.domain.PileBillingDetail;
|
||||
import com.jsowell.pile.domain.PileBillingRelation;
|
||||
import com.jsowell.pile.domain.PileBillingTemplate;
|
||||
import com.jsowell.pile.domain.PileStationInfo;
|
||||
import com.jsowell.pile.dto.BillingTimeDTO;
|
||||
import com.jsowell.pile.dto.CreateOrUpdateBillingTemplateDTO;
|
||||
import com.jsowell.pile.dto.ImportBillingTemplateDTO;
|
||||
import com.jsowell.pile.mapper.PileBillingTemplateMapper;
|
||||
import com.jsowell.pile.service.PileBasicInfoService;
|
||||
import com.jsowell.pile.service.PileBillingTemplateService;
|
||||
import com.jsowell.pile.service.PileStationInfoService;
|
||||
import com.jsowell.pile.transaction.dto.BillingTemplateTransactionDTO;
|
||||
import com.jsowell.pile.transaction.service.TransactionService;
|
||||
import com.jsowell.pile.util.UserUtils;
|
||||
@@ -59,7 +60,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
private TransactionService transactionService;
|
||||
|
||||
@Autowired
|
||||
private PileBasicInfoService pileBasicInfoService;
|
||||
private PileStationInfoService pileStationInfoService;
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
@@ -224,6 +225,8 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
log.info("根据计费模板id:{},查询为null。无法修改直接返回", dto.getBillingTemplateId());
|
||||
return;
|
||||
}
|
||||
|
||||
// 查询站点信息
|
||||
billingTemplate.setName(dto.getName());
|
||||
billingTemplate.setType(String.valueOf(dto.getType()));
|
||||
billingTemplate.setRemark(dto.getRemark());
|
||||
@@ -232,6 +235,33 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
billingTemplate.setOccupyFee(dto.getOccupyFee());
|
||||
billingTemplate.setMaxOccupyFee(dto.getMaxOccupyFee());
|
||||
|
||||
// 修改私有模板的名称 如果类型是私有,并且名称是公用,就更新为: 站点名称 + ”的计费模板“
|
||||
if (StringUtils.equals(billingTemplate.getPublicFlag(), Constants.ZERO)
|
||||
&& StringUtils.equals(billingTemplate.getName(), "公用")) {
|
||||
// 查询站点信息
|
||||
PileStationInfo stationInfo = pileStationInfoService.selectPileStationInfoById(billingTemplate.getStationId());
|
||||
if (stationInfo != null) {
|
||||
billingTemplate.setName(stationInfo.getStationName() + "的会员计费模板");
|
||||
}
|
||||
}
|
||||
|
||||
// 生成计费详情list
|
||||
List<PileBillingDetail> pileBillingDetails = generateBillingDetailList(billingTemplate.getTemplateCode(), dto);
|
||||
|
||||
BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder()
|
||||
.billingTemplate(billingTemplate)
|
||||
.detailList(pileBillingDetails)
|
||||
.build();
|
||||
// 入库
|
||||
transactionService.doUpdateBillingTemplate(build);
|
||||
|
||||
cleanCache(dto.getStationId() , Long.valueOf(dto.getBillingTemplateId()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过前端入参,返回计费详情list
|
||||
*/
|
||||
private List<PileBillingDetail> generateBillingDetailList(String templateCode, CreateOrUpdateBillingTemplateDTO dto) {
|
||||
// key为时间类型,value为时间描述
|
||||
Map<String, List<BillingTimeDTO>> map = dto.getTimeArray().stream()
|
||||
.collect(Collectors.groupingBy(BillingTimeDTO::getType));
|
||||
@@ -241,7 +271,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
PileBillingDetail detail = null;
|
||||
for (BillingTimeEnum billingTimeEnum : BillingTimeEnum.values()) {
|
||||
detail = new PileBillingDetail();
|
||||
detail.setTemplateCode(billingTemplate.getTemplateCode());
|
||||
detail.setTemplateCode(templateCode);
|
||||
String type = billingTimeEnum.getValue(); // 时段类型
|
||||
detail.setTimeType(type);
|
||||
Map<String, BigDecimal> priceMap = getPriceMap(dto, type);
|
||||
@@ -258,15 +288,7 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
detail.setCreateBy(SecurityUtils.getUsername());
|
||||
detailList.add(detail);
|
||||
}
|
||||
|
||||
BillingTemplateTransactionDTO build = BillingTemplateTransactionDTO.builder()
|
||||
.billingTemplate(billingTemplate)
|
||||
.detailList(detailList)
|
||||
.build();
|
||||
// 入库
|
||||
transactionService.doUpdateBillingTemplate(build);
|
||||
|
||||
cleanCache(dto.getStationId() , Long.valueOf(dto.getBillingTemplateId()));
|
||||
return detailList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -408,6 +430,41 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int createPreferentialBillingTemplate(CreateOrUpdateBillingTemplateDTO dto) {
|
||||
if (dto == null) {
|
||||
return 0;
|
||||
}
|
||||
Long stationId = Long.parseLong(dto.getStationId());
|
||||
PileBillingTemplate stationBillingTemplate = new PileBillingTemplate();
|
||||
stationBillingTemplate.setStationId(stationId);
|
||||
// 生成计费模板编号
|
||||
String templateCode = Seq.getId();
|
||||
stationBillingTemplate.setTemplateCode(templateCode);
|
||||
stationBillingTemplate.setStatus(Constants.ONE); // 默认启用
|
||||
stationBillingTemplate.setType(Constants.ONE); // 默认电动汽车
|
||||
stationBillingTemplate.setPublicFlag(Constants.ZERO); // 默认私有
|
||||
stationBillingTemplate.setMemberFlag(Constants.ONE); // 会员优惠计费模板
|
||||
stationBillingTemplate.setStationId(stationId); // 站点id
|
||||
stationBillingTemplate.setCreateBy(SecurityUtils.getUsername());
|
||||
stationBillingTemplate.setCreateTime(DateUtils.getNowDate());
|
||||
stationBillingTemplate.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
||||
// 查询站点信息
|
||||
PileStationInfo stationInfo = pileStationInfoService.selectPileStationInfoById(stationId);
|
||||
if (stationInfo != null) {
|
||||
stationBillingTemplate.setName(stationInfo.getStationName() + "的会员计费模板");
|
||||
}
|
||||
// 计费模板收费详情
|
||||
List<PileBillingDetail> stationBillingDetailList = generateBillingDetailList(templateCode, dto);
|
||||
|
||||
// 入库
|
||||
BillingTemplateTransactionDTO billingTemplateTransactionDTO = new BillingTemplateTransactionDTO();
|
||||
billingTemplateTransactionDTO.setBillingTemplate(stationBillingTemplate);
|
||||
billingTemplateTransactionDTO.setDetailList(stationBillingDetailList);
|
||||
transactionService.doCreateBillingTemplate(billingTemplateTransactionDTO);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BillingTemplateVO> selectBillingTemplateByStationIdList(List<String> stationIdList) {
|
||||
if (CollectionUtils.isEmpty(stationIdList)) {
|
||||
@@ -623,11 +680,17 @@ public class PileBillingTemplateServiceImpl implements PileBillingTemplateServic
|
||||
|
||||
String templateCode = Seq.getId(); // 生成计费模板编号
|
||||
BeanUtils.copyProperties(pileBillingTemplate, stationBillingTemplate, "id", "createBy", "createTime", "updateBy", "updateTime");
|
||||
stationBillingTemplate.setStationId(Long.valueOf(dto.getStationId())); // 站点id
|
||||
Long stationId = Long.valueOf(dto.getStationId());
|
||||
stationBillingTemplate.setStationId(stationId); // 站点id
|
||||
stationBillingTemplate.setPublicFlag(Constants.ZERO); // 站点私有计费模板
|
||||
stationBillingTemplate.setTemplateCode(templateCode);
|
||||
stationBillingTemplate.setCreateBy(SecurityUtils.getUsername());
|
||||
stationBillingTemplate.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
||||
// 查询站点信息
|
||||
PileStationInfo stationInfo = pileStationInfoService.selectPileStationInfoById(stationId);
|
||||
if (stationInfo != null) {
|
||||
stationBillingTemplate.setName(stationInfo.getStationName() + "的计费模板");
|
||||
}
|
||||
// 复制计费模板详情
|
||||
List<PileBillingDetail> stationBillingDetailList = Lists.newArrayList();
|
||||
PileBillingDetail pileBillingDetail;
|
||||
|
||||
Reference in New Issue
Block a user