Procházet zdrojové kódy

bugfix:代金券已售数量
提现需要申请

lyx před 3 měsíci
rodič
revize
5fe86e2f16

+ 4 - 1
alien-entity/src/main/java/shop/alien/mapper/LifeUserOrderMapper.java

@@ -25,7 +25,10 @@ public interface LifeUserOrderMapper extends BaseMapper<LifeUserOrder> {
             "group by store_id")
     List<Map<String, Object>> allStoreAvgPrice();
 
-    @Select("SELECT quan_id quanId, count(id) count FROM life_user_order ${ew.customSqlSegment}")
+    @Select("select coupon_id,count(ocm.coupon_id) count\n" +
+            "from life_user_order luo \n" +
+            "left join order_coupon_middle ocm on ocm.order_id = luo.id and ocm.delete_flag =0\n" +
+            "${ew.customSqlSegment}")
     List<LifeUserOrderVo> getQuanCount(@Param(Constants.WRAPPER) QueryWrapper<LifeUserOrderVo> queryWrapper);
 
     LifeUserOrderVo queryUserOrderDetail(@Param("orderId") String orderId,@Param("position") String position);

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

@@ -132,15 +132,15 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
                     return R.fail("金额不能小于0.1元");
                 }
                 //增加提现记录
-                StoreAliPayLog pay = aliApi.pay(storeUser.getName(), storeUser.getIdCard(), storeUser.getPhone(), divide.toString());
+//                StoreAliPayLog pay = aliApi.pay(storeUser.getName(), storeUser.getIdCard(), storeUser.getPhone(), divide.toString());
                 StoreCashOutRecord storeCashOutRecord = new StoreCashOutRecord();
                 storeCashOutRecord.setStoreId(storeId);
-                storeCashOutRecord.setOrderNo(pay.getOutBizNo());
+//                storeCashOutRecord.setOrderNo(pay.getOutBizNo());
                 storeCashOutRecord.setMoney(withdrawalMoney);
                 // 手续费不是减过了吗
 //                storeCashOutRecord.setCommission(commission);
                 storeCashOutRecord.setCashOutType(0);
-                storeCashOutRecord.setAliOrderNo(pay.getOrderId());
+//                storeCashOutRecord.setAliOrderNo(pay.getOrderId());
                 storeCashOutRecord.setPaymentDate(new Date());
                 storeCashOutRecord.setPaymentStatus(3);
                 storeCashOutRecord.setDeleteFlag(0);

+ 17 - 3
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -42,6 +42,8 @@ import shop.alien.store.util.GroupConstant;
 import shop.alien.util.ali.AliOSSUtil;
 import shop.alien.util.common.DistanceUtil;
 import shop.alien.util.common.constant.CouponStatusEnum;
+import shop.alien.util.common.constant.CouponTypeEnum;
+import shop.alien.util.common.constant.OrderStatusEnum;
 
 import java.io.File;
 import java.io.IOException;
@@ -928,19 +930,31 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         } else {
             result.setCollection(1);
         }
-        // 获取店铺优惠券列表
+        // 获取店铺代金券列表
         LambdaUpdateWrapper<LifeCoupon> quanWrapper = new LambdaUpdateWrapper<>();
         quanWrapper.eq(LifeCoupon::getStoreId, storeId).eq(LifeCoupon::getStatus, CouponStatusEnum.ONGOING.getCode()).eq(LifeCoupon::getType, 1);
         List<LifeCoupon> quanList = lifeCouponMapper.selectList(quanWrapper);
         List<LifeCouponVo> quanVoList = new ArrayList<>();
         List<String> collect = quanList.stream().map(LifeCoupon::getId).collect(Collectors.toList());
+        // 设置已售数量
+        // 定义需要的订单状态集合
+        Set<Integer> excludeStatuses = new HashSet<>(Arrays.asList(
+                OrderStatusEnum.WAIT_PAY.getStatus(),
+                OrderStatusEnum.WAIT_USE.getStatus(),
+                OrderStatusEnum.USED.getStatus()
+        ));
         if (!collect.isEmpty()) {
-            List<LifeUserOrderVo> quanCount = lifeUserOrderMapper.getQuanCount(new QueryWrapper<LifeUserOrderVo>().in("quan_id", collect).eq("delete_flag", 0).groupBy("quan_id"));
+            List<LifeUserOrderVo> quanCount = lifeUserOrderMapper.getQuanCount(new QueryWrapper<LifeUserOrderVo>()
+                    .eq("luo.store_id",storeId)
+                    .eq("luo.coupon_type", CouponTypeEnum.COUPON.getCode())
+                    .eq("luo.delete_flag",0)
+                    .in("ocm.status",excludeStatuses)
+                    .groupBy("ocm.coupon_id"));
             quanList.forEach(a -> {
                 LifeCouponVo lifeCouponVo = new LifeCouponVo();
                 BeanUtils.copyProperties(a, lifeCouponVo);
                 quanCount.forEach(item -> {
-                    if (a.getId().equals(item.getQuanId())) {
+                    if (a.getId().equals(item.getCouponId().toString())) {
                         lifeCouponVo.setCount(item.getCount());
                     }
                 });