订单金额统计问题

订单列表展示 订单状态为退单且订单类型不为退单的 由前端展示成已完成
This commit is contained in:
2024-03-19 09:31:07 +08:00
parent 896d5fa3cb
commit ca2bcdf4a0
2 changed files with 8 additions and 7 deletions

View File

@@ -33,10 +33,10 @@ import java.util.List;
**/
public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Integer>, JpaSpecificationExecutor<TbOrderInfo> {
@Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.amount)) " +
@Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.orderAmount)) " +
"FROM TbOrderInfo info " +
"WHERE info.shopId = :shopId " +
"AND info.status ='closed'" +
"AND ((info.status = 'closed') OR (info.status = 'refund' AND info.orderType != 'return')) " +
"GROUP BY info.payType")
List<TbOrderPayCountVo> queryTbOrderPayCount(@Param("shopId")String shopId);

View File

@@ -71,9 +71,10 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
// 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())){
// 追加校验参数 status为空且source为空 时 不查询状态为 "refund"且orderType为return
if (StringUtils.isBlank(criteria.getStatus()) && StringUtils.isBlank(criteria.getSource())) {
predicate = criteriaBuilder.and(predicate, criteriaBuilder.notEqual(root.get("status"), "refund"));
predicate = criteriaBuilder.and(predicate, criteriaBuilder.notEqual(root.get("orderType"), "return"));
}
return predicate;
}, pageable);
@@ -102,16 +103,16 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
@Override
public List<TbOrderPayCountVo> queryTbOrderPayCount(String shopId) {
List<TbOrderPayCountVo> result=new ArrayList<>();
List<TbOrderPayCountVo> result = new ArrayList<>();
List<TbOrderPayCountVo> payCountVoList = tbOrderInfoRepository.queryTbOrderPayCount(shopId);
for (TbOrderPayCountVo payCount : payCountVoList) {
if(StringUtils.isNotBlank(payCount.getPayType())){
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")){
if (payCount.getPayType().equals("wx_lite")) {
payCount.setPayType("微信小程序支付");
payCount.setIcon("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240318/ecf9e234aad8426ab0b1c4d5b8e50c9d.jpg");
}