From 76561071d3441cd8a551772d0f43d93c9f9a1e6a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 29 十月 2024 18:08:25 +0800
Subject: [PATCH] 修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGoodsTypeController.java           |   14 +++-
 ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationPersonService.java          |   12 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java |   88 +++++++++++++++--------------
 ruoyi-system/src/main/resources/mapper/system/TFoundationPersonMapper.xml                  |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TFoundationPerson.java                  |    4 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TShop.java                              |    4 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFoundationPersonController.java    |    6 +-
 ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java          |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java    |    8 +-
 ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml                  |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java            |    2 
 ruoyi-system/src/main/resources/mapper/system/TShopMapper.xml                              |    6 +
 14 files changed, 96 insertions(+), 63 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFoundationPersonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFoundationPersonController.java
index 591ce6b..d529933 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFoundationPersonController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFoundationPersonController.java
@@ -18,6 +18,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import oshi.driver.unix.aix.Ls;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -58,8 +59,7 @@
      */
     @ApiOperation( value = "添加基础设置")
     @PostMapping(value = "/add")
-    public AjaxResult<Boolean> add(@RequestBody TFoundationPersonDTO dto) {
-        dto.setCreateTime(LocalDateTime.now());
+    public AjaxResult<Boolean> add(@RequestBody List<TFoundationPersonDTO> dto) {
         foundationPersonService.add(dto);
         return AjaxResult.success();
     }
@@ -69,7 +69,7 @@
      */
     @ApiOperation( value = "修改基础设置")
     @PostMapping(value = "/update")
-    public AjaxResult<Boolean> update(@RequestBody TFoundationPersonDTO dto) {
+    public AjaxResult<Boolean> update(@RequestBody List<TFoundationPersonDTO> dto) {
         foundationPersonService.edit(dto);
         return AjaxResult.success();
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGoodsTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGoodsTypeController.java
index 229ea56..4c410e1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGoodsTypeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGoodsTypeController.java
@@ -6,7 +6,9 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.domain.TGoodsType;
+import com.ruoyi.system.domain.TShop;
 import com.ruoyi.system.service.TGoodsTypeService;
+import com.ruoyi.system.service.TShopService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,11 +31,13 @@
 
     private final TGoodsTypeService goodsTypeService;
     private final TokenService tokenService;
+    private final TShopService shopService;
 
     @Autowired
-    public TGoodsTypeController(TGoodsTypeService goodsTypeService, TokenService tokenService) {
+    public TGoodsTypeController(TGoodsTypeService goodsTypeService, TokenService tokenService, TShopService shopService) {
         this.goodsTypeService = goodsTypeService;
         this.tokenService = tokenService;
+        this.shopService = shopService;
     }
 
     /**
@@ -56,9 +60,13 @@
      */
     @ApiOperation( value = "查询商品分类列表-后台使用")
     @GetMapping(value = "/getList")
-    public AjaxResult<List<TGoodsType>> getList(@RequestParam("shopId") Long shopId) {
+    public AjaxResult<List<TGoodsType>> getList(@RequestParam("mealType") Integer mealType) {
+        // 获取餐饮分类店铺id
+        TShop one = shopService.getOne(Wrappers.lambdaQuery(TShop.class)
+                .eq(TShop::getMealType, mealType)
+                .last("LIMIT 1"));
         LambdaQueryWrapper<TGoodsType> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(TGoodsType::getShopId, shopId);
+        wrapper.eq(TGoodsType::getShopId, one.getId());
         return AjaxResult.success(goodsTypeService.list(wrapper));
     }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TFoundationPerson.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TFoundationPerson.java
index fc33a21..689dc72 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TFoundationPerson.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TFoundationPerson.java
@@ -38,7 +38,9 @@
     @ApiModelProperty(value = "店铺id")
     @TableField("shopId")
     private Long shopId;
-
+    @ApiModelProperty(value = "餐饮类型 1=中餐 2=火锅")
+    @TableField("mealType")
+    private Integer mealType;
     @ApiModelProperty(value = "创建时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField("createTime")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TShop.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TShop.java
index 676671e..268f830 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TShop.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TShop.java
@@ -69,4 +69,8 @@
     @TableField("userId")
     private Long userId;
 
+    @ApiModelProperty(value = "餐饮类型 1=中餐 2=火锅")
+    @TableField("mealType")
+    private Integer mealType;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java
index 43cfa66..b1d6ffc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java
@@ -21,6 +21,6 @@
      * 查询所有的人数用餐标准
      * @return
      */
-    List<TFoundationConfigVO> getList(@Param("shopId") Long shopId);
+    List<TFoundationConfigVO> getList(@Param("mealType") Integer mealType);
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java
index f9b83ad..3a27bc7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java
@@ -20,6 +20,6 @@
      * 查询所有的人数用餐标准
      * @return
      */
-    List<TFoundationConfigVO> getList(Long shopId);
+    List<TFoundationConfigVO> getList(Integer mealType);
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationPersonService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationPersonService.java
index 7be202a..1530193 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationPersonService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationPersonService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.domain.TFoundationConfig;
 import com.ruoyi.system.domain.TFoundationPerson;
 import com.ruoyi.system.dto.TFoundationPersonDTO;
 import com.ruoyi.system.query.TFoundationPersonQuery;
@@ -24,13 +25,13 @@
      * @param dto
      * @return
      */
-    void add(TFoundationPersonDTO dto);
+    void add(List<TFoundationPersonDTO> dto);
 
     /**
      * 修改基础设置
      * @param dto
      */
-    void edit(TFoundationPersonDTO dto);
+    void edit(List<TFoundationPersonDTO> dto);
 
     /**
      * 查询基础设置列表
@@ -38,4 +39,11 @@
      */
     PageInfo<TFoundationPersonVO> getList(TFoundationPersonQuery query);
 
+    /**
+     * 判断是否有重复人数
+     * @param list
+     * @return
+     */
+    boolean hasDuplicateId(List<TFoundationPersonDTO> list);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java
index 61e7a54..1d09a6c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java
@@ -49,6 +49,8 @@
     @Autowired
     private TFoundationConfigService foundationConfigService;
     @Autowired
+    private TFoundationPersonService foundationPersonService;
+    @Autowired
     private TGoodsService goodsService;
     @Autowired
     private TOrderMealService orderMealService;
@@ -92,10 +94,10 @@
         dataGenerator.setOtherPay(dto.getOtherProportion());
         this.save(dataGenerator);
         long start = System.currentTimeMillis();
-        // 查询所有的人数用餐标准
-        List<TFoundationConfigVO> foundationConfigs = foundationConfigService.getList(dto.getShopId());
+        TShop shop = shopService.getById(dto.getShopId());
+        List<TFoundationConfigVO> foundationConfigs = foundationConfigService.getList(shop.getMealType());
         if(CollectionUtils.isEmpty(foundationConfigs)){
-            throw new ServiceException("请先添加该店铺用餐标准");
+            throw new ServiceException("请先添加中餐或火锅用餐标准");
         }
         // 查询所有桌子
         List<TBoard> boards = boardService.list(Wrappers.lambdaQuery(TBoard.class)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java
index e8b1432..13303bf 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java
@@ -21,7 +21,7 @@
 public class TFoundationConfigServiceImpl extends ServiceImpl<TFoundationConfigMapper, TFoundationConfig> implements TFoundationConfigService {
 
     @Override
-    public List<TFoundationConfigVO> getList(Long shopId) {
-        return this.baseMapper.getList(shopId);
+    public List<TFoundationConfigVO> getList(Integer mealType) {
+        return this.baseMapper.getList(mealType);
     }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java
index c5fbbd1..cc1982f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java
@@ -15,9 +15,11 @@
 import com.ruoyi.system.vo.TFoundationPersonVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.Comparator;
+import java.util.HashSet;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -36,54 +38,45 @@
     private TFoundationConfigService foundationConfigService;
 
     @Override
-    public void add(TFoundationPersonDTO dto) {
-
-        long count1 = this.count(Wrappers.lambdaQuery(TFoundationPerson.class)
-                .eq(TFoundationPerson::getShopId, dto.getShopId())
-                .eq(TFoundationPerson::getMealCount, dto.getMealCount()));
-        if(count1>0){
-            throw new ServiceException("该店铺已存在该用餐人数设置");
+    @Transactional(rollbackFor = Exception.class)
+    public void add(List<TFoundationPersonDTO> dto) {
+        for (TFoundationPersonDTO tFoundationPersonDTO : dto) {
+            List<TFoundationConfig> foundationConfigs = tFoundationPersonDTO.getFoundationConfigs();
+            long count = foundationConfigs.stream().map(TFoundationConfig::getTypeId).distinct().count();
+            if(foundationConfigs.size()!=count){
+                throw new ServiceException("菜品重复设置");
+            }
+            this.save(tFoundationPersonDTO);
+            // 添加菜品
+            foundationConfigs.forEach(item -> {
+                item.setPersonId(tFoundationPersonDTO.getId());
+            });
+            foundationConfigService.saveBatch(foundationConfigs);
         }
-
-        List<TFoundationConfig> foundationConfigs = dto.getFoundationConfigs();
-        long count = foundationConfigs.stream().map(TFoundationConfig::getTypeId).distinct().count();
-        if(foundationConfigs.size()!=count){
-            throw new ServiceException("菜品重复设置");
-        }
-        // 添加人数
-        this.save(dto);
-        // 添加菜品
-        foundationConfigs.forEach(item -> {
-            item.setPersonId(dto.getId());
-        });
-        foundationConfigService.saveBatch(foundationConfigs);
     }
 
     @Override
-    public void edit(TFoundationPersonDTO dto) {
-        long count1 = this.count(Wrappers.lambdaQuery(TFoundationPerson.class)
-                .eq(TFoundationPerson::getShopId, dto.getShopId())
-                .eq(TFoundationPerson::getMealCount, dto.getMealCount())
-                .ne(TFoundationPerson::getId,dto.getId()));
-        if(count1>0){
-            throw new ServiceException("该店铺已存在该用餐人数设置");
+    @Transactional(rollbackFor = Exception.class)
+    public void edit(List<TFoundationPersonDTO> dto) {
+
+        for (TFoundationPersonDTO tFoundationPersonDTO : dto) {
+            List<TFoundationConfig> foundationConfigs = tFoundationPersonDTO.getFoundationConfigs();
+            long count = foundationConfigs.stream().map(TFoundationConfig::getTypeId).distinct().count();
+            if(foundationConfigs.size()!=count){
+                throw new ServiceException("菜品重复设置");
+            }
+            // 添加人数
+            this.updateById(tFoundationPersonDTO);
+            // 删除菜品
+            foundationConfigService.remove(Wrappers.lambdaQuery(TFoundationConfig.class)
+                    .eq(TFoundationConfig::getPersonId,tFoundationPersonDTO.getId()));
+            // 添加菜品
+            foundationConfigs.forEach(item -> {
+                item.setPersonId(tFoundationPersonDTO.getId());
+            });
+            foundationConfigService.saveBatch(foundationConfigs);
         }
 
-        List<TFoundationConfig> foundationConfigs = dto.getFoundationConfigs();
-        long count = foundationConfigs.stream().map(TFoundationConfig::getTypeId).distinct().count();
-        if(foundationConfigs.size()!=count){
-            throw new ServiceException("菜品重复设置");
-        }
-        // 添加人数
-        this.updateById(dto);
-        // 删除菜品
-        foundationConfigService.remove(Wrappers.lambdaQuery(TFoundationConfig.class)
-                .eq(TFoundationConfig::getPersonId,dto.getId()));
-        // 添加菜品
-        foundationConfigs.forEach(item -> {
-            item.setPersonId(dto.getId());
-        });
-        foundationConfigService.saveBatch(foundationConfigs);
     }
 
     @Override
@@ -106,4 +99,15 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
+    @Override
+    public boolean hasDuplicateId(List<TFoundationPersonDTO> list) {
+        HashSet<Integer> countSet = new HashSet<>();
+        for (TFoundationPersonDTO dto : list) {
+            if (!countSet.add(dto.getMealCount())) {
+                return true; // 发现重复的人数
+            }
+        }
+        return false; // 没有发现重复的人数
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java
index 4dbb1d4..66550b3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java
@@ -11,6 +11,8 @@
 
     @ApiModelProperty(value = "用餐人数")
     private Integer mealCount;
+    @ApiModelProperty(value = "餐饮类型")
+    private Integer mealType;
     @ApiModelProperty(value = "店铺id")
     private Long shopId;
 
diff --git a/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml
index dda7b30..f3b0e79 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml
@@ -16,10 +16,10 @@
         id, personId,typeId, minCount, maxCount
     </sql>
     <select id="getList" resultType="com.ruoyi.system.vo.TFoundationConfigVO">
-        SELECT tfc.id, tfc.personId,tfc.typeId, tfc.minCount, tfc.maxCount,tfp.mealCount,tfp.shopId
+        SELECT tfc.id, tfc.personId,tfc.typeId, tfc.minCount, tfc.maxCount,tfp.mealCount,tfp.shopId,tfp.mealType
         FROM t_foundation_config tfc
         LEFT JOIN t_foundation_person tfp ON tfp.id = tfc.personId
-        where tfp.shopId = #{shopId}
+        where tfp.mealType = #{mealType}
     </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TFoundationPersonMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TFoundationPersonMapper.xml
index 323b04f..c2940a8 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TFoundationPersonMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TFoundationPersonMapper.xml
@@ -8,6 +8,7 @@
         <result column="mealCount" property="mealCount" />
         <result column="createTime" property="createTime" />
         <result column="shopId" property="shopId" />
+        <result column="mealType" property="mealType" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -16,7 +17,7 @@
     </sql>
     <select id="getList" resultType="com.ruoyi.system.vo.TFoundationPersonVO">
         select
-            tfp.id, tfp.mealCount,tfp.createTime,tfp.shopId,ts.shopName
+            tfp.id, tfp.mealCount,tfp.createTime,tfp.shopId,tfp.mealType,ts.shopName
         from t_foundation_person tfp
         left join t_shop ts on ts.id = tfp.shopId
         <where>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TShopMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TShopMapper.xml
index 3188285..4eee20e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TShopMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TShopMapper.xml
@@ -20,15 +20,17 @@
         <result column="createBy" property="createBy" />
         <result column="updateBy" property="updateBy" />
         <result column="userId" property="userId" />
+        <result column="mealType" property="mealType" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, shopType, shopName,shopHead, shopStyle, systemName, systemLogo, businessLicense,status,account, createTime, updateTime, disabled, createBy, updateBy,userId
+        id, shopType, shopName,shopHead, shopStyle, systemName, systemLogo, businessLicense,status,account,
+            createTime, updateTime, disabled, createBy, updateBy,userId,mealType
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TShopVO">
         select id, shopType, shopName,shopHead, shopStyle, systemName, systemLogo, businessLicense,
-        status,account, createTime, updateTime, disabled, createBy, updateBy,userId
+        status,account, createTime, updateTime, disabled, createBy, updateBy,userId,mealType
         from t_shop ts
         <where>
             <if test="query.shopType != null">

--
Gitblit v1.7.1