Pārlūkot izejas kodu

新增了志愿者确认订单

LiRong 1 mēnesi atpakaļ
vecāks
revīzija
6ba31b6144

+ 25 - 3
leromro-core/src/main/java/com/leromro/core/controller/volunteerOrderController.java

@@ -1,17 +1,19 @@
 package com.leromro.core.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.leromro.common.core.domain.AjaxResult;
 import com.leromro.common.core.domain.R;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.SecondOrder;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
 import com.leromro.core.service.ISecondOrderService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -43,4 +45,24 @@ public class volunteerOrderController {
         return R.ok(secondOrderInfo);
     }
 
+    @ApiOperation(value = "志愿者滑动,开始订单", notes = "目前只传secondOrderId(第二版再根据地址判断)")
+    @GetMapping("/getTimesByDate/{secondOrderId}")
+    public AjaxResult volunteerStartWork(@PathVariable String secondOrderId){
+        UpdateWrapper<SecondOrder> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("second_order_id",secondOrderId).set("order_status",1);
+        secondOrderService.update(updateWrapper);
+        return AjaxResult.success();
+    }
+    @ApiOperation(value = "志愿者点击结束订单", notes = "传入seconderOrderId,以及图片拼接在一起的字符串 json对象参数")
+/*    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "seconderOrderId", value = "志愿者订单id", required = true),
+            @ApiImplicitParam(name = "serviceLog", value = "志愿者上传图片拼接的字符串", required = true),
+            @ApiImplicitParam(name = "volunteerId", value = "志愿者的id", required = true)
+    })*/
+    @GetMapping("/volunteerFinishSecondOrder")
+    public AjaxResult volunteerFinishWork(@RequestBody SecondOrder secondOrder){
+        return  secondOrderService.volunteerFinishWork(secondOrder);
+
+    }
+
 }

+ 17 - 2
leromro-core/src/main/java/com/leromro/core/domain/OrderFrozenFunds.java

@@ -1,10 +1,13 @@
 package com.leromro.core.domain;
 
 import java.math.BigDecimal;
+import java.util.Date;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -55,17 +58,29 @@ public class OrderFrozenFunds extends BaseEntity
     /** 冻结状态 0冻结中1已解冻 */
     @TableField("status")
     @ApiModelProperty("冻结状态 0冻结中1已解冻")
-    private Long status;
+    private Integer status;
 
     /** 志愿者订单id */
     @TableField("second_order_id")
     @ApiModelProperty("志愿者订单id")
-    private Long secondOrderId;
+    private String secondOrderId;
 
     /** 志愿者id */
     @TableField("volunteer_id")
     @ApiModelProperty("志愿者id")
     private Long volunteerId;
 
+    /** 开始冻结时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField("frozen_start_time")
+    @ApiModelProperty("开始冻结时间")
+    private Date frozenStartTime;
+
+    /** 结束冻结时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField("frozen_end_time")
+    @ApiModelProperty("结束冻结时间")
+    private Date frozenEndTime;
+
 
 }

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

@@ -40,22 +40,22 @@ public class PlatformFinance extends BaseEntity
     /** 变更类型 1增加0减少 */
     @TableField("change_type")
     @ApiModelProperty("变更类型 1增加0减少")
-    private Long changeType;
+    private Integer changeType;
 
     /** 金额类型 1营业额2志愿者佣金3平台佣金4志愿者扣款 */
     @TableField("money_type")
     @ApiModelProperty("金额类型 1营业额2志愿者佣金3平台佣金4志愿者扣款")
-    private Long moneyType;
+    private Integer moneyType;
 
     /** 来源类型 1订单支付2订单退款3订单完成 */
     @TableField("source_type")
     @ApiModelProperty("来源类型 1订单支付2订单退款3订单完成")
-    private Long sourceType;
+    private Integer sourceType;
 
     /** 志愿者订单id */
     @TableField("second_order_id")
     @ApiModelProperty("志愿者订单id")
-    private Long secondOrderId;
+    private String secondOrderId;
 
     /** 志愿者id */
     @TableField("volunteer_id")

+ 8 - 3
leromro-core/src/main/java/com/leromro/core/domain/SecondOrder.java

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiOperation;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -32,12 +33,12 @@ public class SecondOrder extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** 主键 小订单表id */
-    @TableId(type = IdType.AUTO)
+    @Excel(name = "小订单id")
     @ApiModelProperty("主键 小订单表id")
-    private Long secondOrderId;
+    private String secondOrderId;
 
     /** 订单id */
-    @Excel(name = "订单id")
+    @Excel(name = "订单id")
     @ApiModelProperty("订单id")
     private String mainOrderId;
 
@@ -72,6 +73,10 @@ public class SecondOrder extends BaseEntity
     @ApiModelProperty("学科科目")
     private Long serviceSubject;
 
+    /** 服务记录照片拼接 */
+    @Excel(name = "服务照片")
+    @ApiModelProperty("服务照片")
+    private String serviceLog;
     /** 服务开始日期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "服务开始日期", width = 30, dateFormat = "yyyy-MM-dd")

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

@@ -59,4 +59,6 @@ public interface PlatformFinanceMapper extends BaseMapper<PlatformFinance>
      * @return 结果
      */
     public int deletePlatformFinanceByPlatformFinanceIds(Long[] platformFinanceIds);
+
+    int insertPlatformFinanceList(List<PlatformFinance> platformFinanceList);
 }

+ 1 - 1
leromro-core/src/main/java/com/leromro/core/mapper/SecondOrdersMapper.java

@@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 public interface SecondOrdersMapper extends BaseMapper<SecondOrder> {
-    void insertList(List<SecondOrder> secondOrder);
+    int insertList(List<SecondOrder> secondOrder);
 
     List<VolunteerOrdersVO> selectVolunteerOrder(@Param("userId") Long userId,@Param("orderStatus") Long orderStatus);
 }

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

@@ -1,6 +1,7 @@
 package com.leromro.core.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.leromro.common.core.domain.AjaxResult;
 import com.leromro.core.domain.SecondOrder;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
 
@@ -8,4 +9,6 @@ import java.util.List;
 
 public interface ISecondOrderService extends IService<SecondOrder> {
     List<VolunteerOrdersVO> selectOrderList(Long userId,Long orderStatus);
+
+    AjaxResult volunteerFinishWork(SecondOrder secondOrder);
 }

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

@@ -7,10 +7,12 @@ import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.*;
 import com.leromro.core.domain.dto.OrderRequestDTO;
 import com.leromro.core.mapper.MainOrdersMapper;
+import com.leromro.core.mapper.PlatformFinanceMapper;
 import com.leromro.core.mapper.SecondOrdersMapper;
 import com.leromro.core.mapper.ClientAccountMapper;
 import com.leromro.core.service.IMainOrderService;
 import com.leromro.core.utils.DateTimeUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -32,6 +34,8 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
     private VolunteerReservationTimeServiceImpl volunteerReservationTimeService;
     @Autowired
     private Snowflake snowflake;
+    @Autowired
+    private PlatformFinanceMapper platformFinanceMapper;
 
     /**
      * @param userId
@@ -86,25 +90,47 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         List<VolunteerReservationTime> reservationTimes = new ArrayList<>();
 
         //新增按次数的小订单表
+        //创建小订单模板
         SecondOrder secondOrder = SecondOrder.builder().mainOrderId(String.valueOf(orderId)).volunteerId(orders.getVolunteerId()).
                 serviceCategory(orders.getServiceCategory()).workStartTime(orders.getStartTime())
                 .serviceDuration(orders.getServiceDuration()).addressId(orders.getAddressId()).serviceOnePrice(orders.getServiceOnePrice()).orderStatus(0).serviceType(orders.getServiceType()).serviceSubject(orders.getServiceSubject()).build();
         secondOrder.setRemark(orders.getRemark());
         List<SecondOrder> secondOrderList = new ArrayList<>();
+        //添加平台
+        //创建平台流水模板
+        PlatformFinance platformFinance =  PlatformFinance.builder().changeMoney(orders.getServiceOnePrice()).changeType(1).moneyType(1)
+                .sourceType(1).volunteerId(orders.getVolunteerId()).build();
+        platformFinance.setCreateTime(DateTimeUtil.getNowTime());
+        List<PlatformFinance> platformFinanceList = new ArrayList<>();
         //修改志愿者预约时间表以及新增志愿者预约时间
         long number = 1;
+
         for (VolunteerWorkDate workDate : workDateList) {
-            secondOrder.setWorkDate(workDate.getWorkDate());
-            secondOrder.setWorkNumber(number);
-            secondOrderList.add(secondOrder);
+            //向secondOrder中添加数据
+            long secondOrderIdL = snowflake.nextId();
+            SecondOrder secondOrder1 = new SecondOrder();
+            BeanUtils.copyProperties(secondOrder,secondOrder1);
+            secondOrder1.setWorkDate(workDate.getWorkDate());
+            secondOrder1.setWorkNumber(number);
+            secondOrder1.setSecondOrderId(String.valueOf(secondOrderIdL));
+            secondOrderList.add(secondOrder1);
+            //向平台流水中添加数据
+            platformFinance.setSecondOrderId(String.valueOf(secondOrderIdL));
+            platformFinanceList.add(platformFinance);
+            //向志愿者预约时间表中添加数据
             reservationTime.setReservationDate(workDate.getWorkDate());
             reservationTimes.add(reservationTime);
             number++;
         }
+        //新增公司资金流水表N个
+        platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);
+        //新增志愿者订单小表N个
         secondOrdersMapper.insertList(secondOrderList);
+        //新增志愿者预约时间表
         volunteerReservationTimeService.insertVolunteerReservationTimeList(reservationTimes);
         //修改志愿者排班日期表
         workDateService.updateVolunteerWorkDate(workDateList);
+
     }
 
 

+ 69 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java

@@ -1,19 +1,40 @@
 package com.leromro.core.service.impl;
 
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.leromro.common.core.domain.AjaxResult;
+import com.leromro.common.utils.DateUtils;
+import com.leromro.core.domain.MainOrders;
+import com.leromro.core.domain.OrderFrozenFunds;
 import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.VolunteerAccount;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
+import com.leromro.core.mapper.MainOrdersMapper;
+import com.leromro.core.mapper.OrderFrozenFundsMapper;
 import com.leromro.core.mapper.SecondOrdersMapper;
+import com.leromro.core.mapper.VolunteerAccountMapper;
 import com.leromro.core.service.ISecondOrderService;
+import com.leromro.core.utils.DateTimeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 @Service
 public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, SecondOrder> implements ISecondOrderService {
     @Autowired
     private SecondOrdersMapper secondOrdersMapper;
+    @Autowired
+    private OrderFrozenFundsMapper orderFrozenFundsMapper;
+    @Autowired
+    private VolunteerAccountMapper volunteerAccountMapper;
+    @Autowired
+    private MainOrdersMapper mainOrdersMapper;
+
     /**
      * @param orderStatus
      * @return
@@ -22,4 +43,52 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
     public List<VolunteerOrdersVO> selectOrderList(Long userId,Long orderStatus) {
         return secondOrdersMapper.selectVolunteerOrder( userId,orderStatus);
     }
+
+    /**
+     * @return
+     */
+    @Override
+    public AjaxResult volunteerFinishWork(SecondOrder secondOrder) {
+
+        String secondOrderId = secondOrder.getSecondOrderId();
+        QueryWrapper<SecondOrder> SecondOrderWrapper = new QueryWrapper<SecondOrder>().eq("second_order_id", secondOrderId);
+        SecondOrder secondOrderInfo = secondOrdersMapper.selectList(SecondOrderWrapper).get(0);
+       // SecondOrder secondOrderInfo = secondOrdersMapper.selectById(secondOrderId);
+        BigDecimal onePrice = secondOrderInfo.getServiceOnePrice();
+        //默认平台佣金以及志愿者到手钱数
+        BigDecimal volunteerMoney = onePrice.multiply(new BigDecimal("0.70"));
+        BigDecimal platformBrokerage = onePrice.subtract(volunteerMoney);
+        //计算结束冻结时间 默认开始时间+7天
+        DateTime frozenStartTime = DateTimeUtil.getNowTime1();
+        Date frozenEndTime = DateUtils.addDays(frozenStartTime, 7);
+        OrderFrozenFunds orderFrozenFunds = OrderFrozenFunds.builder().volunteerMoney(volunteerMoney)
+                .platformBrokerage(platformBrokerage).scoreMoney(BigDecimal.valueOf(0.00)).secondOrderMoney(onePrice)
+                .status(0).secondOrderId(secondOrder.getSecondOrderId()).volunteerId(secondOrder.getVolunteerId())
+                .frozenStartTime(frozenStartTime).frozenEndTime(frozenEndTime).build();
+        //插入冻结资金表
+        orderFrozenFundsMapper.insert(orderFrozenFunds);
+        //更新secondOrder 表
+        UpdateWrapper<SecondOrder> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("second_order_id",secondOrder.getSecondOrderId()).eq("order_status",4)
+                .set("service_log",secondOrder.getServiceLog());
+        secondOrdersMapper.update(null,updateWrapper);
+        //更新志愿者账户中的冻结资金 =  之前的余额 + 志愿者 (先按照默认的比例,把默认的钱数,放入冻结资金表中)
+        QueryWrapper<VolunteerAccount> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("volunteer_id",secondOrder.getVolunteerId());
+        VolunteerAccount volunteerAccount = volunteerAccountMapper.selectOne(queryWrapper);
+        BigDecimal oldOrderFrozenBalance = volunteerAccount.getOrderFrozenBalance();
+        BigDecimal newVolunteerFrozenBalance = oldOrderFrozenBalance.add(volunteerMoney);
+        volunteerAccount.setOrderFrozenBalance(newVolunteerFrozenBalance);
+        volunteerAccount.setUpdateTime(DateTimeUtil.getNowTime());
+        volunteerAccountMapper.updateById(volunteerAccount);
+        //判断是否完单
+        String mainOrderId = secondOrderInfo.getMainOrderId();
+        QueryWrapper<MainOrders> mainOrdersQueryWrapper = new QueryWrapper<MainOrders>().eq("main_order_id", mainOrderId);
+        Long totalTimes = mainOrdersMapper.selectList(mainOrdersQueryWrapper).get(0).getTotalTimes();
+        UpdateWrapper<MainOrders> mainOrdersUpdateWrapper = new UpdateWrapper<MainOrders>().eq("main_order_id", mainOrderId).set("order_status", 4);
+        if (secondOrderInfo.getWorkNumber().equals(totalTimes)){
+            mainOrdersMapper.update(null,mainOrdersUpdateWrapper);
+        }
+        return AjaxResult.success();
+    }
 }

+ 21 - 0
leromro-core/src/main/java/com/leromro/core/utils/DateTimeUtil.java

@@ -1,8 +1,11 @@
 package com.leromro.core.utils;
 
+import cn.hutool.core.date.DateTime;
+
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.Date;
+import java.util.TimeZone;
 
 public class DateTimeUtil {
     
@@ -24,6 +27,7 @@ public class DateTimeUtil {
         );
     }
 
+
     /**
      * 可选:获取指定时区的当前时间 Date 对象(例如 Asia/Shanghai)
      * @param zoneId 时区ID,例如 "Asia/Shanghai"
@@ -36,4 +40,21 @@ public class DateTimeUtil {
                 .toInstant()
         );
     }
+
+    public static DateTime getNowTime1() {
+        // Hutool 的 DateTime 默认使用系统时区
+        return DateTime.now();
+    }
+
+    /**
+     * 获取指定时区的当前时间 DateTime 对象(例如 Asia/Shanghai)
+     * @param zoneId 时区ID,例如 "Asia/Shanghai"
+     * @return 指定时区的 DateTime 对象
+     */
+    public static DateTime getNowTime1(String zoneId) {
+        // 使用时区ID创建 TimeZone 对象
+        TimeZone timeZone = TimeZone.getTimeZone(zoneId);
+        // 指定时区获取当前时间
+        return DateTime.now();
+    }
 }

+ 1 - 1
leromro-core/src/main/resources/mapper/core/ClientAccountMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.leromro.core.mapper.ClientAccountMapper">
-    <update id="updateClientBalance">
+     <update id="updateClientBalance">
         update l_client_account
         <trim prefix="SET" suffixOverrides=",">
             <if test="balance != null">balance = #{balance},</if>

+ 79 - 29
leromro-core/src/main/resources/mapper/core/PlatformFinanceMapper.xml

@@ -1,46 +1,59 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.leromro.core.mapper.PlatformFinanceMapper">
-    
+
     <resultMap type="PlatformFinance" id="PlatformFinanceResult">
-        <result property="platformFinanceId"    column="platform_finance_id"    />
-        <result property="changeMoney"    column="change_money"    />
-        <result property="changeType"    column="change_type"    />
-        <result property="moneyType"    column="money_type"    />
-        <result property="sourceType"    column="source_type"    />
-        <result property="secondOrderId"    column="second_order_id"    />
-        <result property="volunteerId"    column="volunteer_id"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="remark"    column="remark"    />
+        <result property="platformFinanceId" column="platform_finance_id"/>
+        <result property="changeMoney" column="change_money"/>
+        <result property="changeType" column="change_type"/>
+        <result property="moneyType" column="money_type"/>
+        <result property="sourceType" column="source_type"/>
+        <result property="secondOrderId" column="second_order_id"/>
+        <result property="volunteerId" column="volunteer_id"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
     </resultMap>
 
     <sql id="selectPlatformFinanceVo">
-        select platform_finance_id, change_money, change_type, money_type, source_type, second_order_id, volunteer_id, create_by, create_time, update_by, update_time, remark from l_platform_finance
+        select platform_finance_id,
+               change_money,
+               change_type,
+               money_type,
+               source_type,
+               second_order_id,
+               volunteer_id,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from l_platform_finance
     </sql>
 
     <select id="selectPlatformFinanceList" parameterType="PlatformFinance" resultMap="PlatformFinanceResult">
         <include refid="selectPlatformFinanceVo"/>
-        <where>  
-            <if test="changeMoney != null "> and change_money = #{changeMoney}</if>
-            <if test="changeType != null "> and change_type = #{changeType}</if>
-            <if test="moneyType != null "> and money_type = #{moneyType}</if>
-            <if test="sourceType != null "> and source_type = #{sourceType}</if>
-            <if test="secondOrderId != null "> and second_order_id = #{secondOrderId}</if>
-            <if test="volunteerId != null "> and volunteer_id = #{volunteerId}</if>
+        <where>
+            <if test="changeMoney != null ">and change_money = #{changeMoney}</if>
+            <if test="changeType != null ">and change_type = #{changeType}</if>
+            <if test="moneyType != null ">and money_type = #{moneyType}</if>
+            <if test="sourceType != null ">and source_type = #{sourceType}</if>
+            <if test="secondOrderId != null ">and second_order_id = #{secondOrderId}</if>
+            <if test="volunteerId != null ">and volunteer_id = #{volunteerId}</if>
         </where>
     </select>
-    
+
     <select id="selectPlatformFinanceByPlatformFinanceId" parameterType="Long" resultMap="PlatformFinanceResult">
         <include refid="selectPlatformFinanceVo"/>
         where platform_finance_id = #{platformFinanceId}
     </select>
 
-    <insert id="insertPlatformFinance" parameterType="PlatformFinance" useGeneratedKeys="true" keyProperty="platformFinanceId">
+    <insert id="insertPlatformFinance" parameterType="PlatformFinance" useGeneratedKeys="true"
+            keyProperty="platformFinanceId">
         insert into l_platform_finance
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="changeMoney != null">change_money,</if>
@@ -54,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="remark != null">remark,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="changeMoney != null">#{changeMoney},</if>
             <if test="changeType != null">#{changeType},</if>
@@ -67,9 +80,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="remark != null">#{remark},</if>
-         </trim>
+        </trim>
+    </insert>
+    <insert id="insertPlatformFinanceList"
+            parameterType="java.util.List">
+        INSERT INTO l_platform_finance (
+        change_money,
+        change_type,
+        money_type,
+        source_type,
+        second_order_id,
+        volunteer_id,
+        create_time,
+        create_by,
+        update_time,
+        update_by,
+        remark
+        )
+        VALUES
+        <foreach collection="list" item="platformFinanceList" separator=",">
+            <if test="platformFinanceList != null">
+                (
+                #{platformFinanceList.changeMoney},
+                #{platformFinanceList.changeType},
+                #{platformFinanceList.moneyType},
+                #{platformFinanceList.sourceType},
+                #{platformFinanceList.secondOrderId},
+                #{platformFinanceList.volunteerId},
+                #{platformFinanceList.createTime},
+                #{platformFinanceList.createBy},
+                #{platformFinanceList.updateTime},
+                #{platformFinanceList.updateBy},
+                #{platformFinanceList.remark}
+                )
+            </if>
+        </foreach>
     </insert>
 
+
     <update id="updatePlatformFinance" parameterType="PlatformFinance">
         update l_platform_finance
         <trim prefix="SET" suffixOverrides=",">
@@ -89,11 +137,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <delete id="deletePlatformFinanceByPlatformFinanceId" parameterType="Long">
-        delete from l_platform_finance where platform_finance_id = #{platformFinanceId}
+        delete
+        from l_platform_finance
+        where platform_finance_id = #{platformFinanceId}
     </delete>
 
     <delete id="deletePlatformFinanceByPlatformFinanceIds" parameterType="String">
-        delete from l_platform_finance where platform_finance_id in 
+        delete from l_platform_finance where platform_finance_id in
         <foreach item="platformFinanceId" collection="array" open="(" separator="," close=")">
             #{platformFinanceId}
         </foreach>

+ 171 - 168
leromro-core/src/main/resources/mapper/core/SecondOrdersMapper.xml

@@ -3,180 +3,183 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.leromro.core.mapper.SecondOrdersMapper">
-    
-  <!--  <resultMap type="LVolunteerOrder" id="LVolunteerOrderResult">
-        <result property="id"    column="id"    />
-        <result property="orderId"    column="order_id"    />
-        <result property="volunteerId"    column="volunteer_id"    />
-        <result property="serviceCategory"    column="service_category"    />
-        <result property="serviceType"    column="service_type"    />
-        <result property="serviceSubject"    column="service_subject"    />
-        <result property="workDate"    column="work_date"    />
-        <result property="workStartTime"    column="work_start_time"    />
-        <result property="workEndTime"    column="work_end_time"    />
-        <result property="workNumber"    column="work_number"    />
-        <result property="hours"    column="hours"    />
-        <result property="addressId"    column="address_id"    />
-        <result property="score"    column="score"    />
-        <result property="remark"    column="remark"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="remake"    column="remake"    />
-    </resultMap>
+    <insert id="insertList" parameterType="java.util.List">
+        INSERT INTO l_second_order (
+        second_order_id,
+        main_order_id,
+        volunteer_id,
+        service_category,
+        service_type,
+        service_subject,
+        service_one_price,
+        work_start_time,
+        work_number,
+        service_duration,
+        address_id,
+        work_date,
+        create_time,
+        create_by,
+        update_time,
+        update_by,
+        order_status,
+        remark
+        ) VALUES
+        <foreach collection="list" item="secondOrder" separator=",">
+            <if test="secondOrder != null">
+                (
+                #{secondOrder.secondOrderId},
+                 #{secondOrder.mainOrderId},
+                #{secondOrder.volunteerId},
+                #{secondOrder.serviceCategory},
+                #{secondOrder.serviceType},
+                #{secondOrder.serviceSubject},
+                #{secondOrder.serviceOnePrice},
+                #{secondOrder.workStartTime},
+                #{secondOrder.workNumber},
+                #{secondOrder.serviceDuration},
+                #{secondOrder.addressId},
+                #{secondOrder.workDate},
+                #{secondOrder.createTime},
+                #{secondOrder.createBy},
+                #{secondOrder.updateTime},
+                #{secondOrder.updateBy},
+                #{secondOrder.orderStatus},
+                #{secondOrder.remark}
+                )
+            </if>
+        </foreach>
+    </insert>
 
-    <sql id="selectLVolunteerOrderVo">
-        select id, order_id, volunteer_id, service_category, service_type, service_subject, work_date, work_start_time, work_end_time, work_number, hours, address_id, score, remark, create_time, create_by, update_time, update_by, remake from l_volunteer_order
-    </sql>
+    <!--  <resultMap type="LVolunteerOrder" id="LVolunteerOrderResult">
+          <result property="id"    column="id"    />
+          <result property="orderId"    column="order_id"    />
+          <result property="volunteerId"    column="volunteer_id"    />
+          <result property="serviceCategory"    column="service_category"    />
+          <result property="serviceType"    column="service_type"    />
+          <result property="serviceSubject"    column="service_subject"    />
+          <result property="workDate"    column="work_date"    />
+          <result property="workStartTime"    column="work_start_time"    />
+          <result property="workEndTime"    column="work_end_time"    />
+          <result property="workNumber"    column="work_number"    />
+          <result property="hours"    column="hours"    />
+          <result property="addressId"    column="address_id"    />
+          <result property="score"    column="score"    />
+          <result property="remark"    column="remark"    />
+          <result property="createTime"    column="create_time"    />
+          <result property="createBy"    column="create_by"    />
+          <result property="updateTime"    column="update_time"    />
+          <result property="updateBy"    column="update_by"    />
+          <result property="remake"    column="remake"    />
+      </resultMap>
 
-    <select id="selectLVolunteerOrderList" parameterType="LVolunteerOrder" resultMap="LVolunteerOrderResult">
-        <include refid="selectLVolunteerOrderVo"/>
-        <where>  
-            <if test="orderId != null  and orderId != ''"> and order_id = #{orderId}</if>
-            <if test="volunteerId != null "> and volunteer_id = #{volunteerId}</if>
-            <if test="serviceCategory != null "> and service_category = #{serviceCategory}</if>
-            <if test="serviceType != null "> and service_type = #{serviceType}</if>
-            <if test="serviceSubject != null "> and service_subject = #{serviceSubject}</if>
-            <if test="workDate != null "> and work_date = #{workDate}</if>
-            <if test="workStartTime != null "> and work_start_time = #{workStartTime}</if>
-            <if test="workEndTime != null "> and work_end_time = #{workEndTime}</if>
-            <if test="workNumber != null "> and work_number = #{workNumber}</if>
-            <if test="hours != null "> and hours = #{hours}</if>
-            <if test="addressId != null "> and address_id = #{addressId}</if>
-            <if test="score != null "> and score = #{score}</if>
-            <if test="remake != null  and remake != ''"> and remake = #{remake}</if>
-        </where>
-    </select>
-    
-    <select id="selectLVolunteerOrderById" parameterType="Long" resultMap="LVolunteerOrderResult">
-        <include refid="selectLVolunteerOrderVo"/>
-        where id = #{id}
-    </select>
+      <sql id="selectLVolunteerOrderVo">
+          select id, order_id, volunteer_id, service_category, service_type, service_subject, work_date, work_start_time, work_end_time, work_number, hours, address_id, score, remark, create_time, create_by, update_time, update_by, remake from l_volunteer_order
+      </sql>
 
-    <insert id="insertLVolunteerOrder" parameterType="LVolunteerOrder" useGeneratedKeys="true" keyProperty="id">
-        insert into l_volunteer_order
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="orderId != null">order_id,</if>
-            <if test="volunteerId != null">volunteer_id,</if>
-            <if test="serviceCategory != null">service_category,</if>
-            <if test="serviceType != null">service_type,</if>
-            <if test="serviceSubject != null">service_subject,</if>
-            <if test="workDate != null">work_date,</if>
-            <if test="workStartTime != null">work_start_time,</if>
-            <if test="workEndTime != null">work_end_time,</if>
-            <if test="workNumber != null">work_number,</if>
-            <if test="hours != null">hours,</if>
-            <if test="addressId != null">address_id,</if>
-            <if test="score != null">score,</if>
-            <if test="remark != null">remark,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="remake != null">remake,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="orderId != null">#{orderId},</if>
-            <if test="volunteerId != null">#{volunteerId},</if>
-            <if test="serviceCategory != null">#{serviceCategory},</if>
-            <if test="serviceType != null">#{serviceType},</if>
-            <if test="serviceSubject != null">#{serviceSubject},</if>
-            <if test="workDate != null">#{workDate},</if>
-            <if test="workStartTime != null">#{workStartTime},</if>
-            <if test="workEndTime != null">#{workEndTime},</if>
-            <if test="workNumber != null">#{workNumber},</if>
-            <if test="hours != null">#{hours},</if>
-            <if test="addressId != null">#{addressId},</if>
-            <if test="score != null">#{score},</if>
-            <if test="remark != null">#{remark},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="remake != null">#{remake},</if>
-         </trim>
-    </insert>
+      <select id="selectLVolunteerOrderList" parameterType="LVolunteerOrder" resultMap="LVolunteerOrderResult">
+          <include refid="selectLVolunteerOrderVo"/>
+          <where>
+              <if test="orderId != null  and orderId != ''"> and order_id = #{orderId}</if>
+              <if test="volunteerId != null "> and volunteer_id = #{volunteerId}</if>
+              <if test="serviceCategory != null "> and service_category = #{serviceCategory}</if>
+              <if test="serviceType != null "> and service_type = #{serviceType}</if>
+              <if test="serviceSubject != null "> and service_subject = #{serviceSubject}</if>
+              <if test="workDate != null "> and work_date = #{workDate}</if>
+              <if test="workStartTime != null "> and work_start_time = #{workStartTime}</if>
+              <if test="workEndTime != null "> and work_end_time = #{workEndTime}</if>
+              <if test="workNumber != null "> and work_number = #{workNumber}</if>
+              <if test="hours != null "> and hours = #{hours}</if>
+              <if test="addressId != null "> and address_id = #{addressId}</if>
+              <if test="score != null "> and score = #{score}</if>
+              <if test="remake != null  and remake != ''"> and remake = #{remake}</if>
+          </where>
+      </select>
 
-    <update id="updateLVolunteerOrder" parameterType="LVolunteerOrder">
-        update l_volunteer_order
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="orderId != null">order_id = #{orderId},</if>
-            <if test="volunteerId != null">volunteer_id = #{volunteerId},</if>
-            <if test="serviceCategory != null">service_category = #{serviceCategory},</if>
-            <if test="serviceType != null">service_type = #{serviceType},</if>
-            <if test="serviceSubject != null">service_subject = #{serviceSubject},</if>
-            <if test="workDate != null">work_date = #{workDate},</if>
-            <if test="workStartTime != null">work_start_time = #{workStartTime},</if>
-            <if test="workEndTime != null">work_end_time = #{workEndTime},</if>
-            <if test="workNumber != null">work_number = #{workNumber},</if>
-            <if test="hours != null">hours = #{hours},</if>
-            <if test="addressId != null">address_id = #{addressId},</if>
-            <if test="score != null">score = #{score},</if>
-            <if test="remark != null">remark = #{remark},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="remake != null">remake = #{remake},</if>
-        </trim>
-        where id = #{id}
-    </update>
+      <select id="selectLVolunteerOrderById" parameterType="Long" resultMap="LVolunteerOrderResult">
+          <include refid="selectLVolunteerOrderVo"/>
+          where id = #{id}
+      </select>
 
-    <delete id="deleteLVolunteerOrderById" parameterType="Long">
-        delete from l_volunteer_order where id = #{id}
-    </delete>
+      <insert id="insertLVolunteerOrder" parameterType="LVolunteerOrder" useGeneratedKeys="true" keyProperty="id">
+          insert into l_volunteer_order
+          <trim prefix="(" suffix=")" suffixOverrides=",">
+              <if test="orderId != null">order_id,</if>
+              <if test="volunteerId != null">volunteer_id,</if>
+              <if test="serviceCategory != null">service_category,</if>
+              <if test="serviceType != null">service_type,</if>
+              <if test="serviceSubject != null">service_subject,</if>
+              <if test="workDate != null">work_date,</if>
+              <if test="workStartTime != null">work_start_time,</if>
+              <if test="workEndTime != null">work_end_time,</if>
+              <if test="workNumber != null">work_number,</if>
+              <if test="hours != null">hours,</if>
+              <if test="addressId != null">address_id,</if>
+              <if test="score != null">score,</if>
+              <if test="remark != null">remark,</if>
+              <if test="createTime != null">create_time,</if>
+              <if test="createBy != null">create_by,</if>
+              <if test="updateTime != null">update_time,</if>
+              <if test="updateBy != null">update_by,</if>
+              <if test="remake != null">remake,</if>
+           </trim>
+          <trim prefix="values (" suffix=")" suffixOverrides=",">
+              <if test="orderId != null">#{orderId},</if>
+              <if test="volunteerId != null">#{volunteerId},</if>
+              <if test="serviceCategory != null">#{serviceCategory},</if>
+              <if test="serviceType != null">#{serviceType},</if>
+              <if test="serviceSubject != null">#{serviceSubject},</if>
+              <if test="workDate != null">#{workDate},</if>
+              <if test="workStartTime != null">#{workStartTime},</if>
+              <if test="workEndTime != null">#{workEndTime},</if>
+              <if test="workNumber != null">#{workNumber},</if>
+              <if test="hours != null">#{hours},</if>
+              <if test="addressId != null">#{addressId},</if>
+              <if test="score != null">#{score},</if>
+              <if test="remark != null">#{remark},</if>
+              <if test="createTime != null">#{createTime},</if>
+              <if test="createBy != null">#{createBy},</if>
+              <if test="updateTime != null">#{updateTime},</if>
+              <if test="updateBy != null">#{updateBy},</if>
+              <if test="remake != null">#{remake},</if>
+           </trim>
+      </insert>
+
+      <update id="updateLVolunteerOrder" parameterType="LVolunteerOrder">
+          update l_volunteer_order
+          <trim prefix="SET" suffixOverrides=",">
+              <if test="orderId != null">order_id = #{orderId},</if>
+              <if test="volunteerId != null">volunteer_id = #{volunteerId},</if>
+              <if test="serviceCategory != null">service_category = #{serviceCategory},</if>
+              <if test="serviceType != null">service_type = #{serviceType},</if>
+              <if test="serviceSubject != null">service_subject = #{serviceSubject},</if>
+              <if test="workDate != null">work_date = #{workDate},</if>
+              <if test="workStartTime != null">work_start_time = #{workStartTime},</if>
+              <if test="workEndTime != null">work_end_time = #{workEndTime},</if>
+              <if test="workNumber != null">work_number = #{workNumber},</if>
+              <if test="hours != null">hours = #{hours},</if>
+              <if test="addressId != null">address_id = #{addressId},</if>
+              <if test="score != null">score = #{score},</if>
+              <if test="remark != null">remark = #{remark},</if>
+              <if test="createTime != null">create_time = #{createTime},</if>
+              <if test="createBy != null">create_by = #{createBy},</if>
+              <if test="updateTime != null">update_time = #{updateTime},</if>
+              <if test="updateBy != null">update_by = #{updateBy},</if>
+              <if test="remake != null">remake = #{remake},</if>
+          </trim>
+          where id = #{id}
+      </update>
+
+      <delete id="deleteLVolunteerOrderById" parameterType="Long">
+          delete from l_volunteer_order where id = #{id}
+      </delete>
+
+      <delete id="deleteLVolunteerOrderByIds" parameterType="String">
+          delete from l_volunteer_order where id in
+          <foreach item="id" collection="array" open="(" separator="," close=")">
+              #{id}
+          </foreach>
+      </delete>-->
 
-    <delete id="deleteLVolunteerOrderByIds" parameterType="String">
-        delete from l_volunteer_order where id in 
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>-->
-  <insert id="insertList" parameterType="java.util.List">
-      INSERT INTO l_second_order (
-      second_order_id,
-      volunteer_id,
-      service_category,
-      service_type,
-      service_subject,
-      service_one_price,
-      work_start_time,
-      work_number,
-      service_duration,
-      address_id,
-      work_date,
-      create_time,
-      create_by,
-      update_time,
-      update_by,
-      order_status,
-      remark
-      ) VALUES
-      <foreach collection="list" item="secondOrder" separator=",">
-          <if test="secondOrder != null">
-              (
-              #{secondOrder.secondOrderId},
-              #{secondOrder.volunteerId},
-              #{secondOrder.serviceCategory},
-              #{secondOrder.serviceType},
-              #{secondOrder.serviceSubject},
-              #{secondOrder.serviceOnePrice},
-              #{secondOrder.workStartTime},
-              #{secondOrder.workNumber},
-              #{secondOrder.serviceDuration},
-              #{secondOrder.addressId},
-              #{secondOrder.workDate},
-              #{secondOrder.createTime},
-              #{secondOrder.createBy},
-              #{secondOrder.updateTime},
-              #{secondOrder.updateBy},
-              #{secondOrder.orderStatus},
-              #{secondOrder.remark}
-              )
-          </if>
-      </foreach>
-  </insert>
     <select id="selectVolunteerOrder" resultType="com.leromro.core.domain.vo.VolunteerOrdersVO">
         select lso.second_order_id secondOrderId ,lso.order_status as orderStatus,lso.service_one_price as serviceOnePrice,la.user_id,
         la.address as address ,la.name as name,(select avatar from sys_user su where su.user_id = la.user_id ) as avatar