Browse Source

add:账期条件查询

lyx 2 months ago
parent
commit
fb3f2b8307

+ 3 - 3
alien-entity/src/main/java/shop/alien/mapper/StoreIncomeDetailsRecordMapper.java

@@ -1,6 +1,5 @@
 package shop.alien.mapper;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
@@ -51,6 +50,7 @@ public interface StoreIncomeDetailsRecordMapper extends BaseMapper<StoreIncomeDe
             "\tstore_income_details_record sidr\n" +
             "left join order_coupon_middle ocm on ocm.id = sidr.user_order_id and ocm.delete_flag = 0\n" +
             "left join life_user_order luo on luo.id  = ocm.order_id and luo.delete_flag = 0\n" +
-            "left join totalCoupon tc on tc.id = sidr.business_id and tc.type = luo.coupon_type")
-    List<StoreIncomeDetailsRecordVo> selectRecordList(LambdaQueryWrapper<StoreIncomeDetailsRecord> wrapper);
+            "left join totalCoupon tc on tc.id = sidr.business_id and tc.type = luo.coupon_type\n"+
+            "${ew.customSqlSegment}" )
+    List<StoreIncomeDetailsRecordVo> selectRecordList(@Param(Constants.WRAPPER) QueryWrapper<StoreIncomeDetailsRecord> wrapper);
 }

+ 10 - 33
alien-store/src/main/java/shop/alien/store/service/impl/StoreIncomeDetailsRecordServiceImpl.java

@@ -366,26 +366,26 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
      */
     @Override
     public JSONObject noYetPayment(Integer storeId, Integer incomeType, Integer paymentType, String startTime, String endTime, int page, int size) {
-        LambdaQueryWrapper<StoreIncomeDetailsRecord> wrapper = new LambdaQueryWrapper<>();
+        QueryWrapper<StoreIncomeDetailsRecord> wrapper = new QueryWrapper<StoreIncomeDetailsRecord>();
         JSONObject jsonObject = new JSONObject();
         Date now = new Date();
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
         if (paymentType == 0) {
-            wrapper.isNull(StoreIncomeDetailsRecord::getCashOutId);
+            wrapper.isNull("sidr.cash_out_id");
             //未到账期, 当前时间-3天大于创建时间
-            wrapper.gt(StoreIncomeDetailsRecord::getCreatedTime, DateUtils.calcDays(new Date(), -3));
+            wrapper.gt("sidr.created_time", DateUtils.calcDays(new Date(), -3));
             Date startDate = DateUtils.calcDays(now, -3);
             jsonObject.put("date", df.format(startDate) + " ~ " + df.format(now));
         } else {
-            wrapper.isNotNull(StoreIncomeDetailsRecord::getCashOutId);
+            wrapper.isNotNull("sidr.cash_out_id");
             //已到账期, 当前时间-4~27天大于创建时间
-            wrapper.between(StoreIncomeDetailsRecord::getCreatedTime, DateUtils.calcDays(new Date(), -27), DateUtils.calcDays(new Date(), -4));
+            wrapper.between("sidr.created_time", DateUtils.calcDays(new Date(), -27), DateUtils.calcDays(new Date(), -4));
             Date startDate = DateUtils.calcDays(now, -27);
             Date endDate = DateUtils.calcDays(now, -4);
             jsonObject.put("date", df.format(startDate) + " ~ " + df.format(endDate));
         }
         if(storeId!=null){
-            wrapper.eq(StoreIncomeDetailsRecord::getStoreId,storeId);
+            wrapper.eq("sidr.store_id",storeId);
         }
         //未绑定提现记录的
         LocalDate startDate = LocalDate.parse(startTime);
@@ -393,41 +393,18 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
         // 创建当天的开始和结束时间点
         LocalDateTime startOfDay = startDate.atStartOfDay();
         LocalDateTime endOfDay = endDate.atTime(LocalTime.MAX);
-        wrapper.between(StoreIncomeDetailsRecord::getCreatedTime,startOfDay,endOfDay)
-                .orderByDesc(StoreIncomeDetailsRecord::getCreatedTime);
+        wrapper.between("sidr.created_time",startOfDay,endOfDay)
+                .orderByDesc("sidr.created_time");
         if(null != incomeType) {
             if (0 == incomeType) {
-                wrapper.in(StoreIncomeDetailsRecord::getIncomeType, CouponTypeEnum.COUPON.getCode(),CouponTypeEnum.GROUP_BUY.getCode());
+                wrapper.in("sidr.income_type", CouponTypeEnum.COUPON.getCode(),CouponTypeEnum.GROUP_BUY.getCode());
             } else {
-                wrapper.eq(StoreIncomeDetailsRecord::getIncomeType, incomeType);
+                wrapper.eq("sidr.income_type", incomeType);
             }
         }
         // 计算总钱数
         List<StoreIncomeDetailsRecordVo> list = storeIncomeDetailsRecordMapper.selectRecordList(wrapper);
-/*        Map<String, Integer> groupedByCreatedTime = list.stream().collect(
-                Collectors.groupingBy(
-                        item -> item.getCreatedTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().toString(),
-                        Collectors.summingInt(StoreIncomeDetailsRecord::getMoney)));
-        // 分别计算日期下优惠券和团购的钱数
-        Map<String, Integer> groupedByCreatedTimeAndType = list.stream().collect(
-                Collectors.groupingBy(
-                        item -> item.getCreatedTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().toString().concat("-").concat(item.getIncomeType().toString()),
-                        Collectors.summingInt(StoreIncomeDetailsRecord::getMoney)));
-        List<StoreIncomeDetailsRecordVo> resultList = new ArrayList<>();
-        groupedByCreatedTime.forEach((key, value) -> {
-            StoreIncomeDetailsRecordVo vo = new StoreIncomeDetailsRecordVo();
-            // 手动拼接key判断
-            if( groupedByCreatedTimeAndType.containsKey(key.concat("-2")) ){
-                vo.setCouponMoney(new BigDecimal(groupedByCreatedTimeAndType.get(key.concat("-2"))).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
-            }
-            if( groupedByCreatedTimeAndType.containsKey(key.concat("-3")) ){
-                vo.setGroupMoney(new BigDecimal(groupedByCreatedTimeAndType.get(key.concat("-3"))).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
-            }
 
-            vo.setMoneyStr(new BigDecimal(value).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
-            vo.setDate(key);
-            resultList.add(vo);
-        });*/
         for (StoreIncomeDetailsRecordVo storeIncomeDetailsRecord : list) {
             StoreIncomeDetailsRecordVo vo = new StoreIncomeDetailsRecordVo();
             BeanUtils.copyProperties(storeIncomeDetailsRecord, vo);