Просмотр исходного кода

数据中台订单管理,只查询待支付,待使用,已取消,已完成,已退款的数据

zhangchen 1 месяц назад
Родитель
Сommit
3b2a7f5ba8

+ 33 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeUserOrderMapper.java

@@ -75,4 +75,37 @@ public interface LifeUserOrderMapper extends BaseMapper<LifeUserOrder> {
 
     @Select("SELECT count( luo.id ) FROM life_user_order luo LEFT JOIN order_coupon_middle ocm ON luo.id = ocm.order_id WHERE luo.`status` IN ( 0, 1, 2, 7 ) AND luo.delete_flag = 0 AND luo.coupon_type = 2 AND ocm.coupon_id = #{groupId}")
     Integer countBuyGroup(@Param("groupId") String groupId);
+
+    @Select("with total_coupon as(\n" +
+            "-- 团购\n" +
+            "\tselect id coupon_id,2 coupon_type,lgbm.group_name coupon_name, SUBSTRING_INDEX(image_id, ',', 1) AS image_id,effective_date_type,effective_date_value \n" +
+            "from life_group_buy_main lgbm \n" +
+            "\tunion all\n" +
+            "-- 代金券\n" +
+            "\tselect id coupon_id,1 coupon_type,lc.name coupon_name, SUBSTRING_INDEX(image_path, ',', 1) AS image_id,0 effective_date_type,expiration_date effective_date_value \n" +
+            "from life_coupon lc \n" +
+            ")\n" +
+            "select luo.id,luo.buy_time,luo.status,luo.price,luo.final_price,luo.user_id,luo.store_id,luo.order_no,luo.pay_time,luo.cancel_time,luo.finish_time,luo.order_str,luo.expert_order_id,luo.order_appraise,\n" +
+            "si.store_name,si.commission_rate,si.business_section store_type,si.store_status,si.business_status,\n" +
+            "count(ocm.coupon_code) coupon_count,\n" +
+            "simg.img_url,\n" +
+            "lu.user_phone,\n" +
+            "IF(sc.id is null,false,true) as hasComment,\n" +
+            "tc.*,\n" +
+            "CASE\n" +
+            "        WHEN si.delete_flag = 1 OR si.logout_flag = 1 THEN 1\n" +
+            "        ELSE 0\n" +
+            "    END AS abnormalStateFlag,\n" +
+            "ldc.nominal_value,ldc.type\n" +
+            "from life_user_order luo\n" +
+            "left join store_info si on si.id = luo.store_id  -- 查询店铺相关 \n" +
+            "left join life_user lu on lu.id = luo.user_id and lu.delete_flag = 0 -- 查询用户相关 \n" +
+            "left join order_coupon_middle ocm on ocm.order_id = luo.id \n" +
+            "left join total_coupon tc on tc.coupon_id = ocm.coupon_id and tc.coupon_type = luo.coupon_type\n" +
+            "left join  store_img simg on simg.id = tc.image_id and simg.delete_flag = 0 \n" +
+            "left join  store_comment sc on sc.business_id = luo.id and sc.delete_flag = 0 and sc.business_type = 5\n" +
+            "left join life_discount_coupon_user ldcu on ldcu .id = luo.quan_id \n" +
+            "left join life_discount_coupon ldc on ldc.id = ldcu.coupon_id \n" +
+            "${ew.customSqlSegment}")
+    IPage<LifeUserOrderVo> queryPlatformOrderList(IPage<LifeUserOrderVo> brandedPage,@Param(Constants.WRAPPER) QueryWrapper<LifeUserOrderVo> lifeUserOrderQueryWrapper);
 }

+ 38 - 0
alien-store/src/main/java/shop/alien/store/controller/PlatformOrderController.java

@@ -67,4 +67,42 @@ public class PlatformOrderController {
         log.info("userOrder.queryOrderDetail:{}", orderId);
         return lifeUserOrderService.queryOrderDetail(orderId);
     }
+
+    @ApiOperation("中台查询订单列表")
+    @ApiOperationSupport(order = 5)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "当前页", required = true),
+            @ApiImplicitParam(name = "size", value = "每页数量", required = true),
+            @ApiImplicitParam(name = "orderStatus", value = "订单状态,-1,全部(可以不传);0,待支付;1,已支付/待使用;2,已核销;3,已过期;4,已取消;5.已退款,全退款了才算", required = false),
+            @ApiImplicitParam(name = "orderNo", value = "订单号", required = false),
+            @ApiImplicitParam(name = "couponName", value = "优惠券名称", required = false),
+            @ApiImplicitParam(name = "couponType", value = "优惠券类型", required = false),
+            @ApiImplicitParam(name = "storeName", value = "门店名称", required = false),
+            @ApiImplicitParam(name = "buyStartTime", value = "购买时间开始", required = false),
+            @ApiImplicitParam(name = "buyEndTime", value = "购买时间结束", required = false),
+            @ApiImplicitParam(name = "payStartTime", value = "支付时间开始", required = false),
+            @ApiImplicitParam(name = "payEndTime", value = "支付时间结束", required = false),
+            @ApiImplicitParam(name = "finishStartTime", value = "核销时间开始", required = false),
+            @ApiImplicitParam(name = "finishEndTime", value = "核销时间结束", required = false),
+    })
+    @GetMapping("/queryPlatformOrderList")
+    public R<IPage<LifeUserOrderVo>> queryPlatformOrderList(@RequestParam(value = "page", defaultValue = "1") Integer page,
+                                                    @RequestParam(value = "size", defaultValue = "10") Integer size,
+                                                    @RequestParam(value = "orderNo", required = false) String orderNo,
+                                                    @RequestParam(required = false, defaultValue = "-1") String orderStatus,
+                                                    @RequestParam(required = false) String couponName,
+                                                    @RequestParam(required = false) String couponType,
+                                                    @RequestParam(required = false) String storeName,
+                                                    @RequestParam(value = "buyStartTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00")String buyStartTime,
+                                                    @RequestParam(value = "buyEndTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") String buyEndTime,
+                                                    @RequestParam(value = "payStartTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00")String payStartTime,
+                                                    @RequestParam(value = "payEndTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") String payEndTime,
+                                                    @RequestParam(value = "finishStartTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00")String finishStartTime,
+                                                    @RequestParam(value = "finishEndTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") String finishEndTime
+    ) {
+        log.info("查询订单列表,page={},size={},orderNo={},orderStatus={},couponName={},couponType={},storeName={},buyStartTime={},buyEndTime={},payStartTime={},payEndTime={},finishStartTime={},finishEndTime={}",
+                page, size, orderNo, orderStatus, couponName, couponType, storeName, buyStartTime, buyEndTime, payStartTime, payEndTime, finishStartTime, finishEndTime);
+        return R.data(lifeUserOrderService.queryPlatformOrderList(page, size, orderNo, orderStatus, couponName, couponType, storeName, buyStartTime, buyEndTime, payStartTime, payEndTime, finishStartTime, finishEndTime));
+    }
+
 }

+ 53 - 0
alien-store/src/main/java/shop/alien/store/service/LifeUserOrderService.java

@@ -1087,6 +1087,59 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
     }
 
     /**
+     * 平台-查询订单列表
+     *
+     * @param page            页码
+     * @param size            每页数量
+     * @param orderNo         订单号
+     * @param orderStatus     订单状态
+     * @param couponName      优惠券名称
+     * @param couponType      优惠券类型
+     * @param storeName       店铺名称
+     * @param buyStartTime    购买时间开始
+     * @param buyEndTime      购买时间结束
+     * @param payStartTime    支付时间开始
+     * @param payEndTime      支付时间结束
+     * @param finishStartTime 完成时间开始
+     * @param finishEndTime   完成时间结束
+     */
+    public IPage<LifeUserOrderVo> queryPlatformOrderList(Integer page, Integer size, String orderNo, String orderStatus, String couponName, String couponType, String storeName, String buyStartTime, String buyEndTime, String payStartTime, String payEndTime, String finishStartTime, String finishEndTime) {
+        IPage<LifeUserOrderVo> brandedPage = new Page<>(page, size);
+        QueryWrapper<LifeUserOrderVo> lifeUserOrderQueryWrapper = new QueryWrapper<>();
+        lifeUserOrderQueryWrapper.like(org.apache.commons.lang3.StringUtils.isNotBlank(orderNo), "luo.order_no", orderNo);
+        lifeUserOrderQueryWrapper.like(org.apache.commons.lang3.StringUtils.isNotBlank(couponName), "tc.coupon_name", couponName);
+        lifeUserOrderQueryWrapper.eq(org.apache.commons.lang3.StringUtils.isNotBlank(couponType), "tc.coupon_type", couponType);
+        lifeUserOrderQueryWrapper.like(org.apache.commons.lang3.StringUtils.isNotBlank(storeName), "si.store_name", storeName);
+        lifeUserOrderQueryWrapper.gt(org.apache.commons.lang3.StringUtils.isNotBlank(buyStartTime), "luo.buy_time", buyStartTime + " 00:00:00");
+        lifeUserOrderQueryWrapper.lt(org.apache.commons.lang3.StringUtils.isNotBlank(buyEndTime), "luo.buy_time", buyEndTime + " 23:59:59");
+        lifeUserOrderQueryWrapper.gt(org.apache.commons.lang3.StringUtils.isNotBlank(payStartTime), "luo.pay_time", payStartTime + " 00:00:00");
+        lifeUserOrderQueryWrapper.lt(org.apache.commons.lang3.StringUtils.isNotBlank(payEndTime), "luo.pay_time", payEndTime + " 23:59:59");
+        lifeUserOrderQueryWrapper.gt(org.apache.commons.lang3.StringUtils.isNotBlank(finishStartTime), "luo.finish_time", finishStartTime + " 00:00:00");
+        lifeUserOrderQueryWrapper.lt(org.apache.commons.lang3.StringUtils.isNotBlank(finishEndTime), "luo.finish_time", finishEndTime + " 23:59:59");
+
+//            @ApiImplicitParam(name = "orderStatus", value = "订单状态,-1,全部(可以不传);0,待支付;1,已支付/待使用;2,已核销;3,已过期;4,已取消;5.已退款,全退款了才算", required = false),
+        // 提取SQL基础部分,避免重复定义
+//        String baseSql = "select DISTINCT ocm1.order_id from order_coupon_middle ocm1 where 1=1";
+
+        if (!"-1".equals(orderStatus)) {
+            // 非-1状态:直接添加状态条件
+//            String sql = baseSql + " and ocm1.status = " + orderStatus;
+//            lifeUserOrderQueryWrapper.inSql("luo.id", sql);
+            lifeUserOrderQueryWrapper.eq("luo.status", orderStatus);
+        } else {
+            lifeUserOrderQueryWrapper.in("luo.status", 0,1,4,5,7);
+        }
+
+        lifeUserOrderQueryWrapper.groupBy("luo.id");
+        IPage<LifeUserOrderVo> lifeUserOrderVoIPage = lifeUserOrderMapper.queryPlatformOrderList(brandedPage, lifeUserOrderQueryWrapper);
+
+        if (!"-1".equals(orderStatus)) {
+            lifeUserOrderVoIPage.getRecords().forEach(x -> x.setStatus(Integer.parseInt(orderStatus)));
+        }
+        return lifeUserOrderVoIPage;
+    }
+
+    /**
      * 平台端-查询订单详情
      *
      * @param orderId