From 91033c7c3f467e2b45fefefd50cb270eeb131f87 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Wed, 5 Feb 2025 17:55:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E5=91=A8=E8=8F=9C=E8=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/account/constants/AccStatusEnum.java | 42 +++ .../bonus/core/common/enums/DelFlagEnum.java | 23 ++ .../com/bonus/core/common/utils/SysUtil.java | 160 ++++++++++ .../bonus/core/common/utils/SysUtilProxy.java | 19 ++ .../marketing/constants/MktEffTypeEnum.java | 27 ++ .../marketing/constants/MktUserTypeEnum.java | 24 ++ .../core/marketing/vo/MktEffectiveUserVO.java | 18 ++ .../controller/AppletRecipeV2Controller.java | 31 ++ .../core/menu/dto/AppletWeekCanteenDTO.java | 11 + .../core/menu/mapper/MenuAppRecipeMapper.java | 13 + .../core/menu/mapper/MenuRecipeMapper.java | 15 + .../core/menu/service/MenuRecipeService.java | 10 + .../service/impl/MenuRecipeServiceImpl.java | 77 +++++ .../core/menu/vo/AppletCurrentCanteenVO.java | 32 ++ .../core/menu/vo/AppletCurrentStallVO.java | 34 ++ .../core/menu/vo/AppletRecommendDishesVO.java | 18 ++ .../core/menu/vo/AppletReserveCanteenVO.java | 37 +++ .../core/menu/vo/AppletReserveStallVO.java | 36 +++ .../core/menu/vo/AppletWeekCanteenVO.java | 25 ++ .../mapper/menu/MenuAppRecipeMapper.xml | 293 ++++++++++++++++++ .../mapper/menu/MenuRecipeMapper.xml | 37 +++ 21 files changed, 982 insertions(+) create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/account/constants/AccStatusEnum.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/enums/DelFlagEnum.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtil.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtilProxy.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktEffTypeEnum.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktUserTypeEnum.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/vo/MktEffectiveUserVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/controller/AppletRecipeV2Controller.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/dto/AppletWeekCanteenDTO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuAppRecipeMapper.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuRecipeMapper.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/MenuRecipeService.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/impl/MenuRecipeServiceImpl.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentCanteenVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentStallVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletRecommendDishesVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveCanteenVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveStallVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletWeekCanteenVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuAppRecipeMapper.xml create mode 100644 bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/account/constants/AccStatusEnum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/account/constants/AccStatusEnum.java new file mode 100644 index 00000000..4b170571 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/account/constants/AccStatusEnum.java @@ -0,0 +1,42 @@ +package com.bonus.core.account.constants; + +import cn.hutool.core.collection.ListUtil; + +import java.util.Arrays; +import java.util.List; + +public enum AccStatusEnum { + NORMAL(1, "正常"), + DEACTIVATE(2, "停用"), + CANCEL(3, "注销"), + OVERDUE(4, "过期"); + + private final Integer key; + private final String desc; + + private AccStatusEnum(Integer key, String desc) { + this.key = key; + this.desc = desc; + } + + public static List sendMqStatus() { + return Arrays.asList(DEACTIVATE.getKey(), OVERDUE.getKey()); + } + + public static List accStatusForAppWork() { + return ListUtil.toList(new Integer[]{NORMAL.getKey(), DEACTIVATE.getKey(), OVERDUE.getKey()}); + } + + public static boolean ifNotAllowRechargeRepeal(Integer key) { + return ListUtil.toList(new Integer[]{CANCEL.getKey()}).contains(key); + } + + public Integer getKey() { + return this.key; + } + + public String getDesc() { + return this.desc; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/enums/DelFlagEnum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/enums/DelFlagEnum.java new file mode 100644 index 00000000..3203068b --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/enums/DelFlagEnum.java @@ -0,0 +1,23 @@ +//package com.bonus.core.common.enums; +// +//public enum DelFlagEnum { +// DEL_TRUE(1, "删除"), +// DEL_FALSE(2, "正常"); +// +// private final Integer key; +// private final String value; +// +// private DelFlagEnum(Integer key, String value) { +// this.key = key; +// this.value = value; +// } +// +// public Integer key() { +// return this.key; +// } +// +// public String value() { +// return this.value; +// } +// +//} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtil.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtil.java new file mode 100644 index 00000000..58da1985 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtil.java @@ -0,0 +1,160 @@ +//package com.bonus.core.common.utils; +// +//import cn.hutool.core.text.CharSequenceUtil; +//import javax.annotation.PostConstruct; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Component; +//import java.io.InputStream; +//import java.net.URLDecoder; +//import java.nio.charset.StandardCharsets; +//import java.util.stream.Collectors; +// +//@Component +//public class SysUtil { +// private static final Logger log = LoggerFactory.getLogger(SysUtil.class); +// @Value("${system.sysfile.prefixOffline}") +// private String prefixOffline; +// @Value("${system.sysfile.bucket}") +// private String prefixBucket; +// @Value("${system.sysfile.prefixOnline}") +// private String prefixOnline; +// private static final SysUtilProxy sysUtilProxy = new SysUtilProxy(); +// private static String prefixOn; +// private static String bucket; +// private static String prefixOff; +// +// @PostConstruct +// public void init() { +// prefixOn = this.prefixOnline; +// bucket = this.prefixBucket; +// prefixOff = this.prefixOffline; +// } +// +// public static String getPrefix() { +// return sysUtilProxy.getPrefix(prefixOn, prefixOff); +// } +// +// public static String getBucket() { +// return bucket; +// } +// +// public static String getCutFileUrl(String fileUrl) { +// log.info("出参_补图_原路径:{},前缀:{},存储桶:{}", new Object[]{fileUrl, getPrefix(), getBucket()}); +// String cutFileUrl = getCutFileUrl(fileUrl, getPrefix(), getBucket()); +// log.info("出参_补图_补图后路径:{}", cutFileUrl); +// return cutFileUrl; +// } +// +// public static String getCutPath(String fileUrl) { +// log.info("入参_裁图_原路径:{},前缀:{},存储桶:{}", new Object[]{fileUrl, getPrefix(), getBucket()}); +// if (!CharSequenceUtil.isBlank(fileUrl) && !fileUrl.startsWith(getBucket())) { +// if (Boolean.FALSE.equals(getOssProperties().getUseToken())) { +// return fileUrl.replace(getPrefix(), getBucket()); +// } else { +// fileUrl = getUnEncodeUrl(fileUrl); +// fileUrl = fileUrl.replace(getPrefix(), getBucket()); +// fileUrl = getCutSignUrl(fileUrl); +// log.info("入参_裁图_裁剪后路径:{}", fileUrl); +// return fileUrl; +// } +// } else { +// return fileUrl; +// } +// } +// +// public static String getCutPathMulti(String fileUrl) { +// return CharSequenceUtil.contains(fileUrl, ",") ? (String)CharSequenceUtil.split(fileUrl, ",", true, true).stream().map(SysUtil::getCutPath).collect(Collectors.joining(",")) : getCutPath(fileUrl); +// } +// +// public static String getFilePath(String fileUrl) { +// if (CharSequenceUtil.isBlank(fileUrl)) { +// return fileUrl; +// } else { +// String cutPath = getCutPath(fileUrl); +// return cutPath.replace(getBucket(), ""); +// } +// } +// +// public static String getObjectName(String fileUrl) { +// if (CharSequenceUtil.isBlank(fileUrl)) { +// return fileUrl; +// } else { +// String cutPath = getCutPath(fileUrl); +// String replace = cutPath.replace(getBucket(), ""); +// if (CharSequenceUtil.startWith(replace, "/")) { +// replace = replace.substring(1); +// } +// +// return replace; +// } +// } +// +// public static InputStream getInputStream(String fileUrl) { +// OssTemplate ossTemplate = (OssTemplate)SpringContextHolder.getBean(OssTemplate.class); +// OssProperties ossProperties = (OssProperties)SpringContextHolder.getBean(OssProperties.class); +// return ossTemplate.getObject(ossProperties.getBucketName(), getObjectName(fileUrl)); +// } +// +// public static void removeOssObject(String fileUrl) { +// if (!CharSequenceUtil.isBlank(fileUrl)) { +// OssTemplate ossTemplate = (OssTemplate)SpringContextHolder.getBean(OssTemplate.class); +// OssProperties ossProperties = (OssProperties)SpringContextHolder.getBean(OssProperties.class); +// +// try { +// ossTemplate.removeObject(ossProperties.getBucketName(), getObjectName(fileUrl)); +// } catch (Exception var4) { +// log.error("路径:{}删除异常:{}", new Object[]{fileUrl, var4.getMessage(), var4}); +// } +// +// } +// } +// +// public static OssTemplate getOssTemplate() { +// return (OssTemplate)SpringContextHolder.getBean(OssTemplate.class); +// } +// +// public static OssProperties getOssProperties() { +// return (OssProperties)SpringContextHolder.getBean(OssProperties.class); +// } +// +// public static String getUnEncodeUrl(String url) { +// if (CharSequenceUtil.isBlank(url)) { +// return url; +// } else { +// try { +// String decodedUrl = URLDecoder.decode(url, StandardCharsets.UTF_8); +// return !decodedUrl.equals(url) ? decodedUrl : url; +// } catch (IllegalArgumentException var2) { +// log.info("图片url解码失败,图片url:{},异常信息_:{},详情_:", new Object[]{url, var2.getMessage(), var2}); +// return url; +// } +// } +// } +// +// public static String getCutSignUrl(String fileUrl) { +// return CharSequenceUtil.isNotBlank(fileUrl) && fileUrl.contains("?") ? fileUrl.substring(0, fileUrl.indexOf("?")) : fileUrl; +// } +// +// public static String getCutFileUrl(String fileUrl, String filePrefix, String prefixBucket) { +// if (CharSequenceUtil.isBlank(fileUrl)) { +// return fileUrl; +// } else if (Boolean.FALSE.equals(getOssProperties().getUseToken())) { +// return !fileUrl.startsWith("http") && !fileUrl.startsWith("https") ? fileUrl.replace(prefixBucket, filePrefix) : fileUrl; +// } else { +// if (fileUrl.startsWith("http") || fileUrl.startsWith("https")) { +// fileUrl = fileUrl.replace(filePrefix + "/", ""); +// } +// +// fileUrl = getCutSignUrl(fileUrl); +// fileUrl = fileUrl.replace(prefixBucket + "/", ""); +// return getOssTemplate().getObjectURL(prefixBucket, fileUrl, getOssProperties().getExpiresTime()); +// } +// } +// +// public static String getCutFileUrl4Open(String fileUrl) { +// fileUrl = getCutFileUrl(fileUrl, getPrefix(), getBucket()); +// return !CharSequenceUtil.isBlank(fileUrl) && !fileUrl.startsWith(getBucket()) ? fileUrl.replace(getPrefix(), getBucket()) : fileUrl; +// } +//} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtilProxy.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtilProxy.java new file mode 100644 index 00000000..5f50e94f --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/common/utils/SysUtilProxy.java @@ -0,0 +1,19 @@ +//package com.bonus.core.common.utils; +// +//import javax.servlet.http.HttpServletRequest; +//import org.springframework.web.context.request.RequestContextHolder; +//import org.springframework.web.context.request.ServletRequestAttributes; +// +//import java.util.Objects; +// +//public class SysUtilProxy { +// public String getPrefix(String prefixOn, String prefixOff) { +// if (RequestContextHolder.getRequestAttributes() != null) { +// HttpServletRequest request = ((ServletRequestAttributes)Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); +// String headerValue = request.getHeader("X-Env"); +// return "online".equals(headerValue) ? prefixOn : prefixOff; +// } else { +// return prefixOff; +// } +// } +//} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktEffTypeEnum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktEffTypeEnum.java new file mode 100644 index 00000000..f0a03fa5 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktEffTypeEnum.java @@ -0,0 +1,27 @@ +package com.bonus.core.marketing.constants; + +/** @deprecated */ +@Deprecated +public enum MktEffTypeEnum { + USER_SORT(1, "人员类"), + CANTEEN_SORT(2, "食堂类"), + PRODUCT_SORT(3, "商品类"), + WAREHOUSE_SORT(4, "仓库类"); + + private final Integer key; + private final String value; + + MktEffTypeEnum(Integer key, String value) { + this.key = key; + this.value = value; + } + + public Integer key() { + return this.key; + } + + public String value() { + return this.value; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktUserTypeEnum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktUserTypeEnum.java new file mode 100644 index 00000000..de9b21d5 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/constants/MktUserTypeEnum.java @@ -0,0 +1,24 @@ +package com.bonus.core.marketing.constants; + +/** @deprecated */ +@Deprecated +public enum MktUserTypeEnum { + INTERSECTION(1, "交集"), + UNION_SET(2, "并集"); + + private final Integer key; + private final String value; + + MktUserTypeEnum(Integer key, String value) { + this.key = key; + this.value = value; + } + + public Integer key() { + return this.key; + } + + public String value() { + return this.value; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/vo/MktEffectiveUserVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/vo/MktEffectiveUserVO.java new file mode 100644 index 00000000..d8faf461 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/marketing/vo/MktEffectiveUserVO.java @@ -0,0 +1,18 @@ +package com.bonus.core.marketing.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** @deprecated */ +@Deprecated +@Data +public class MktEffectiveUserVO implements Serializable { + private Long effId; + private Integer userType; +// private Long orgId; +// private Integer psnType; + private List orgIdList; + private List psnTypeList; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/controller/AppletRecipeV2Controller.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/controller/AppletRecipeV2Controller.java new file mode 100644 index 00000000..ebb47063 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/controller/AppletRecipeV2Controller.java @@ -0,0 +1,31 @@ +package com.bonus.core.menu.controller; + +import com.bonus.core.menu.dto.AppletWeekCanteenDTO; +import com.bonus.core.menu.service.MenuRecipeService; +import com.bonus.core.menu.vo.AppletWeekCanteenVO; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; + +@RestController +@RequestMapping("/api/v2/applet/menurecipe") +public class AppletRecipeV2Controller { + private static final Logger log = LoggerFactory.getLogger(AppletRecipeV2Controller.class); + @Lazy + @Autowired + private MenuRecipeService menuRecipeService; + + @PostMapping({"/list/week/canteen"}) + @ApiOperation("获取一周菜谱食堂列表") + public List getWeekMealList(@RequestBody AppletWeekCanteenDTO appletWeekCanteenDTO) { + return this.menuRecipeService.getWeekMealList(appletWeekCanteenDTO); + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/dto/AppletWeekCanteenDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/dto/AppletWeekCanteenDTO.java new file mode 100644 index 00000000..6a805f2a --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/dto/AppletWeekCanteenDTO.java @@ -0,0 +1,11 @@ +package com.bonus.core.menu.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AppletWeekCanteenDTO { + @ApiModelProperty("人员id") + private Long custId; + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuAppRecipeMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuAppRecipeMapper.java new file mode 100644 index 00000000..4511270b --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuAppRecipeMapper.java @@ -0,0 +1,13 @@ +package com.bonus.core.menu.mapper; + +import com.bonus.core.menu.vo.AppletWeekCanteenVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Set; + +@Mapper +public interface MenuAppRecipeMapper { + List selectWeekCanteenList(@Param("effIdSet") Set effIdSet); + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuRecipeMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuRecipeMapper.java new file mode 100644 index 00000000..5fdc044f --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/mapper/MenuRecipeMapper.java @@ -0,0 +1,15 @@ +package com.bonus.core.menu.mapper; + +import com.bonus.core.marketing.vo.MktEffectiveUserVO; +import com.bonus.domain.CustInfo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface MenuRecipeMapper { + + CustInfo selectOrgAndPsnByCustLimitId(CustInfo custInfo); + List selectAllUserEff(@Param("effType") Integer effType, @Param("delFlag") Integer delFlag); + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/MenuRecipeService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/MenuRecipeService.java new file mode 100644 index 00000000..dff9f3e7 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/MenuRecipeService.java @@ -0,0 +1,10 @@ +package com.bonus.core.menu.service; + +import com.bonus.core.menu.dto.AppletWeekCanteenDTO; +import com.bonus.core.menu.vo.AppletWeekCanteenVO; +import java.util.List; + +public interface MenuRecipeService { + List getWeekMealList(AppletWeekCanteenDTO content); + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/impl/MenuRecipeServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/impl/MenuRecipeServiceImpl.java new file mode 100644 index 00000000..73bd1fc5 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/service/impl/MenuRecipeServiceImpl.java @@ -0,0 +1,77 @@ +package com.bonus.core.menu.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.bonus.common.core.exception.ServiceException; +import com.bonus.constant.DelFlagEnum; +import com.bonus.core.marketing.constants.MktEffTypeEnum; +import com.bonus.core.marketing.constants.MktUserTypeEnum; +import com.bonus.core.marketing.vo.MktEffectiveUserVO; +import com.bonus.core.menu.dto.AppletWeekCanteenDTO; +import com.bonus.core.menu.mapper.MenuRecipeMapper; +import com.bonus.core.menu.service.MenuRecipeService; +import com.bonus.core.menu.mapper.MenuAppRecipeMapper; +import com.bonus.core.menu.vo.AppletWeekCanteenVO; +import com.bonus.domain.CustInfo; +import com.google.common.collect.Sets; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class MenuRecipeServiceImpl implements MenuRecipeService { + private static final Logger log = LoggerFactory.getLogger(MenuRecipeServiceImpl.class); + + @Autowired + private MenuAppRecipeMapper menuAppRecipeMapper; + + @Autowired + private MenuRecipeMapper menuRecipeMapper; + + public List getWeekMealList(AppletWeekCanteenDTO content) { + Set effIdSet = this.getShopstallIdListByCustId(content.getCustId(), false); + if (ObjectUtil.isEmpty(effIdSet)) { + effIdSet = Sets.newTreeSet(); + ((Set)effIdSet).add(-1L); + } + + return this.menuAppRecipeMapper.selectWeekCanteenList((Set)effIdSet); + } + + public Set getShopstallIdListByCustId(Long custId, boolean checkCustInfo) { + Set effIdSet = Sets.newTreeSet(); + CustInfo custInfoQuery = new CustInfo(); + custInfoQuery.setCustId(custId); + custInfoQuery.setCustState(1); + CustInfo custInfo = menuRecipeMapper.selectOrgAndPsnByCustLimitId(custInfoQuery); + if (ObjectUtil.isNull(custInfo)) { + if (checkCustInfo) { + throw new ServiceException("菜单绑定错误"); + } else { + log.info("***[获取全档口菜谱信息]_未查询到人员信息,直接返回********************"); + return (Set)effIdSet; + } + } else { + List effectiveUserVOList = menuRecipeMapper.selectAllUserEff(MktEffTypeEnum.USER_SORT.key(), DelFlagEnum.DEL_FALSE.key()); + Long orgId = custInfo.getOrgId(); + Integer psnType = custInfo.getPsnType(); + if (ObjectUtil.isNotEmpty(effectiveUserVOList)) { + List collect = (List)effectiveUserVOList.stream().filter((u) -> { + boolean containsOrg = ObjectUtil.isNotEmpty(u.getOrgIdList()) && u.getOrgIdList().contains(orgId); + boolean containsPsn = ObjectUtil.isNotEmpty(u.getPsnTypeList()) && u.getPsnTypeList().contains(psnType); + return MktUserTypeEnum.INTERSECTION.key().equals(u.getUserType()) && containsOrg && containsPsn || MktUserTypeEnum.UNION_SET.key().equals(u.getUserType()) && (containsOrg || containsPsn); + }).collect(Collectors.toList()); + if (ObjectUtil.isNotEmpty(collect)) { + effIdSet = (Set)collect.stream().map(MktEffectiveUserVO::getEffId).collect(Collectors.toSet()); + ((Set)effIdSet).add(-1L); + } + } + + log.info("***[获取指定人员折扣比例]_指定人员的生效范围effIdSet: {}", effIdSet); + return (Set)effIdSet; + } + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentCanteenVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentCanteenVO.java new file mode 100644 index 00000000..16581339 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentCanteenVO.java @@ -0,0 +1,32 @@ +package com.bonus.core.menu.vo; + +import cn.hutool.core.collection.CollUtil; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalTime; +import java.util.List; + +@ApiModel("获取当餐点餐食堂档口列表(食堂嵌套档口版)") +@Data +public class AppletCurrentCanteenVO { + @ApiModelProperty("食堂id") + private Long canteenId; + @ApiModelProperty("食堂名称") + private String canteenName; + @ApiModelProperty("月销量") + private Integer monthlySales; + @ApiModelProperty("营业开始时间") + private LocalTime startBusinessTime; + @ApiModelProperty("营业结束时间") + private LocalTime endBusinessTime; + @ApiModelProperty("食堂营业状态") + private Integer businessState; + @ApiModelProperty("档口菜谱") + private List stallList; + + public Integer getMonthlySales() { + return CollUtil.isNotEmpty(this.stallList) ? this.stallList.stream().mapToInt(AppletCurrentStallVO::getMonthlySales).sum() : 0; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentStallVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentStallVO.java new file mode 100644 index 00000000..c8fa3843 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletCurrentStallVO.java @@ -0,0 +1,34 @@ +package com.bonus.core.menu.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalTime; +import java.util.List; +import java.util.Optional; + +@ApiModel("档口菜谱") +@Data +public class AppletCurrentStallVO { + @ApiModelProperty("档口id") + private Long stallId; + @ApiModelProperty("档口名称") + private String stallName; + @ApiModelProperty("档口营业状态") + private Integer stallState; + @ApiModelProperty("档口图片") + private String stallImgUrl; + @ApiModelProperty("菜谱id") + private Long recipeId; + @ApiModelProperty("推荐菜品") + private List recommendList; + @ApiModelProperty("月销量") + private Integer monthlySales; + @ApiModelProperty("营业开始时间") + private LocalTime startBusinessTime; + @ApiModelProperty("营业结束时间") + private LocalTime endBusinessTime; + @ApiModelProperty("食堂营业状态") + private Integer businessState; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletRecommendDishesVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletRecommendDishesVO.java new file mode 100644 index 00000000..3394751e --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletRecommendDishesVO.java @@ -0,0 +1,18 @@ +package com.bonus.core.menu.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel("推荐菜品") +@Data +public class AppletRecommendDishesVO { + @ApiModelProperty("菜品id") + private Long dishesId; + @ApiModelProperty("菜品名称") + private String dishesName; + @ApiModelProperty("菜品价格") + private Integer dishesPrice; + @ApiModelProperty("菜品图片") + private String dishesImgUrl; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveCanteenVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveCanteenVO.java new file mode 100644 index 00000000..731795b0 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveCanteenVO.java @@ -0,0 +1,37 @@ +package com.bonus.core.menu.vo; + +import cn.hutool.core.collection.CollUtil; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalTime; +import java.util.List; + +@ApiModel("获取预定餐食堂列表(食堂嵌套档口版)") +public class AppletReserveCanteenVO { + @ApiModelProperty("食堂id") + private Long canteenId; + @ApiModelProperty("食堂名称") + private String canteenName; + @ApiModelProperty("食堂营业状态") + private Integer canteenState; + @ApiModelProperty("食堂图片") + private String canteenImgUrl; + @ApiModelProperty("月销量") + private Integer monthlySales; + @ApiModelProperty("营业开始时间") + private LocalTime startBusinessTime; + @ApiModelProperty("营业结束时间") + private LocalTime endBusinessTime; + @ApiModelProperty("食堂营业状态") + private Integer businessState; + @ApiModelProperty("档口菜谱") + private List stallList; + +// public String getCanteenImgUrl() { +// return SysUtil.getCutFileUrl(this.canteenImgUrl); +// } +// +// public Integer getMonthlySales() { +// return CollUtil.isNotEmpty(this.stallList) ? this.stallList.stream().mapToInt(AppletReserveStallVO::getMonthlySales).sum() : 0; +// } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveStallVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveStallVO.java new file mode 100644 index 00000000..7ebcceaa --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletReserveStallVO.java @@ -0,0 +1,36 @@ +package com.bonus.core.menu.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalTime; +import java.util.List; +import java.util.Optional; + +@ApiModel("档口菜谱") +public class AppletReserveStallVO { + @ApiModelProperty("档口id") + private Long stallId; + @ApiModelProperty("档口名称") + private String stallName; + @ApiModelProperty("档口营业状态") + private Integer stallState; + @ApiModelProperty("档口图片") + private String stallImgUrl; + @ApiModelProperty("营业开始时间") + private LocalTime stallStartTime; + @ApiModelProperty("营业结束时间") + private LocalTime stallEndTime; + @ApiModelProperty("菜谱id") + private Long recipeId; + @ApiModelProperty("月销量") + private Integer monthlySales; + @ApiModelProperty("营业开始时间") + private LocalTime startBusinessTime; + @ApiModelProperty("营业结束时间") + private LocalTime endBusinessTime; + @ApiModelProperty("食堂营业状态") + private Integer businessState; + @ApiModelProperty("推荐菜品") + private List recommendList; + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletWeekCanteenVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletWeekCanteenVO.java new file mode 100644 index 00000000..76c92265 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/menu/vo/AppletWeekCanteenVO.java @@ -0,0 +1,25 @@ +package com.bonus.core.menu.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.List; + +@ApiModel("获取一周菜谱食堂列表") +@Data +public class AppletWeekCanteenVO { + @ApiModelProperty("菜谱id") + private Long recipeId; + @ApiModelProperty("档口名称") + private String stallName; + @ApiModelProperty("食堂名称") + private String canteenName; + @ApiModelProperty("食堂图片") + private String canteenImgUrl; + @ApiModelProperty("档口图片") + private String stallImgUrl; + @ApiModelProperty("档口标签") + private List labelList; +// @ApiModelProperty("档口标签") +// private String labelName; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuAppRecipeMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuAppRecipeMapper.xml new file mode 100644 index 00000000..12aec744 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuAppRecipeMapper.xml @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml new file mode 100644 index 00000000..fa376398 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + +