Преглед изворни кода

新增餐饮对外接口,修复今日菜品,和菜品评价问题

he.dujuan пре 3 година
родитељ
комит
ef9ecf381f

+ 2 - 4
eladmin-system/src/main/java/me/zhengjie/config/rabbitmq/test/ListenerTemplate.java

@@ -69,10 +69,8 @@ public class ListenerTemplate {
                 dmDayPc.setWindow(attendance.getInteger("window"));
                 dmDayPc.setState(attendance.getString("state"));
                 dmDayPc.setName(attendance.getString("name"));
-                DmFoodCate dmFoodCate = new DmFoodCate();
-                dmFoodCate.setId(attendance.getInteger("cate"));
                 DmFoodCate cate = dmFoodCateRepository.findByCateId(attendance.getInteger("cate"));
-                dmFoodCate.setCateId(attendance.getInteger("cate"));
+                cate.setCateId(attendance.getInteger("cate"));
                 dmDayPc.setCate(cate);
                 dmDayPc.setPid(attendance.getLong("pid"));
                 dmDayPc.setGoods(attendance.getString("goods"));
@@ -93,7 +91,7 @@ public class ListenerTemplate {
                 dmFood.setName(dmDayPc.getName());
                 dmFood.setPrice(dmDayPc.getPrice());
                 dmFood.setType(dmDayPc.getCate());//.toString()
-//                dmFood.setCateName(dmDayPc.getCateName());
+                dmFood.setCode(cate.getCateId().toString());
                 dmFood.setPstate(dmDayPc.getPstate());
                 dmFoodRepository.save(dmFood);
             }

+ 1 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/food/repository/DmFoodRepository.java

@@ -29,4 +29,5 @@ import java.util.Map;
 * @date 2021-09-15
 **/
 public interface DmFoodRepository extends JpaRepository<DmFood, Long>, JpaSpecificationExecutor<DmFood> {
+
 }

+ 2 - 2
eladmin-system/src/main/java/me/zhengjie/modules/dm/foodCate/repository/DmFoodCateRepository.java

@@ -34,9 +34,9 @@ import java.util.Map;
 **/
 public interface DmFoodCateRepository extends JpaRepository<DmFoodCate, Integer>, JpaSpecificationExecutor<DmFoodCate> {
 
-    @Query(value = "SELECT p.pcid,p.`name`,cate_id,c.cate_name,t.url,p.price,COUNT(p.`name`) AS `no` FROM dm_day_pc p " +
+    @Query(value = "SELECT p.pcid,p.`name`,c.cate_id,c.cate_name,t.url,p.price,COUNT(p.`name`) AS `no` FROM dm_day_pc p " +
             "LEFT JOIN dm_food_cate c ON c.cate_id = p.cate LEFT JOIN tool_local_storage t ON " +
-            "c.url = t.storage_id WHERE date_format(date,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') GROUP BY p.`name`",nativeQuery = true)
+            "c.url = t.storage_id WHERE date_format(p.date,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') GROUP BY p.`name`",nativeQuery = true)
     List<Map<String,Object>> foodApp();
 
     /**

+ 7 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/foodPj/repository/DmFoodPjRepository.java

@@ -18,6 +18,10 @@ package me.zhengjie.modules.dm.foodPj.repository;
 import me.zhengjie.modules.dm.foodPj.domain.DmFoodPj;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+import java.util.Map;
 
 /**
 * @website https://el-admin.vip
@@ -25,4 +29,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 * @date 2021-09-15
 **/
 public interface DmFoodPjRepository extends JpaRepository<DmFoodPj, Long>, JpaSpecificationExecutor<DmFoodPj> {
+
+    @Query(value = " SELECT `id`, `oid`, `food_name`, `food_code`, `food_type`, `user_code`, `user_name`, `pj_type`, `order_time`, `order_bh`, `pj_time`, `pj_star`, `pj_tag`, `pj_desc`, `pj_pic` FROM  dm_food_pj AS pj where DATE_FORMAT(pj.pj_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') AND pj.food_code = :code  ",nativeQuery = true)
+    List<Map<String,Object>> findByFoodCode(String code);
 }

+ 7 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/foodPj/service/DmFoodPjService.java

@@ -87,4 +87,11 @@ public interface DmFoodPjService {
     * @throws IOException /
     */
     void download(List<DmFoodPjDto> all, HttpServletResponse response) throws IOException;
+
+    /**
+     * 根据菜品id查询评价详情
+     * @param code
+     * @return
+     */
+    List<Map<String,Object>> findByFoodCode(String code);
 }

+ 5 - 1
eladmin-system/src/main/java/me/zhengjie/modules/dm/foodPj/service/impl/DmFoodPjServiceImpl.java

@@ -92,7 +92,6 @@ public class DmFoodPjServiceImpl implements DmFoodPjService {
     public DmFoodPjDto createApp(DmFoodPj resources) {
         Snowflake snowflake = IdUtil.createSnowflake(1, 1);
         resources.setId(snowflake.nextId());
-
         DmOrderItem dmOrderItem = dmOrderItemRepository.findById(resources.getOid()).orElseGet(DmOrderItem::new);
         ValidationUtil.isNull( resources.getOid(),"DmOrderItem","id",resources.getOid());
 //        dmOrderItem.copy(resources);
@@ -139,4 +138,9 @@ public class DmFoodPjServiceImpl implements DmFoodPjService {
         }
         FileUtil.downloadExcel(list, response);
     }
+
+    @Override
+    public List<Map<String,Object>> findByFoodCode(String code) {
+        return dmFoodPjRepository.findByFoodCode(code);
+    }
 }

+ 6 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/order/repository/DmOrderRecordRepository.java

@@ -103,4 +103,10 @@ public interface DmOrderRecordRepository extends JpaRepository<DmOrderRecord, Lo
      */
     @Query(value = "SELECT COUNT(DISTINCT(mob)) FROM dm_order_record where DATE_FORMAT(create_date,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') ",nativeQuery = true)
     Integer countOrderPersonByNow();
+    /**
+     * 查询浸提食品消耗
+     * @return
+     */
+    @Query(value = "SELECT if(AVG(pj.pj_star) is null,0,AVG(pj.pj_star)) as grade, COUNT(DISTINCT(pj.user_code)) as code_num,count(pj.food_code) as food_num FROM dm_order_record as record INNER JOIN dm_order_item as item on item.bh = record.bh left join dm_food_pj as pj on pj.order_bh = item.bh where DATE_FORMAT(record.create_date,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') and pj.food_code = :cateId ",nativeQuery = true)
+    Map<String,Object> selectOrderSumByCateId(@Param("cateId") String cateId);
 }

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/modules/dm/service/repository/DmServicePjRepository.java

@@ -60,7 +60,7 @@ public interface DmServicePjRepository extends JpaRepository<DmServicePj, Intege
             "WHERE user_code = ?1 and date_format( pj_time, '%Y-%m-%d' ) = date_format(now(),'%Y-%m-%d')",nativeQuery = true)
     Map<String,Object> getDmServicePjByUserCodeAndPjTime(String userCode);
 
-    @Query(value = "SELECT COUNT(DISTINCT(user_code)) as num,AVG(zhfw_point) as point FROM dm_service_pj WHERE DATE_FORMAT(pj_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')",nativeQuery = true)
+    @Query(value = "SELECT COUNT(DISTINCT(user_code)) as num,if(AVG(zhfw_point) is null,0,AVG(zhfw_point)) as point FROM dm_service_pj WHERE DATE_FORMAT(pj_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')",nativeQuery = true)
     Map<String,Object> getDmServicePjByNow();
 
     @Query(value = "SELECT * FROM dm_service_pj WHERE DATE_FORMAT(pj_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')",nativeQuery = true)

+ 1 - 0
eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/CardRecordTask.java

@@ -362,6 +362,7 @@ public class CardRecordTask {
                         dmOrderItem.setSeq(attendance.getLong("seq"));
                         dmOrderItem.setFood(userData.getLong("pid"));
                         dmOrderItem.setBh(bh);
+                        dmOrderItem.setCode(userData.getString("pid"));
                         dmOrderItem.setName(userData.getString("name"));
                         dmOrderItem.setPrice(userData.getString("price"));
                         dmOrderItem.setAmt(userData.getDouble("amt"));

+ 53 - 14
eladmin-system/src/main/java/me/zhengjie/modules/thirdparty/v1/OpenApiController.java

@@ -16,6 +16,7 @@ import me.zhengjie.exception.BadRequestException;
 import me.zhengjie.modules.dm.daypc.domain.DmDayPc;
 import me.zhengjie.modules.dm.daypc.service.DmDayPcService;
 import me.zhengjie.modules.dm.daypc.service.dto.DmDayPcQueryCriteria;
+import me.zhengjie.modules.dm.foodCate.domain.DmFoodCate;
 import me.zhengjie.modules.dm.foodCate.repository.DmFoodCateRepository;
 import me.zhengjie.modules.dm.foodPj.domain.DmFoodPj;
 import me.zhengjie.modules.dm.foodPj.service.DmFoodPjService;
@@ -41,9 +42,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @RestController
 @RequiredArgsConstructor
@@ -97,6 +96,8 @@ public class OpenApiController {
     @ApiOperation("新增菜品评价")
     public BaseResponse<Object> createFoodPj(@RequestBody QueryPageParams<DmFoodPj> resources){
         SecurityUtils.CheckApiAuth(resources);
+         Optional<DmFoodCate> byId = dmFoodCateRepository.findById(resources.getQuery().getFoodType().getId());
+         resources.getQuery().setFoodType(byId.get());
         return new BaseResponse<>(dmFoodPjService.createApp(resources.getQuery()));
     }
 
@@ -171,6 +172,14 @@ public class OpenApiController {
     public BaseResponse<Object> appCountData(@RequestBody QueryPageParams<String> criteria){
         SecurityUtils.CheckApiAuth(criteria);
 
+        /**
+         * 声明一个map返回参数
+         */
+
+        Map<String,Object> map = new HashMap<>();
+
+        JSONObject jsonObject = new JSONObject();
+
         /**
          * 查询今日购餐总额(元)
          */
@@ -187,10 +196,12 @@ public class OpenApiController {
          * 统计综合服务评分
          */
         Map<String, Object> dmServicePjByNow = dmServicePjRepository.getDmServicePjByNow();
-        dmServicePjByNow.put("dmServicePjContentByNow",dmServicePjContentByNow);
-        dmServicePjByNow.put("person",person);
-        dmServicePjByNow.put("money",bigDecimal.toString());
-        return new BaseResponse<>(dmServicePjByNow);
+        map.put("person",person);
+        map.put("money",bigDecimal.toString());
+        jsonObject.put("dmServicePjByNow",dmServicePjByNow);
+        jsonObject.put("dmServicePjContentByNow",dmServicePjContentByNow);
+        map.put("content",jsonObject);
+        return new BaseResponse<>(map);
     }
 
     @AnonymousPostMapping(value = "/AppDayFoodData")
@@ -204,21 +215,49 @@ public class OpenApiController {
          * data { 菜品名称,菜品单价,供应数量 }
          */
          List<Map<String, Object>> maps = dmFoodCateRepository.foodApp();
-
         /**
-         * 声明一个json对象用来存储菜品统计信息
+         * list 接收
          */
-        JSONObject jsonObject = new JSONObject();
+        List<JSONObject> jsonObjectList = new ArrayList<>();
 
         /**
          * 使用forEach之后 里面的变量必须要用原子类
          */
         maps.forEach(item->{
-//            item.get("")
-
-         });
+            /**
+             * 声明一个json对象用来存储菜品统计信息
+             */
+            JSONObject jsonObject = new JSONObject();
+            Map<String,Object> map = new HashMap<>();
+            JSONObject object = new JSONObject();
+            /**
+             * 根据商品id查询今日消费了多少当前商品
+             */
+             Object cate_id = item.get("cate_id");
+            /**
+             * grade 评价平均值  code_num 评价参与人数 food_num 商品消费了多少
+             */
+            Map<String,Object> cate = dmOrderRecordRepository.selectOrderSumByCateId(cate_id == null?null:cate_id.toString());
+            /**
+             * 查询评价详情列表
+             */
+            List<Map<String,Object>> dmFoodPjs = dmFoodPjService.findByFoodCode(cate_id.toString());
+            //供应总数
+            map.put("foodSum",item.get("no").toString());
+            //剩余数量
+            map.put("foodResidue",Integer.valueOf(item.get("no").toString())-Integer.valueOf(cate.get("food_num").toString()) <=0? 0:Integer.valueOf(item.get("no").toString())-Integer.valueOf(cate.get("food_num").toString()));
+            //商品单价
+            map.put("foodPrice",item.get("price"));
+            jsonObject.put("foodName",item.get("name"));
+            jsonObject.put("foodPrice",item.get("price"));
+            jsonObject.put("content",map);
+            object.put("cate",cate);
+            object.put("dmFoodPjs",dmFoodPjs);
+            map.put("object",object);
+            jsonObjectList.add(jsonObject);
+        });
 
-        return new BaseResponse<>(maps);
+        return new BaseResponse<>(jsonObjectList);
     }