This commit is contained in:
2023-03-04 16:29:55 +08:00
commit 397ba75479
1007 changed files with 109050 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
package com.jsowell.pile.transaction.dto;
import com.jsowell.pile.domain.PileBillingDetail;
import com.jsowell.pile.domain.PileBillingTemplate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class BillingTemplateTransactionDTO {
// 计费模板基本信息
private PileBillingTemplate billingTemplate;
// 计费模板详情
private List<PileBillingDetail> detailList;
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
.append("billingTemplate", billingTemplate)
.append("detailList", detailList)
.toString();
}
}

View File

@@ -0,0 +1,18 @@
package com.jsowell.pile.transaction.dto;
import com.jsowell.pile.domain.MemberBasicInfo;
import com.jsowell.pile.domain.MemberWalletInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class MemberTransactionDTO {
private MemberBasicInfo memberBasicInfo;
private MemberWalletInfo memberWalletInfo;
}

View File

@@ -0,0 +1,24 @@
package com.jsowell.pile.transaction.dto;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderDetail;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderTransactionDTO {
/**
* 订单基本信息
*/
private OrderBasicInfo orderBasicInfo;
/**
* 订单详情
*/
private OrderDetail orderDetail;
}

View File

@@ -0,0 +1,20 @@
package com.jsowell.pile.transaction.dto;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.PileConnectorInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class PileTransactionDTO {
private List<PileBasicInfo> pileBasicInfoList;
private List<PileConnectorInfo> pileConnectorInfoList;
}

View File

@@ -0,0 +1,155 @@
package com.jsowell.pile.transaction.service;
import com.google.common.collect.Lists;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.mapper.MemberBasicInfoMapper;
import com.jsowell.pile.mapper.MemberWalletInfoMapper;
import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.mapper.PileBasicInfoMapper;
import com.jsowell.pile.mapper.PileBillingTemplateMapper;
import com.jsowell.pile.mapper.PileConnectorInfoMapper;
import com.jsowell.pile.transaction.dto.BillingTemplateTransactionDTO;
import com.jsowell.pile.transaction.dto.MemberTransactionDTO;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.dto.PileTransactionDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 用来入库的service
*/
@Slf4j
@Service
public class TransactionService {
@Resource
private PileBasicInfoMapper pileBasicInfoMapper;
@Resource
private PileConnectorInfoMapper pileConnectorInfoMapper;
@Resource
private PileBillingTemplateMapper pileBillingTemplateMapper;
@Autowired
private OrderBasicInfoMapper orderBasicInfoMapper;
@Autowired
private MemberBasicInfoMapper memberBasicInfoMapper;
@Autowired
private MemberWalletInfoMapper memberWalletInfoMapper;
@Autowired
private RedisCache redisCache;
/**
* 批量新增充电桩和充电桩接口
* @param dto
* @return
*/
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public int doCreatePileTransaction(PileTransactionDTO dto) {
int result = 0;
if (CollectionUtils.isNotEmpty(dto.getPileBasicInfoList())) {
result = pileBasicInfoMapper.batchInsertPileBasicInfo(dto.getPileBasicInfoList());
}
if (CollectionUtils.isNotEmpty(dto.getPileConnectorInfoList())) {
pileConnectorInfoMapper.batchInsertConnectorInfo(dto.getPileConnectorInfoList());
}
return result;
}
/**
* 新增计费模板和详情
*/
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void doCreateBillingTemplate(BillingTemplateTransactionDTO dto) {
log.info("新增计费模板和详情 param:{}", dto.toString());
if (dto.getBillingTemplate() == null || CollectionUtils.isEmpty(dto.getDetailList())) {
return;
}
// 保存计费模板基本信息
pileBillingTemplateMapper.insertPileBillingTemplate(dto.getBillingTemplate());
// log.info("自增id{}", dto.getBillingTemplate().getId());
// 保存计费模板详情
pileBillingTemplateMapper.batchPileBillingDetail(dto.getDetailList());
}
/**
* 更新计费模板
* @param dto
*/
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void doUpdateBillingTemplate(BillingTemplateTransactionDTO dto) {
if (dto.getBillingTemplate() == null || CollectionUtils.isEmpty(dto.getDetailList())) {
return;
}
// 保存计费模板基本信息
pileBillingTemplateMapper.updatePileBillingTemplate(dto.getBillingTemplate());
// 计费模板 先删后插
pileBillingTemplateMapper.deletePileBillingDetailByTemplateCode(dto.getBillingTemplate().getTemplateCode());
// 保存计费模板详情
pileBillingTemplateMapper.batchPileBillingDetail(dto.getDetailList());
}
/**
* 插入订单
*/
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void doCreateOrder(OrderTransactionDTO dto) {
if (Objects.nonNull(dto.getOrderBasicInfo())) {
orderBasicInfoMapper.insertOrderBasicInfo(dto.getOrderBasicInfo());
}
if (Objects.nonNull(dto.getOrderDetail())) {
orderBasicInfoMapper.batchOrderDetail(Lists.newArrayList(dto.getOrderDetail()));
}
}
/**
* 更新订单信息
* @param dto
*/
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void doUpdateOrder(OrderTransactionDTO dto) {
String orderCode = null;
if (Objects.nonNull(dto.getOrderBasicInfo())) {
orderCode = dto.getOrderBasicInfo().getOrderCode();
orderBasicInfoMapper.updateOrderBasicInfo(dto.getOrderBasicInfo());
}
if (Objects.nonNull(dto.getOrderDetail())) {
orderCode = dto.getOrderDetail().getOrderCode();
orderBasicInfoMapper.updateOrderDetail(dto.getOrderDetail());
}
// 清缓存
if (StringUtils.isNotBlank(orderCode)) {
String redisKey = CacheConstants.GET_ORDER_INFO_BY_ORDER_CODE + orderCode;
redisCache.deleteObject(redisKey);
}
}
/**
* 新建会员
* @param dto
*/
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void createMember(MemberTransactionDTO dto) {
if (Objects.nonNull(dto.getMemberBasicInfo())) {
memberBasicInfoMapper.insertMemberBasicInfo(dto.getMemberBasicInfo());
}
if (Objects.nonNull(dto.getMemberWalletInfo())) {
memberWalletInfoMapper.insertSelective(dto.getMemberWalletInfo());
}
}
}