소스 검색

如果订单已分配服务中心,则在解冻时计算出服务中心的分成金额

LiRong 3 달 전
부모
커밋
440e8ab71c

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

@@ -28,6 +28,7 @@ import com.leromro.core.utils.BigDecimalUtil;
 import com.leromro.core.utils.DateTimeUtil;
 import com.leromro.core.utils.JsonParser;
 import com.leromro.core.utils.NoUtil;
+import com.leromro.system.mapper.SysConfigMapper;
 import com.leromro.system.mapper.SysDeptMapper;
 import com.leromro.system.mapper.SysUserMapper;
 import lombok.extern.slf4j.Slf4j;
@@ -86,6 +87,8 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
 
     @Autowired
     private IConversationRecordService conversationRecordService;
+    @Autowired
+    private SysConfigMapper sysConfigMapper;
 
     /**
      * @param userId

+ 12 - 7
leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java

@@ -21,6 +21,7 @@ import com.leromro.core.domain.vo.*;
 import com.leromro.core.mapper.*;
 import com.leromro.core.service.ISecondOrderService;
 import com.leromro.core.utils.DateTimeUtil;
+import com.leromro.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -41,6 +42,8 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
     private MainOrdersMapper mainOrdersMapper;
     @Autowired
     private VolunteerInfoMapper volunteerInfoMapper;
+    @Autowired
+    private ISysConfigService sysConfigService;
 
     /**
      * @param orderStatus
@@ -64,7 +67,8 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         //BigDecimal onePrice = secondOrderInfo.getServiceOnePrice();
         BigDecimal oneServiceTotalPrice = secondOrderInfo.getServiceTotalPrice();
         //默认平台佣金以及志愿者到手钱数
-        BigDecimal volunteerMoney = oneServiceTotalPrice.multiply(new BigDecimal("0.85"));
+        String oneScore = sysConfigService.selectConfigByKey("orderOneScore");
+        BigDecimal volunteerMoney = oneServiceTotalPrice.multiply(new BigDecimal(oneScore));
         BigDecimal platformBrokerage = oneServiceTotalPrice.subtract(volunteerMoney);
         //计算结束冻结时间 默认开始时间+3天
         DateTime frozenStartTime = DateTimeUtil.getNowTime1();
@@ -119,7 +123,8 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         Long volunteerInfoId = reviewDTO.getVolunteerInfoId();
         VolunteerInfo volunteerInfo = volunteerInfoMapper.selectOne(new LambdaQueryWrapper<VolunteerInfo>().eq(VolunteerInfo::getVolunteerInfoId, volunteerInfoId));
         BigDecimal serviceOnePrice = volunteerInfo.getBusinessPrice();
-        BigDecimal volunteerMoney = serviceOnePrice.multiply(new BigDecimal("0.85"));
+
+        BigDecimal volunteerMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderOneScore")));
         BigDecimal scoreMoney = BigDecimal.valueOf(0);
         BigDecimal platformBrokerage = BigDecimal.valueOf(0);
         Integer protocolScore = reviewDTO.getProtocolScore();
@@ -130,24 +135,24 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         Integer score =(int)Math.round(averageScore);
         if  ( score.equals(1) ){
             //  1星85%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal("0.85")).subtract(volunteerMoney);
+            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderOneScore"))).subtract(volunteerMoney);
             platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
         }
         else if ( score.equals(2) ){
             //  2星89%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal("0.89")).subtract(volunteerMoney);
+            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderTwoScore"))).subtract(volunteerMoney);
             platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
         } else if (score.equals(3)) {
             //  3星91%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal("0.91")).subtract(volunteerMoney);
+            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderThreeScore"))).subtract(volunteerMoney);
             platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
         } else if (score.equals(4)) {
             //  4星93%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal("0.93")).subtract(volunteerMoney);
+            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderFourScore"))).subtract(volunteerMoney);
             platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
         } else if (score.equals(5)) {
             //  5星95%
-            scoreMoney = serviceOnePrice.multiply(new BigDecimal("0.95")).subtract(volunteerMoney);
+            scoreMoney = serviceOnePrice.multiply(new BigDecimal(sysConfigService.selectConfigByKey("orderFiveScore"))).subtract(volunteerMoney);
             platformBrokerage = serviceOnePrice.subtract(volunteerMoney).subtract(scoreMoney);
         }
         //修改冻结表:

+ 5 - 0
leromro-core/src/main/resources/mapper/core/SecondOrdersMapper.xml

@@ -101,6 +101,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 WHEN #{order.secondOrderId} THEN #{order.areaDistributionAmount}
             </foreach>
             END,
+            service_centre_distribution_amount = CASE second_order_id
+            <foreach collection="list" item="order">
+                WHEN #{order.secondOrderId} THEN #{order.serviceCentreDistributionAmount}
+            </foreach>
+            END,
             volunteer_settlement_status = CASE second_order_id
             <foreach collection="list" item="order">
                 WHEN #{order.secondOrderId} THEN #{order.volunteerSettlementStatus}

+ 1 - 0
leromro-system/src/main/resources/mapper/system/SysConfigMapper.xml

@@ -57,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 				and date_format(create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')
 			</if>
 		</where>
+		order by create_time desc
     </select>
     
     <select id="selectConfigById" parameterType="Long" resultMap="SysConfigResult">