Browse Source

补全小订单确实的字段以及数据

LiRong 3 days ago
parent
commit
801b1b2a86

+ 4 - 8
leromro-core/src/main/java/com/leromro/core/domain/MainOrders.java

@@ -93,9 +93,6 @@ public class MainOrders extends BaseEntity
     @Excel(name = "预计结束日期", width = 30, dateFormat = "yyyy-MM-dd")
     @ApiModelProperty("预计结束日期")
     private LocalDate serviceFinishDate;
-
-
-    @Excel(name = "单次服务时长")
     @ApiModelProperty("单词服务时长")
     private Integer serviceDuration;
 
@@ -109,7 +106,6 @@ public class MainOrders extends BaseEntity
     @ApiModelProperty("订单支付方式:0 未支付,1余额 ,2微信,3支付宝")
     private String paymentMethod;
 
-
     /** 志愿者id */
     @Excel(name = "志愿者id")
     @ApiModelProperty("志愿者id")
@@ -193,13 +189,13 @@ public class MainOrders extends BaseEntity
     /**
      * 分配状态:10 未分配到服务中心   20已分配到服务中心   30匹配到多个服务中心
      */
-    @ApiModelProperty("分配状态:10 未分配到服务中心   20已分配到服务中心   30匹配到多个服务中心")
-    private String allotStatus;
+/*    @ApiModelProperty("分配状态:10 未分配到服务中心   20已分配到服务中心   30匹配到多个服务中心")
+    private String allotStatus;*/
 
     /**
      * 区域抽成金额(元)
      */
-    @ApiModelProperty("订单所属的服务中心id")
-    private Long deptId;
+  /*  @ApiModelProperty("订单所属的服务中心id")
+    private Long deptId;*/
 
 }

+ 35 - 17
leromro-core/src/main/java/com/leromro/core/domain/SecondOrder.java

@@ -1,7 +1,19 @@
 package com.leromro.core.domain;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.Date;
+
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.leromro.common.annotation.Sensitive;
+import io.swagger.annotations.ApiOperation;
+import lombok.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.leromro.common.annotation.Excel;
 import com.leromro.common.core.domain.BaseEntity;
@@ -26,7 +38,7 @@ import java.util.Date;
 @AllArgsConstructor
 @TableName("l_second_order")
 @EqualsAndHashCode(callSuper = true)
-@ApiModel(value = "SecondOrder", description = "小订单")
+@ApiModel(value = "SecondOrder", description = "小订单")
 public class SecondOrder extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -80,7 +92,6 @@ public class SecondOrder extends BaseEntity
     @ApiModelProperty("大类别")
     private Long serviceCategory;
 
-
     /** 服务记录照片拼接 */
     @Excel(name = "志愿者文字评价")
     @ApiModelProperty("志愿者文字评价")
@@ -137,7 +148,11 @@ public class SecondOrder extends BaseEntity
     /** 服务地址表外键 */
     @Excel(name = "服务地址表外键")
     @ApiModelProperty("服务地址表外键")
-    private Long addressId;
+    private Long addressId;   /** 服务地址表外键 */
+
+    @Excel(name = "服务地址")
+    @ApiModelProperty("服务地址")
+    private String address;
 
     /** 评分 */
     @Excel(name = "评分")
@@ -193,10 +208,25 @@ public class SecondOrder extends BaseEntity
     @ApiModelProperty("区级名称")
     private String districtName;
 
+    @TableField("longitude")
+    @ApiModelProperty("经度")
+    private String longitude;
+
+    @TableField("latitude")
+    @ApiModelProperty("纬度")
+    private String latitude;
+
     @TableField("out_trade_no")
     @ApiModelProperty("商户订单号")
     private String outTradeNo;
 
+    @TableField("allot_status")
+    @ApiModelProperty("分配状态:10 未分配到服务中心  20 已分配到服务中心")
+    private String allotStatus;
+
+
+    @ApiModelProperty("订单创建时间")
+    private Date secondOrderCreateTime;
     /**
      * 区域抽成比例,如0.7
      */
@@ -209,23 +239,11 @@ public class SecondOrder extends BaseEntity
     @ApiModelProperty("区域抽成金额(元)")
     private BigDecimal areaDistributionAmount;
 
-    /**
-     * 区域抽成金额(元)
-     */
-    @ApiModelProperty("分配状态:10 未分配到服务中心   20已分配到服务中心   30匹配到多个服务中心")
-    private String allotStatus;
-
-    /**
-     * 区域抽成金额(元)
-     */
-/*    @ApiModelProperty("订单所属的服务中心id")
-    private Long deptId;*/
-
     /**
      * 区域结算状态 10未结算 20审核中 30审核未通过 40打款中 50已结算
      */
     @ApiModelProperty("区域结算状态 10未结算 20审核中 30审核未通过 40打款中 50已结算")
-    private Integer areaSettlementStatus;
+    private String areaSettlementStatus;
 
     /**
      * 区域结算时间
@@ -298,7 +316,7 @@ public class SecondOrder extends BaseEntity
      * 服务中心费用结算状态 10未结算 20审核中 30审核未通过 40打款中 50已结算
      */
     @ApiModelProperty("服务中心费用结算状态 10未结算 20审核中 30审核未通过 40打款中 50已结算")
-    private Integer serviceCentreSettlementStatus;
+    private String serviceCentreSettlementStatus;
 
     /**
      * 服务中心费用结算时间

+ 19 - 18
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -213,7 +213,7 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         orders.setUserId(userId);
         orders.setCreateTime(DateTimeUtil.getNowTime());
         orders.setServiceOnePrice(serviceOnePrice);
-        orders.setServiceTotalPrice(serviceOnePrice.multiply(BigDecimal.valueOf(orders.getSingleQuantity())).multiply(BigDecimal.valueOf(orders.getTotalTimes())));
+        orders.setServiceTotalPrice(totalPrice);
         orders.setServiceDuration(businessDurationMin);
         //设置服务的开始与结束日期 以及开始与结束时间
         orders.setServiceStartDate(workDateList.get(0).getWorkDate());
@@ -227,10 +227,13 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
 
         //创建小订单模板
         SecondOrder secondOrder = SecondOrder.builder().mainOrderId(orderId).volunteerId(orders.getVolunteerId()).singleQuantity(singleQuantity)
-                .serviceCategory(orders.getServiceCategory()).serviceDuration(orders.getServiceDuration()).addressId(orders.getAddressId())
+                .serviceCategory(orders.getServiceCategory()).serviceDuration(orders.getServiceDuration()).addressId(orders.getAddressId()).serviceTotalPrice(serviceOnePrice.multiply(BigDecimal.valueOf(orders.getSingleQuantity())))
                 .serviceOnePrice(orders.getServiceOnePrice()).volunteerInfoId(orders.getVolunteerInfoId()).orderStatus(seconderStatus)
                 .provinceCode(address.getProvinceCode()).cityCode(address.getCityCode()).districtCode(address.getDistrictCode())
                 .provinceName(address.getProvinceName()).cityName(address.getCityName()).districtName(address.getDistrictName())
+                .longitude(address.getLongitude()).latitude(address.getLatitude())
+                .address(address.getAddress()).areaSettlementStatus("10").volunteerSettlementStatus("10").serviceCentreSettlementStatus("10")
+                .secondOrderCreateTime(DateTimeUtil.getNowTime())
                 .outTradeNo(orderNo)
                 .build();
         secondOrder.setRemark(orders.getRemark());
@@ -247,7 +250,7 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         for (SysDept sysDept : sysDepts) {
             //判断 服务中心分成比例
             //真的
-            String pointList = sysDept.getPointList();
+            /* String pointList = sysDept.getPointList();
             boolean insidePolygon ;
             if (pointList != null){
                 List<double[]> doubles = JsonParser.parseCoordinates(pointList);
@@ -258,35 +261,35 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
             if (insidePolygon){
                 //如果是true  将这个地址的区域id添加到集合中
                 deptIdList.add(sysDept.getDeptId());
-            }//如果false 则什么都不变
+            }//如果false 则什么都不变*/
             //区域公司的分成比例 因为没有区域公司,也不会有志愿者,所以这个区域公司一定会匹配上的
             if (sysDept.getDistrictCode()== null){
-                break;
+                continue;
             }
-            if (sysDept.getDistrictCode().equals(address.getDistrictCode())){
+            if (sysDept.getDistrictCode().equals(address.getDistrictCode()) && sysDept.getAreaType().equals("3")){
                 secondOrder.setAreaDistributionRatio(sysDept.getDistributionRatio());
                 secondOrder.setAreaDistributionId(sysDept.getDeptId());
-            }else {
-                throw new RuntimeException("当前地区缺少管理,请联系管理员");
             }
         }
 
-        //根据匹配数量,修改数值
-        if (deptIdList.size()==1){
+        //根据匹配数量,修改数值,(开会说不用电子围栏)
+       /* if (deptIdList.size()==1){
             //已分配到服务中心
             secondOrder.setAllotStatus("20");
             secondOrder.setServiceCenterId(deptIdList.get(0));
             //设置服务中心的分成比例
             sysDepts.forEach(sysDept -> {
-                if (sysDept.getDeptId().equals(deptIdList.get(0))) {
+                if (sysDept.getDeptId().equals(deptIdList.get(0)) && sysDept.getAreaType().equals("10")) {
                     secondOrder.setServiceCentreDistributionRatio(sysDept.getDistributionRatio());
+                    secondOrder.setServiceCenterId(sysDept.getDeptId());
                 }
             });
 
         } else {
-            secondOrder.setAllotStatus("10");
-        }
 
+        }*/
+
+        secondOrder.setAllotStatus("10");
         List<SecondOrder> secondOrderList = new ArrayList<>();
 
 
@@ -305,13 +308,11 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
             BeanUtils.copyProperties(secondOrder,secondOrder1);
             secondOrder1.setWorkDate(workDate.getWorkDate());
             secondOrder1.setWorkStartTime(workDate.getWorkStartTime());
-            secondOrder1.setWorkEndTime(workDate.getWorkStartTime().plus(Duration.ofMinutes(orders.getServiceDuration())));
+            secondOrder1.setWorkEndTime(workDate.getWorkStartTime().plus(Duration.ofMinutes(orders.getServiceDuration()*orders.getSingleQuantity())));
             secondOrder1.setWorkNumber(number);
             secondOrder1.setSecondOrderId(secondOrderIdL);
-
-            orders.setOutTradeNo(orderNo+"-"+number);
-            secondOrder1.setOutTradeNo(orderNo);
-
+            String orderNoId = orderNo+"-"+number;
+            secondOrder1.setOutTradeNo(orderNoId);
             secondOrderList.add(secondOrder1);
 
             //向志愿者预约时间表中添加数据

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

@@ -3,9 +3,11 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.leromro.core.mapper.SecondOrdersMapper">
+
     <insert id="insertList" parameterType="java.util.List">
         INSERT INTO l_second_order (
         second_order_id,
+        out_trade_no,
         main_order_id,
         volunteer_id,
         service_category,
@@ -23,19 +25,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order_status,
         volunteer_settlement_status,
         volunteer_info_id,
-        remark
+        remark,
+        service_total_price,
+        work_end_time,
+        second_order_create_time,
+        province_code,
+        province_name,
+        city_code,
+        city_name,
+        district_code,
+        district_name,
+        address,
+        latitude,
+        longitude,
+        area_distribution_ratio,
+        area_distribution_id,
+        area_settlement_status,
+        allot_status,
+        service_center_id,
+        service_centre_distribution_ratio,
+        service_centre_settlement_status
         ) VALUES
         <foreach collection="list" item="secondOrder" separator=",">
             <if test="secondOrder != null">
                 (
                 #{secondOrder.secondOrderId},
-                 #{secondOrder.mainOrderId},
+                #{secondOrder.outTradeNo},
+                #{secondOrder.mainOrderId},
                 #{secondOrder.volunteerId},
                 #{secondOrder.serviceCategory},
                 #{secondOrder.serviceOnePrice},
                 #{secondOrder.workStartTime},
                 #{secondOrder.workNumber},
-                 #{secondOrder.singleQuantity},
+                #{secondOrder.singleQuantity},
                 #{secondOrder.serviceDuration},
                 #{secondOrder.addressId},
                 #{secondOrder.workDate},
@@ -45,8 +67,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 #{secondOrder.updateBy},
                 #{secondOrder.orderStatus},
                 #{secondOrder.volunteerSettlementStatus},
-                 #{secondOrder.volunteerInfoId},
-                #{secondOrder.remark}
+                #{secondOrder.volunteerInfoId},
+                #{secondOrder.remark},
+                #{secondOrder.serviceTotalPrice},
+                #{secondOrder.workEndTime},
+                #{secondOrder.secondOrderCreateTime},
+                #{secondOrder.provinceCode},
+                #{secondOrder.provinceName},
+                #{secondOrder.cityCode},
+                #{secondOrder.cityName},
+                #{secondOrder.districtCode},
+                #{secondOrder.districtName},
+                #{secondOrder.address},
+                #{secondOrder.latitude},
+                #{secondOrder.longitude},
+                #{secondOrder.areaDistributionRatio},
+                #{secondOrder.areaDistributionId},
+                #{secondOrder.areaSettlementStatus},
+                #{secondOrder.allotStatus},
+                #{secondOrder.serviceCenterId},
+                #{secondOrder.serviceCentreDistributionRatio},
+                #{secondOrder.serviceCentreSettlementStatus}
                 )
             </if>
         </foreach>
@@ -194,6 +235,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         lso.order_status      as orderStatus,
         lso.service_one_price as serviceOnePrice,
         lso.single_quantity ,
+        lso.service_total_price,
+        lso.volunteer_settlement_status,
+        lso.province_code,
+        lso.province_name,
+        lso.city_code,
+        lso.city_name,
+        lso.district_code,
+        lso.district_name,
+        lso.district_code,
+        lso.district_name,
+        lso.address,
+        lso.latitude,
+        lso.longitude,
+        lso.service_start_time,
+        lso.service_end_time,
         lmo.user_id,
         lmo.address         as address,
         lmo.client_name       as name,