feat:菜品喜好排行
This commit is contained in:
1 parent
85c58c8303
commit
ab3cffc35d
8 files changed
+63
-18
No files matched your search
+3
@@ -3,6 +3,7 @@ package com.bsd.pjcloud.hard.api.dto.order.app;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 个人菜品喜好排行
|
||||
@@ -12,6 +13,8 @@ public class HardAppProductLikeTopDto {
|
||||
|
||||
private Long userId;
|
||||
|
||||
private List<Long> classifyIds;
|
||||
|
||||
private LocalDateTime[] payTimeList;
|
||||
|
||||
}
|
||||
+2
@@ -21,6 +21,8 @@ public class PanelProductDto {
|
||||
|
||||
private List<String> mchTypeCodes;
|
||||
|
||||
private List<Long> classifyIds;
|
||||
|
||||
private String hourTypeIsNull;
|
||||
|
||||
private String hourType;
|
||||
|
||||
+6
-5
@@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.api.entity.panel;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -14,12 +15,11 @@ import java.time.LocalDateTime;
|
||||
*/
|
||||
@Data
|
||||
@TenantTable
|
||||
@TableName("hard_panel_setting")
|
||||
@TableName(value = "hard_panel_setting", autoResultMap = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Schema(description = "大屏配置表")
|
||||
public class HardPanelSettingEntity extends Model<HardPanelSettingEntity> {
|
||||
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@@ -28,10 +28,11 @@ public class HardPanelSettingEntity extends Model<HardPanelSettingEntity> {
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 营养分析-菜品排行-排除菜品分类
|
||||
* 营养分析json配置
|
||||
*/
|
||||
@Schema(description = "营养分析-菜品排行-排除菜品分类")
|
||||
private String nutritionTopExcludeClassify;
|
||||
@Schema(description = "营养分析json配置")
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private HardPanelSettingShare.NutritionSetting nutritionSetting;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.bsd.pjcloud.hard.api.entity.panel;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class HardPanelSettingShare {
|
||||
|
||||
/**
|
||||
* 营养分析配置
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
static public class NutritionSetting {
|
||||
|
||||
/**
|
||||
* 喜爱菜品排行需要排除的菜品分类
|
||||
*/
|
||||
private List<Long> topExcludeCategoryIds;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+1
-13
@@ -1,28 +1,16 @@
|
||||
package com.bsd.pjcloud.hard.controller.panel;
|
||||
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
||||
import com.bsd.pjcloud.hard.api.dto.panel.HardPanelSettingDto;
|
||||
import com.bsd.pjcloud.hard.api.entity.panel.HardPanelSettingEntity;
|
||||
import com.bsd.pjcloud.hard.service.HardPanelSettingService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
|
||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||
import org.springdoc.core.annotations.ParameterObject;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 大屏配置表
|
||||
*/
|
||||
@@ -36,7 +24,7 @@ public class HardPanelSettingController {
|
||||
private final HardPanelSettingService hardPanelSettingService;
|
||||
|
||||
@Operation(summary = "查询配置", description = "查询配置")
|
||||
@GetMapping("/")
|
||||
@GetMapping("/setting")
|
||||
public R getSetting() {
|
||||
return R.ok(hardPanelSettingService.getSetting());
|
||||
}
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
package com.bsd.pjcloud.hard.service.impl.panel;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.hard.api.dto.panel.HardPanelSettingDto;
|
||||
|
||||
+15
@@ -1,13 +1,17 @@
|
||||
package com.bsd.pjcloud.hard.service.impl.panel;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.bsd.pjcloud.hard.api.dto.order.app.HardAppProductByClassifyDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.order.app.HardAppProductLikeTopDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.panel.PanelProductDto;
|
||||
import com.bsd.pjcloud.hard.api.entity.panel.HardPanelSettingEntity;
|
||||
import com.bsd.pjcloud.hard.api.entity.panel.HardPanelSettingShare;
|
||||
import com.bsd.pjcloud.hard.api.vo.hard.PanelPorductVo;
|
||||
import com.bsd.pjcloud.hard.api.vo.order.app.HardAppProductByClassifyVo;
|
||||
import com.bsd.pjcloud.hard.api.vo.order.app.HardAppProductLikeTopVo;
|
||||
import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper;
|
||||
import com.bsd.pjcloud.hard.service.HardCanteenTotalService;
|
||||
import com.bsd.pjcloud.hard.service.HardPanelSettingService;
|
||||
import com.bsd.pjcloud.hard.service.PanelNutritionService;
|
||||
import com.bsd.pjcloud.wallet.api.feign.RemoteMchService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -26,6 +30,7 @@ public class PanelNutritionServiceImpl implements PanelNutritionService {
|
||||
private final HardOrderMapper hardOrderMapper;
|
||||
|
||||
private final HardCanteenTotalService canteenTotalService;
|
||||
private final HardPanelSettingService panelSettingService;
|
||||
|
||||
private final RemoteMchService remoteMchService;
|
||||
|
||||
@@ -54,6 +59,16 @@ public class PanelNutritionServiceImpl implements PanelNutritionService {
|
||||
@Override
|
||||
public List<PanelPorductVo> cuisineTop(PanelProductDto dto) {
|
||||
HardAppProductLikeTopDto likeQuery = new HardAppProductLikeTopDto();
|
||||
|
||||
// 查询配置
|
||||
HardPanelSettingEntity setting = panelSettingService.getSetting();
|
||||
if (ObjectUtil.isNotEmpty(setting) && ObjectUtil.isNotEmpty(setting.getNutritionSetting())) {
|
||||
HardPanelSettingShare.NutritionSetting nutritionSetting = setting.getNutritionSetting();
|
||||
if (ObjectUtil.isNotEmpty(nutritionSetting.getTopExcludeCategoryIds())) {
|
||||
likeQuery.setClassifyIds(nutritionSetting.getTopExcludeCategoryIds());
|
||||
}
|
||||
}
|
||||
|
||||
likeQuery.setPayTimeList(dto.getTotalTimeList());
|
||||
List<HardAppProductLikeTopVo> list = canteenTotalService.productLikeTop(likeQuery);
|
||||
return list.stream().map((item) -> {
|
||||
|
||||
+6
@@ -378,6 +378,12 @@
|
||||
<if test="dto.payTimeList != null and dto.payTimeList.length == 2">
|
||||
and o.pay_time between #{dto.payTimeList[0]} and #{dto.payTimeList[1]}
|
||||
</if>
|
||||
<if test="dto.classifyIds != null and dto.classifyIds.size() != 0">
|
||||
and s.category_id not in
|
||||
<foreach collection="dto.classifyIds" item="v" open="(" close=")" separator=",">
|
||||
#{v}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
group by a.product_id
|
||||
order by SUM(a.product_count) desc
|
||||
|
||||
Reference in new issue
Block a user