feat:菜品统计v2
This commit is contained in:
1 parent
07a46ad56b
commit
8b3b86a679
6 files changed
+82
-6
No files matched your search
+5
@@ -21,4 +21,9 @@ public class HardCarVo extends HardCarEntity {
|
||||
// 购买次数【统计使用】
|
||||
private Long payCount;
|
||||
|
||||
// 统计使用
|
||||
private Long merchantId;
|
||||
|
||||
private String merchantName;
|
||||
|
||||
}
|
||||
+7
-1
@@ -124,10 +124,16 @@ public class HardCanteenTotalController {
|
||||
return R.ok(canteenTotalService.productTotal(page, dto, null));
|
||||
}
|
||||
|
||||
@Operation(summary = "菜品出售记录", description = "菜品出售记录")
|
||||
@Operation(summary = "菜品出售统计", description = "菜品出售统计")
|
||||
@PostMapping("/proudct-query")
|
||||
public R<Page<HardCarVo>> proudctQuery(@ParameterObject Page page, @RequestBody HardCarDto dto) {
|
||||
return R.ok(canteenTotalService.proudctQuery(page, dto));
|
||||
}
|
||||
|
||||
@Operation(summary = "菜品出售商户统计", description = "菜品出售商户统计")
|
||||
@PostMapping("/proudct-mch-query")
|
||||
public R<Page<HardCarVo>> proudctMchQuery(@ParameterObject Page page, @RequestBody HardCarDto dto) {
|
||||
return R.ok(canteenTotalService.proudctMchQuery(page, dto));
|
||||
}
|
||||
|
||||
}
|
||||
+5
@@ -37,6 +37,11 @@ public interface HardCarMapper extends PjcloudBaseMapper<HardCarEntity> {
|
||||
|
||||
Page<HardCarVo> proudctQuery(Page page, @Param("dto") HardCarDto dto);
|
||||
|
||||
/**
|
||||
* 菜品出售商户统计
|
||||
*/
|
||||
Page<HardCarVo> proudctMchQuery(Page page, HardCarDto dto);
|
||||
|
||||
List<HardCanteenProductTotalVo> listByDept(@Param("dto") HardOrderDto dto, DataScope dataScope);
|
||||
|
||||
List<HardCanteenProductTotalVo> listByHourType(@Param("dto") HardOrderDto dto);
|
||||
|
||||
+6
-1
@@ -47,10 +47,15 @@ public interface HardCanteenTotalService {
|
||||
Page<HardCanteenProductTotalVo> productTotal(Page page, HardOrderDto dto, DataScope dataScope);
|
||||
|
||||
/**
|
||||
* 菜品出售记录
|
||||
* 菜品出售统计
|
||||
*/
|
||||
Page<HardCarVo> proudctQuery(Page page, HardCarDto dto);
|
||||
|
||||
/**
|
||||
* 菜品出售商户统计
|
||||
*/
|
||||
Page<HardCarVo> proudctMchQuery(Page page, HardCarDto dto);
|
||||
|
||||
/**
|
||||
* 食堂菜品购买部门统计
|
||||
*/
|
||||
|
||||
+24
-1
@@ -188,7 +188,7 @@ public class HardCanteenTotalServiceImpl implements HardCanteenTotalService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 菜品出售记录
|
||||
* 菜品出售统计
|
||||
*/
|
||||
@Override
|
||||
public Page<HardCarVo> proudctQuery(Page page, HardCarDto dto) {
|
||||
@@ -196,6 +196,29 @@ public class HardCanteenTotalServiceImpl implements HardCanteenTotalService {
|
||||
return hardCarMapper.proudctQuery(page, dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 菜品出售商户统计
|
||||
*/
|
||||
@Override
|
||||
public Page<HardCarVo> proudctMchQuery(Page page, HardCarDto dto) {
|
||||
dto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes());
|
||||
Page<HardCarVo> pageList = hardCarMapper.proudctMchQuery(page, dto);
|
||||
List<HardCarVo> records = pageList.getRecords();
|
||||
// 查询商户
|
||||
if (ObjectUtil.isNotEmpty(records)) {
|
||||
List<Long> mchIdList = records.stream().map(HardCarVo::getMerchantId).distinct().filter(ObjectUtil::isNotEmpty).toList();
|
||||
if (ObjectUtil.isNotEmpty(mchIdList)) {
|
||||
List<MchManageVo> mchList = remoteMchService.getByIds(mchIdList).getData();
|
||||
if (ObjectUtil.isNotEmpty(mchList)) {
|
||||
for (HardCarVo i : records) {
|
||||
mchList.stream().filter(m -> ObjectUtil.equals(i.getMerchantId(), m.getId())).findFirst().ifPresent(mch -> i.setMerchantName(mch.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return pageList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 食堂菜品购买部门统计
|
||||
*/
|
||||
|
||||
+35
-3
@@ -231,6 +231,41 @@
|
||||
order by SUM(a.product_count) desc
|
||||
</select>
|
||||
|
||||
<select id="proudctMchQuery" resultType="com.bsd.pjcloud.hard.api.vo.order.HardCarVo">
|
||||
select
|
||||
o.merchant_id,
|
||||
a.product_id,
|
||||
a.product_name,
|
||||
a.product_pic,
|
||||
a.product_price,
|
||||
SUM(a.product_count) as count,
|
||||
SUM(a.total_price) as totalPrice,
|
||||
DATE_FORMAT(a.create_time, '%Y-%m-%d') as create_time
|
||||
from hard_car a
|
||||
inner join hard_parent_car p on a.parent_car_id = p.id and p.del_flag = '0'
|
||||
inner join hard_order o on o.parent_car_id = p.id and o.del_flag = '0' and o.hour_type is not null
|
||||
<where>
|
||||
<include refid="whereA"/>
|
||||
<if test="dto.orderStatusCodes != null and dto.orderStatusCodes.size() != 0">
|
||||
and o.order_status in
|
||||
<foreach collection="dto.orderStatusCodes" item="v" open="(" close=")" separator=",">
|
||||
#{v}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="dto.hourType != null and dto.hourType != '' ">
|
||||
and o.hour_type = #{dto.hourType}
|
||||
</if>
|
||||
<if test="dto.merchantId != null">
|
||||
and o.merchant_id = #{dto.merchantId}
|
||||
</if>
|
||||
<if test="dto.productName != null and dto.productName != '' ">
|
||||
and a.product_name LIKE concat('%',#{dto.productName},'%')
|
||||
</if>
|
||||
</where>
|
||||
group by o.merchant_id, a.product_id
|
||||
order by o.merchant_id, SUM(a.product_count) desc
|
||||
</select>
|
||||
|
||||
<select id="listByDept" resultType="com.bsd.pjcloud.hard.api.vo.order.HardCanteenProductTotalVo">
|
||||
select
|
||||
o.merchant_id as mchId,
|
||||
@@ -416,7 +451,4 @@
|
||||
order by SUM(a.product_count) desc
|
||||
limit 10;
|
||||
</select>
|
||||
|
||||
<select id="proudctTotalQuery" resultType="com.bsd.pjcloud.hard.api.vo.order.HardCarTotalVo">
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in new issue
Block a user