订单管理-支付统计(不统计支付类型为空的 通过shopid和支付类型做中文回显 微信小程序支付图标是写死的)
订单管理-列表(不再展示退单订单)
This commit is contained in:
parent
594ba6af86
commit
896d5fa3cb
|
|
@ -65,4 +65,6 @@ public interface TbShopPayTypeRepository extends JpaRepository<TbShopPayType, In
|
||||||
"\t)",nativeQuery = true)
|
"\t)",nativeQuery = true)
|
||||||
Integer creatPayType(@Param("shopId") String shopId);
|
Integer creatPayType(@Param("shopId") String shopId);
|
||||||
|
|
||||||
|
@Query("select t from TbShopPayType t where t.payType=:payType and t.shopId=:shopId")
|
||||||
|
TbShopPayType findByPayType(@Param("payType")String payType,@Param("shopId") String shopId);
|
||||||
}
|
}
|
||||||
|
|
@ -18,8 +18,10 @@ package cn.ysk.cashier.service.impl.order;
|
||||||
import cn.ysk.cashier.dto.order.TbOrderInfoDto;
|
import cn.ysk.cashier.dto.order.TbOrderInfoDto;
|
||||||
import cn.ysk.cashier.dto.order.TbOrderInfoQueryCriteria;
|
import cn.ysk.cashier.dto.order.TbOrderInfoQueryCriteria;
|
||||||
import cn.ysk.cashier.mapper.order.TbOrderInfoMapper;
|
import cn.ysk.cashier.mapper.order.TbOrderInfoMapper;
|
||||||
|
import cn.ysk.cashier.pojo.TbShopPayType;
|
||||||
import cn.ysk.cashier.pojo.order.TbOrderDetail;
|
import cn.ysk.cashier.pojo.order.TbOrderDetail;
|
||||||
import cn.ysk.cashier.pojo.order.TbOrderInfo;
|
import cn.ysk.cashier.pojo.order.TbOrderInfo;
|
||||||
|
import cn.ysk.cashier.repository.TbShopPayTypeRepository;
|
||||||
import cn.ysk.cashier.repository.order.TbOrderDetailRepository;
|
import cn.ysk.cashier.repository.order.TbOrderDetailRepository;
|
||||||
import cn.ysk.cashier.repository.order.TbOrderInfoRepository;
|
import cn.ysk.cashier.repository.order.TbOrderInfoRepository;
|
||||||
import cn.ysk.cashier.service.order.TbOrderInfoService;
|
import cn.ysk.cashier.service.order.TbOrderInfoService;
|
||||||
|
|
@ -30,13 +32,11 @@ import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.*;
|
||||||
import org.springframework.data.domain.PageRequest;
|
|
||||||
import org.springframework.data.domain.Pageable;
|
|
||||||
import org.springframework.data.domain.Sort;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.persistence.criteria.Predicate;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -58,6 +58,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
|
||||||
private final TbOrderInfoMapper tbOrderInfoMapper;
|
private final TbOrderInfoMapper tbOrderInfoMapper;
|
||||||
|
|
||||||
private final TbOrderDetailRepository tbOrderDetailRepository;
|
private final TbOrderDetailRepository tbOrderDetailRepository;
|
||||||
|
private final TbShopPayTypeRepository payTypeRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryAllPage(TbOrderInfoQueryCriteria criteria) {
|
public Map<String, Object> queryAllPage(TbOrderInfoQueryCriteria criteria) {
|
||||||
|
|
@ -67,16 +68,25 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
|
||||||
criteria.setOrderType(null);
|
criteria.setOrderType(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Page<TbOrderInfo> page = tbOrderInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
|
// Page<TbOrderInfo> page = tbOrderInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
|
||||||
|
Page<TbOrderInfo> page = tbOrderInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> {
|
||||||
|
Predicate predicate = QueryHelp.getPredicate(root, criteria, criteriaBuilder);
|
||||||
|
// 追加校验参数 status不为空时 不查询状态为 "refund" 的
|
||||||
|
if(StringUtils.isBlank(criteria.getStatus())){
|
||||||
|
predicate = criteriaBuilder.and(predicate, criteriaBuilder.notEqual(root.get("status"), "refund"));
|
||||||
|
}
|
||||||
|
return predicate;
|
||||||
|
}, pageable);
|
||||||
|
|
||||||
List<TbOrderInfoVo> orderInfoVoList = new ArrayList<>();
|
List<TbOrderInfoVo> orderInfoVoList = new ArrayList<>();
|
||||||
for (TbOrderInfo tbOrderInfo : page.getContent()) {
|
for (TbOrderInfo tbOrderInfo : page.getContent()) {
|
||||||
TbOrderInfoVo orderInfoVo = new TbOrderInfoVo();
|
TbOrderInfoVo orderInfoVo = new TbOrderInfoVo();
|
||||||
List<TbOrderDetail> details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId());
|
List<TbOrderDetail> details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId());
|
||||||
BigDecimal refundAmount = BigDecimal.ZERO;
|
BigDecimal refundAmount = BigDecimal.ZERO;
|
||||||
for (TbOrderDetail detail : details) {
|
for (TbOrderDetail detail : details) {
|
||||||
if(tbOrderInfo.getStatus().equals("refund")){
|
if (tbOrderInfo.getStatus().equals("refund")) {
|
||||||
refundAmount = refundAmount.add(detail.getPriceAmount());
|
refundAmount = refundAmount.add(detail.getPriceAmount());
|
||||||
}else{
|
} else {
|
||||||
if (detail.getStatus().equals("refund")) {
|
if (detail.getStatus().equals("refund")) {
|
||||||
refundAmount = refundAmount.add(detail.getPriceAmount());
|
refundAmount = refundAmount.add(detail.getPriceAmount());
|
||||||
}
|
}
|
||||||
|
|
@ -92,7 +102,23 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TbOrderPayCountVo> queryTbOrderPayCount(String shopId) {
|
public List<TbOrderPayCountVo> queryTbOrderPayCount(String shopId) {
|
||||||
return tbOrderInfoRepository.queryTbOrderPayCount(shopId);
|
List<TbOrderPayCountVo> result=new ArrayList<>();
|
||||||
|
List<TbOrderPayCountVo> payCountVoList = tbOrderInfoRepository.queryTbOrderPayCount(shopId);
|
||||||
|
for (TbOrderPayCountVo payCount : payCountVoList) {
|
||||||
|
if(StringUtils.isNotBlank(payCount.getPayType())){
|
||||||
|
TbShopPayType byPayType = payTypeRepository.findByPayType(payCount.getPayType(), shopId);
|
||||||
|
if (byPayType != null) {
|
||||||
|
payCount.setPayType(byPayType.getPayName());
|
||||||
|
payCount.setIcon(byPayType.getIcon());
|
||||||
|
}
|
||||||
|
if(payCount.getPayType().equals("wx_lite")){
|
||||||
|
payCount.setPayType("微信小程序支付");
|
||||||
|
payCount.setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240318/ecf9e234aad8426ab0b1c4d5b8e50c9d.jpg");
|
||||||
|
}
|
||||||
|
result.add(payCount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -120,9 +146,9 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
|
||||||
dto.setIsRefund(0);
|
dto.setIsRefund(0);
|
||||||
BigDecimal refundAmount = BigDecimal.ZERO;
|
BigDecimal refundAmount = BigDecimal.ZERO;
|
||||||
for (TbOrderDetail detail : details) {
|
for (TbOrderDetail detail : details) {
|
||||||
if(tbOrderInfo.getStatus().equals("refund")){
|
if (tbOrderInfo.getStatus().equals("refund")) {
|
||||||
refundAmount = refundAmount.add(detail.getPriceAmount());
|
refundAmount = refundAmount.add(detail.getPriceAmount());
|
||||||
}else{
|
} else {
|
||||||
if (detail.getStatus().equals("refund")) {
|
if (detail.getStatus().equals("refund")) {
|
||||||
refundAmount = refundAmount.add(detail.getPriceAmount());
|
refundAmount = refundAmount.add(detail.getPriceAmount());
|
||||||
}
|
}
|
||||||
|
|
@ -132,7 +158,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
|
||||||
if (refund > 0) {
|
if (refund > 0) {
|
||||||
dto.setIsRefund(1);
|
dto.setIsRefund(1);
|
||||||
}
|
}
|
||||||
log.info("退款金额为:{}",refundAmount);
|
log.info("退款金额为:{}", refundAmount);
|
||||||
dto.setRefundAmount(refundAmount);
|
dto.setRefundAmount(refundAmount);
|
||||||
dto.setDetailList(details);
|
dto.setDetailList(details);
|
||||||
return dto;
|
return dto;
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@ public class TbProductServiceImpl implements TbProductService {
|
||||||
Threads.call(tbShopUnits, tbProductSkus, tbProductSpec);
|
Threads.call(tbShopUnits, tbProductSkus, tbProductSpec);
|
||||||
//组装
|
//组装
|
||||||
TbProductVo tbProductVo = new TbProductVo();
|
TbProductVo tbProductVo = new TbProductVo();
|
||||||
tbProductVo.setCategoryId(Integer.valueOf(tbProduct.getCategoryId()));
|
tbProductVo.setCategoryId(tbProduct.getCategoryId());
|
||||||
//单位
|
//单位
|
||||||
if (tbProduct.getUnitId() == null) {
|
if (tbProduct.getUnitId() == null) {
|
||||||
tbProductVo.setUnitId(null);
|
tbProductVo.setUnitId(null);
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
package cn.ysk.cashier.vo;
|
package cn.ysk.cashier.vo;
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.StringJoiner;
|
||||||
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class TbOrderPayCountVo{
|
public class TbOrderPayCountVo{
|
||||||
|
private String icon;
|
||||||
private String payType;
|
private String payType;
|
||||||
private BigDecimal payAmount;
|
private BigDecimal payAmount;
|
||||||
|
|
||||||
// 构造函数,参数名需要与查询中的别名一致
|
public String getIcon() {
|
||||||
public TbOrderPayCountVo(String payType, BigDecimal payAmount) {
|
return icon;
|
||||||
this.payType = payType;
|
}
|
||||||
this.payAmount = payAmount;
|
|
||||||
|
public void setIcon(String icon) {
|
||||||
|
this.icon = icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getter和Setter方法
|
|
||||||
public String getPayType() {
|
public String getPayType() {
|
||||||
return payType;
|
return payType;
|
||||||
}
|
}
|
||||||
|
|
@ -33,12 +33,20 @@ public class TbOrderPayCountVo{
|
||||||
this.payAmount = payAmount;
|
this.payAmount = payAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
// toString方法,用于简单的打印信息,可根据需要添加
|
public TbOrderPayCountVo() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TbOrderPayCountVo(String payType, BigDecimal payAmount) {
|
||||||
|
this.payType = payType;
|
||||||
|
this.payAmount = payAmount;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "TbOrderPayCountVo{" +
|
return new StringJoiner(", ", TbOrderPayCountVo.class.getSimpleName() + "[", "]")
|
||||||
"payType='" + payType + '\'' +
|
.add("icon='" + icon + "'")
|
||||||
", payAmount=" + payAmount +
|
.add("payType='" + payType + "'")
|
||||||
'}';
|
.add("payAmount=" + payAmount)
|
||||||
|
.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue