订单统计接口
This commit is contained in:
@@ -8,6 +8,7 @@ import com.czg.market.vo.PpOrderListVO;
|
||||
import com.czg.market.vo.PpPackagePageReqVo;
|
||||
import com.czg.market.vo.PpPackageVO;
|
||||
import com.czg.order.dto.GbOrderQueryParam;
|
||||
import com.czg.order.vo.GbOrderCountVO;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.utils.AssertUtil;
|
||||
@@ -122,4 +123,13 @@ public class PpPackageController {
|
||||
public CzgResult<Page<PpOrderListVO>> getPackageOrderList(GbOrderQueryParam reqVo) {
|
||||
return CzgResult.success(ppPackageOrderService.queryOrderList(StpKit.USER.getShopId(), null, reqVo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单统计
|
||||
*/
|
||||
@GetMapping("/order/stat")
|
||||
@SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:order:stat", name = "订单统计")
|
||||
public CzgResult<GbOrderCountVO> getPackageOrderStat(GbOrderQueryParam reqVo) {
|
||||
return CzgResult.success(ppPackageOrderService.orderCount(StpKit.USER.getShopId(), reqVo));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,4 +134,9 @@ public class PpPackage implements Serializable {
|
||||
*/
|
||||
private Integer isDel;
|
||||
|
||||
/**
|
||||
* 已售数量
|
||||
*/
|
||||
private Integer saleNum;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.czg.market.service;
|
||||
import com.czg.market.dto.PpPackageOrderDTO;
|
||||
import com.czg.market.vo.PpOrderListVO;
|
||||
import com.czg.order.dto.GbOrderQueryParam;
|
||||
import com.czg.order.vo.GbOrderCountVO;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.czg.market.entity.PpPackageOrder;
|
||||
@@ -35,6 +36,11 @@ public interface PpPackageOrderService extends IService<PpPackageOrder> {
|
||||
*/
|
||||
Page<PpOrderListVO> queryOrderList(Long shopId, Long userId, GbOrderQueryParam param);
|
||||
|
||||
/**
|
||||
* 订单统计
|
||||
*/
|
||||
GbOrderCountVO orderCount(Long shopId, GbOrderQueryParam param);
|
||||
|
||||
/**
|
||||
* 取消订单
|
||||
*/
|
||||
|
||||
@@ -177,4 +177,9 @@ public class PpPackageVO {
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 已售数量
|
||||
*/
|
||||
private Integer saleNum;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.czg.service.market.mapper;
|
||||
|
||||
import com.czg.market.vo.PpOrderListVO;
|
||||
import com.czg.order.dto.GbOrderQueryParam;
|
||||
import com.czg.order.vo.GbOrderCountVO;
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.czg.market.entity.PpPackageOrder;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -19,4 +20,6 @@ public interface PpPackageOrderMapper extends BaseMapper<PpPackageOrder> {
|
||||
List<PpOrderListVO> getOrderList(@Param("shopId") Long shopId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("param") GbOrderQueryParam param);
|
||||
|
||||
GbOrderCountVO getOrderCount(@Param("shopId") Long shopId, @Param("param") GbOrderQueryParam param);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.czg.market.service.PpPackageService;
|
||||
import com.czg.market.vo.PpOrderListVO;
|
||||
import com.czg.market.vo.PpPackageVO;
|
||||
import com.czg.order.dto.GbOrderQueryParam;
|
||||
import com.czg.order.vo.GbOrderCountVO;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.service.market.mapper.PpPackageOrderMapper;
|
||||
import com.czg.utils.CzgRandomUtils;
|
||||
@@ -147,6 +148,11 @@ public class PpPackageOrderServiceImpl extends ServiceImpl<PpPackageOrderMapper,
|
||||
return PageUtil.convert(new PageInfo<>(result));
|
||||
}
|
||||
|
||||
@Override
|
||||
public GbOrderCountVO orderCount(Long shopId, GbOrderQueryParam param) {
|
||||
return mapper.getOrderCount(shopId, param);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean cancelOrder(Long orderId) {
|
||||
@@ -242,6 +248,10 @@ public class PpPackageOrderServiceImpl extends ServiceImpl<PpPackageOrderMapper,
|
||||
updateById(order);
|
||||
|
||||
ppHelpRecordService.removeHelpRecord(orderId);
|
||||
|
||||
PpPackage ppPackage = ppPackageService.getById(order.getPackageId());
|
||||
ppPackage.setSaleNum(ppPackage.getSaleNum() + 1);
|
||||
ppPackageService.updateById(ppPackage);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -213,6 +213,7 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
||||
packageVO.setOnlineStatus(ppPackage.getOnlineStatus());
|
||||
packageVO.setCreateTime(ppPackage.getCreateTime());
|
||||
packageVO.setUpdateTime(ppPackage.getUpdateTime());
|
||||
packageVO.setSaleNum(ppPackage.getSaleNum());
|
||||
|
||||
packageVO.setUseWeeks(JSONArray.parseArray(ppPackage.getUseWeeks(), String.class));
|
||||
packageVO.setPackageContent(JSONArray.parseArray(ppPackage.getPackageContent(), PpPackageVO.PackageContent.class));
|
||||
|
||||
@@ -38,4 +38,29 @@
|
||||
order by o.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getOrderCount" resultType="com.czg.order.vo.GbOrderCountVO">
|
||||
SELECT
|
||||
COUNT(*) AS countNum,
|
||||
COALESCE(SUM(IF(pay_time IS NOT NULL, IFNULL(final_price, 0), 0)), 0) AS paidAmountTotal,
|
||||
COALESCE(SUM(IF(status IN ('refunding', 'refund'), IFNULL(o.final_price, 0), 0)), 0) AS refundAmount
|
||||
from pp_package_order o
|
||||
left join pp_package p on o.package_id = p.id
|
||||
where o.shop_id = #{shopId}
|
||||
<if test="param.orderNo != null">
|
||||
and o.order_no = #{param.orderNo}
|
||||
</if>
|
||||
<if test="param.status != null">
|
||||
and o.status = #{param.status}
|
||||
</if>
|
||||
<if test="param.orderStartTime != null and param.orderEndTime != null ">
|
||||
and o.pay_time BETWEEN #{param.orderStartTime} and #{param.orderEndTime}
|
||||
</if>
|
||||
<if test="param.verifyStartTime != null and param.verifyEndTime != null ">
|
||||
and o.verify_time BETWEEN #{param.verifyStartTime} and #{param.verifyEndTime}
|
||||
</if>
|
||||
<if test="param.name != null">
|
||||
and p.package_name like concat('%', #{param.name}, '%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user