Procházet zdrojové kódy

根据小订单自动评价主订单

LiRong před 3 měsíci
rodič
revize
87baef1799

+ 2 - 2
leromro-core/src/main/java/com/leromro/core/controller/LSlideshowController.java

@@ -83,7 +83,7 @@ public class LSlideshowController extends BaseController
     @ApiOperation("web新增主页轮播图图片,传入图片 前端分割")
     /*@PreAuthorize("@ss.hasPermi('core:slideshow:add')")*/
     @Log(title = "主页轮播图或后续其他广告图片", businessType = BusinessType.INSERT)
-    @PutMapping
+    @PostMapping
     public AjaxResult add(@RequestBody Slideshow slideshow)
     {
         return toAjax(lSlideshowService.save(slideshow));
@@ -95,7 +95,7 @@ public class LSlideshowController extends BaseController
     @ApiOperation("web修改主页轮播图或后续其他广告图片")
   //  @PreAuthorize("@ss.hasPermi('core:slideshow:edit')")
     @Log(title = "主页轮播图或后续其他广告图片", businessType = BusinessType.UPDATE)
-    @PostMapping
+    @PutMapping
     public AjaxResult edit(@RequestBody Slideshow slideshow)
     {
         return toAjax(lSlideshowService.updateLSlideshow(slideshow));

+ 2 - 0
leromro-core/src/main/java/com/leromro/core/mapper/MainOrdersMapper.java

@@ -24,4 +24,6 @@ public interface MainOrdersMapper extends BaseMapper<MainOrders> {
     WebMainOrdersInfoVO selectWebMainOrderInfoVO(Long mainOrderId);
 
     MainOrderInfoVO selectOrderInfoByUserId(Long mainOrderId);
+
+    void autoCommentOrderScore(@Param("mainOrdersList") List<Long> mainOrdersList);
 }

+ 4 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -410,4 +410,8 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         MainOrderInfoVO mainOrderInfoVO = mainOrdersMapper.selectOrderInfoByUserId(mainOrderId);
         return mainOrderInfoVO;
     }
+
+    public void autoCommentOrderScore(List<Long> mainOrdersList) {
+        mainOrdersMapper.autoCommentOrderScore(mainOrdersList);
+    }
 }

+ 13 - 1
leromro-core/src/main/java/com/leromro/core/ttl/Monitor.java

@@ -3,9 +3,11 @@ package com.leromro.core.ttl;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.leromro.common.enums.UserPointChangeTypeEnum;
 import com.leromro.core.domain.*;
+import com.leromro.core.service.impl.MainOrderServiceImpl;
 import com.leromro.system.domain.dto.UserUnfreezePointDTO;
 import com.leromro.core.mapper.*;
 import com.leromro.core.service.ISecondOrderService;
@@ -39,6 +41,8 @@ public class Monitor {
     private IUserPointChangeService iUserPointChangeService;
     @Autowired
     private ISysUserService iSysUserService;
+    @Autowired
+    private MainOrderServiceImpl mainOrderService;
 
     /**
      * 定时任务定时调用的任务
@@ -66,8 +70,9 @@ public class Monitor {
         UpdateWrapper<OrderFrozenFunds> updateFrozenWrapper = new UpdateWrapper<OrderFrozenFunds>().in("order_frozen_funds_id", orderFrozenFundsIdList).set("status", 1);
         orderFrozenFundsMapper.update(null, updateFrozenWrapper);
         //志愿者订单表  已完成订单 默认评价
-        UpdateWrapper<SecondOrder> updateSecondOrderWrapper = new UpdateWrapper<SecondOrder>().eq("order_status", "4").in("second_order_id", seconderOrderIdList).set("score", 1).setSql("remark = CASE WHEN score IS NULL OR score = '' THEN '用户未评价,系统默认一星' ELSE remark END");
+        UpdateWrapper<SecondOrder> updateSecondOrderWrapper = new UpdateWrapper<SecondOrder>().eq("order_status", "4").eq("score",null).in("second_order_id", seconderOrderIdList).set("score", 1).setSql("remark = CASE WHEN score IS NULL OR score = '' THEN '用户未评价,系统默认一星' ELSE remark END");
         secondOrdersMapper.update(null, updateSecondOrderWrapper);
+
         //解冻后,向平台流水表中添加数据
         // 1.先添加志愿者变更金额
         List<PlatformFinance> volunteerPlatformList = needThawMoneyList.stream().map(orderFrozenFunds -> new PlatformFinance(null, orderFrozenFunds.getVolunteerMoney(), 1, 2, 3, orderFrozenFunds.getSecondOrderId(), orderFrozenFunds.getVolunteerId())).collect(Collectors.toList());
@@ -78,6 +83,13 @@ public class Monitor {
         //查出所有已分配服务中心的需要解冻的小订单
         List<SecondOrder> secondOrderList = secondOrdersMapper.selectList(new LambdaQueryWrapper<SecondOrder>().in(SecondOrder::getSecondOrderId, seconderOrderIdList));
 
+        //根据主订单查到小订单,看看是否是全部完成
+        List<Long> mainOrderIdList = secondOrderList.stream().map(SecondOrder::getMainOrderId).distinct().collect(Collectors.toList());
+        List<Long> mainOrdersIdList = mainOrderService.list(new LambdaQueryWrapper<MainOrders>().eq(MainOrders::getOrderStatus, "4").in(MainOrders::getMainOrderId,mainOrderIdList)).stream().map(MainOrders::getMainOrderId).collect(Collectors.toList());
+
+        mainOrderService.autoCommentOrderScore(mainOrdersIdList);
+
+
         // 构建map 拿到secondOrderId 和 金额
         Map<Long, BigDecimal> brokerageMap = platformPlatformList.stream() .collect(Collectors.toMap(PlatformFinance::getSecondOrderId, PlatformFinance::getChangeMoney));
 

+ 9 - 0
leromro-core/src/main/resources/mapper/core/MainOrdersMapper.xml

@@ -120,6 +120,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="startService" parameterType="java.lang.Long">
         update l_main_orders set order_status = '3' where main_order_id = (select main_order_id from l_second_order where second_order_id = #{secondOrderId});
     </update>
+
+
+    <update id="autoCommentOrderScore">
+        update l_main_orders lmo set lmo.score = (select SUM(lso.score) from
+               l_second_order lso where lso.main_order_id in <foreach item="id" collection="mainOrdersList" open="(" separator="," close=")">#{id}</foreach> ) / lmo.total_times where main_order_id in
+        <foreach item="id" collection="mainOrdersList" open="(" separator="," close=")">#{id}</foreach>
+    </update>
+
+
     <select id="selectByUserId" resultType="com.leromro.core.domain.vo.MainOrdersVO">
         select lmo.main_order_id ,lvi.business_tier_name ,lvi.business_describe , lmo.create_time,lmo.service_total_price,lmo.order_status,lvi.name,lvi.volunteer_picture,lmo.create_time
         from l_main_orders lmo left join l_volunteer_info lvi on lmo.volunteer_info_id = lvi.volunteer_info_id