Преглед на файлове

修改了地址接口以及定时任务bug

LiRong преди 4 седмици
родител
ревизия
4e93bd7742

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

@@ -40,7 +40,7 @@ public class OrderRefundController extends BaseController
     /**
      * 查询订单取消/退款列表
      */
-    @ApiOperation("查询订单取消/退款列表")
+    @ApiOperation("查询 订单取消/退款列表")
     /*@PreAuthorize("@ss.hasPermi('core:refund:list')")*/
     @GetMapping("/list")
     public TableDataInfo<OrderRefund> list(OrderRefund orderRefund)
@@ -68,7 +68,7 @@ public class OrderRefundController extends BaseController
     /**
      * 获取订单取消/退款详细信息
      */
-    @ApiOperation("获取订单取消/退款详细信息")
+    @ApiOperation("获取 订单取消/退款详细信息")
     /*@PreAuthorize("@ss.hasPermi('core:refund:query')")*/
     @GetMapping(value = "/refundInfo/{orderRefundId}")
     public R<OrderRefund> getInfo(@PathVariable("orderRefundId") Long orderRefundId)

+ 1 - 1
leromro-core/src/main/java/com/leromro/core/controller/OrdersController.java

@@ -127,8 +127,8 @@ public class OrdersController extends BaseController {
     @ApiOperation(value = "用户评价小订单",notes = "传入对象参数 包含: seconderId, score, userReview, userPicture")
     @PostMapping("/userFinishOrder")
     public AjaxResult userFinish (@RequestBody UserOrderReviewDTO reviewDTO) {
-        secondOrderService.userFinish(reviewDTO);
 
+        secondOrderService.userFinish(reviewDTO);
         return AjaxResult.success();
     }
 

+ 11 - 6
leromro-core/src/main/java/com/leromro/core/controller/volunteerOrderController.java

@@ -7,20 +7,19 @@ import com.leromro.common.core.controller.BaseController;
 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.Address;
 import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.vo.SecondOrderInfoVO;
 import com.leromro.core.domain.vo.VolunteerOrderStatisticsVO;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
+import com.leromro.core.service.IAddressService;
 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.*;
-
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * 订单主Controller
@@ -34,6 +33,8 @@ import java.util.stream.Collectors;
 public class volunteerOrderController extends BaseController {
     @Autowired
     private ISecondOrderService secondOrderService;
+    @Autowired
+    private IAddressService addressService;
     @ApiOperation("志愿者查询小订单列表")
     @GetMapping("/volunteerOrderList")
     public R<List<VolunteerOrdersVO>> selectVolunteerList(Long orderStatus) {
@@ -45,10 +46,14 @@ public class volunteerOrderController extends BaseController {
 
     @ApiOperation("志愿者订单详情,(收货地址和状态)")
     @GetMapping("/volunteerOrderInfo")
-    public R<SecondOrder> selectVolunteerOrderInfo(String orderId) {
+    public R<SecondOrderInfoVO> selectVolunteerOrderInfo(String orderId) {
         QueryWrapper<SecondOrder> wrapper = new QueryWrapper<SecondOrder>().eq("second_order_id", orderId);
         SecondOrder secondOrderInfo = secondOrderService.list(wrapper).get(0);
-        return R.ok(secondOrderInfo);
+        Address address = addressService.selectAddressInfoBySeconderId(orderId);
+        SecondOrderInfoVO secondOrderInfoVO = new SecondOrderInfoVO();
+        secondOrderInfoVO.setSecondOrder(secondOrderInfo);
+        secondOrderInfoVO.setAddress(address);
+        return R.ok(secondOrderInfoVO);
     }
 
     @ApiOperation(value = "志愿者滑动,开始订单", notes = "目前只传secondOrderId(第二版再根据地址判断)")

+ 14 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/SecondOrderInfoVO.java

@@ -0,0 +1,14 @@
+package com.leromro.core.domain.vo;
+
+import com.leromro.core.domain.Address;
+import com.leromro.core.domain.SecondOrder;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SecondOrderInfoVO {
+    private Address address;
+    private SecondOrder secondOrder;
+}

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

@@ -61,4 +61,6 @@ public interface AddressMapper extends BaseMapper<Address>
     public int deleteAddressByAddressIds(Long[] addressIds);
 
     void updateDefaultAddress(Address address);
+
+    Address selectAddressBySeconderId(String orderId);
 }

+ 2 - 0
leromro-core/src/main/java/com/leromro/core/service/IAddressService.java

@@ -65,4 +65,6 @@ public interface IAddressService extends IService<Address>
     AjaxResult setDefaultAddress(Address address);
 
     R<Address> selectDefalutAddress();
+
+    Address selectAddressInfoBySeconderId(String orderId);
 }

+ 9 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/AddressServiceImpl.java

@@ -127,4 +127,13 @@ public class AddressServiceImpl extends ServiceImpl<AddressMapper, Address> impl
         Address address = addressMapper.selectOne(defalutAddressQueryWrapper);
         return R.ok(address);
     }
+
+    /**
+     * @param orderId
+     * @return
+     */
+    @Override
+    public Address selectAddressInfoBySeconderId(String orderId) {
+        return addressMapper.selectAddressBySeconderId(orderId);
+    }
 }

+ 9 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/OrderRefundServiceImpl.java

@@ -78,6 +78,15 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     public Boolean insertLOrderRefund(OrderRefund orderRefund)
     {
         //如果订单,一次都没完成,那就直接不用审批,直接退。
+        String mainOrderId = orderRefund.getMainOrderId();
+
+        //修改,用户账户表
+        //修改,用主订单表
+        //修改,小订单表
+        //平台资金流水表
+        //志愿者预约时间表
+        //志愿者排版日期表
+
         orderRefund.setStatus(0);
         return this.save(orderRefund);
     }

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

@@ -6,6 +6,7 @@ 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.common.utils.SecurityUtils;
 import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.OrderFrozenFunds;
 import com.leromro.core.domain.SecondOrder;
@@ -105,6 +106,7 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
     @Override
     public void userFinish(UserOrderReviewDTO reviewDTO) {
         //根据用户传来的评分 来设置需要计算的钱数
+        //获取一次服务的钱数(!!   这一版先不改钱数的获取方式   !!)
         BigDecimal serviceOnePrice = reviewDTO.getServiceOnePrice();
         BigDecimal volunteerMoney = serviceOnePrice.multiply(new BigDecimal("0.85"));
         BigDecimal scoreMoney = BigDecimal.valueOf(0);
@@ -135,6 +137,9 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         //修改冻结表:
         UpdateWrapper<OrderFrozenFunds> orderFrozenFundsUpdateWrapper = new UpdateWrapper<OrderFrozenFunds>().eq("second_order_id", reviewDTO.getSecondOrderId()).set("platform_brokerage", platformBrokerage).set("score_money", scoreMoney).set("update_time", DateTimeUtil.getNowTime());
         orderFrozenFundsMapper.update(null,orderFrozenFundsUpdateWrapper);
+        //修改志愿者账户表,向其中添加内容
+        UpdateWrapper<VolunteerAccount> volunteerAccountUpdateWrapper = new UpdateWrapper<VolunteerAccount>().eq("volunteer_id", reviewDTO.getVolunteerId()).setSql("order_frozen_balance = order_frozen_balance + " + scoreMoney);
+        volunteerAccountMapper.update(null,volunteerAccountUpdateWrapper);
         //更改订单状态:
         UpdateWrapper<SecondOrder> updateWrapper = new UpdateWrapper<SecondOrder>().eq("second_order_id", reviewDTO.getSecondOrderId())
                 .set("score",score).set("user_review",reviewDTO.getUserReview()).set("user_picture",reviewDTO.getUserPicture());

+ 22 - 20
leromro-core/src/main/java/com/leromro/core/ttl/Monitor.java

@@ -43,17 +43,10 @@ public class Monitor  {
         List<Long> orderFrozenFundsIdList = needThawMoneyList.stream().map(OrderFrozenFunds::getOrderFrozenFundsId).collect(Collectors.toList());
         List<String> seconderOrderIdList = needThawMoneyList.stream().map(OrderFrozenFunds::getSecondOrderId).collect(Collectors.toList());
 
-        /*List<BigDecimal> volunteerMoneyList = needThawMoneyList.stream().map(OrderFrozenFunds::getVolunteerMoney).collect(Collectors.toList());
-        List<BigDecimal> platformBrokerageList = needThawMoneyList.stream().map(OrderFrozenFunds::getPlatformBrokerage).collect(Collectors.toList());
-        List<BigDecimal> scoreMoneyList = needThawMoneyList.stream().map(OrderFrozenFunds::getScoreMoney).collect(Collectors.toList());*/
-
         // needThawMoneyList.stream().map(OrderFrozenFunds::).collect(Collectors.toList());
         //Map<Long, OrderFrozenFunds> totalMoneyMap = needThawMoneyList.stream().collect(Collectors.toMap(OrderFrozenFunds::getVolunteerId, Function.identity()));
 
-
         //查到旧的志愿者账户表的余额(用来存放志愿者月变更记录)
-       /* QueryWrapper<VolunteerAccount> volunteerAccountQueryWrapper = new QueryWrapper<VolunteerAccount>().in("volunteer_id", volunteerMoneyMap.keySet());
-        List<VolunteerAccount> oldVolunteerAccountList = volunteerAccountMapper.selectList(volunteerAccountQueryWrapper);*/
         //更新表,直接解冻。
         UpdateWrapper<OrderFrozenFunds> updateFrozenWrapper = new UpdateWrapper<OrderFrozenFunds>().in("order_frozen_funds_id", orderFrozenFundsIdList).set("status", 1);
         orderFrozenFundsMapper.update(null,updateFrozenWrapper);
@@ -72,8 +65,7 @@ public class Monitor  {
         for (PlatformFinance platformFinance : sourceTypePlatformList) {
             platformFinance.setRemark("奖金");
         }
-
-        System.out.println("只剩change记录和余额变动了");
+        /*System.out.println("只剩change记录和余额变动了");*/
         // ---------------------------
         //解冻后:
         //判断,如果志愿者有多个订单???????????
@@ -83,16 +75,22 @@ public class Monitor  {
         //生成所有的记录对象
         volunteerAccountChangeGroupByVId.forEach((volunteerId,orderFrozenFunds) -> {
             //查看用户当前的余额
-            BigDecimal oldVolunteerBalance = jdbcTemplate.queryForObject("select balance from l_volunteer_account where volunteer_id = ? FOR UPDATE",
+            BigDecimal oldVolunteerBalance = jdbcTemplate.queryForObject("select balance from l_volunteer_account where volunteer_id = ? ",
                     BigDecimal.class, volunteerId);
             //生成所有的记录
             List<Object[]> volunteerAccountChanges = new ArrayList<>();
-            BigDecimal theBalance = oldVolunteerBalance;
+            BigDecimal beforeChangeBalance = BigDecimal.valueOf(0);
+
             for (OrderFrozenFunds orderFrozenFund : orderFrozenFunds) {
-                BigDecimal volunteerAddMoney = theBalance.add(orderFrozenFund.getVolunteerMoney());
-                volunteerAccountChanges.add(new Object[]{volunteerId,1,1,volunteerAddMoney,orderFrozenFund.getVolunteerMoney(),volunteerAddMoney.add(orderFrozenFund.getVolunteerMoney())
+                volunteerAccountChanges.add(new Object[]{volunteerId,1,1,orderFrozenFund.getVolunteerMoney(),beforeChangeBalance.add(oldVolunteerBalance),orderFrozenFund.getVolunteerMoney().add(beforeChangeBalance).add(oldVolunteerBalance)
                 });
-                theBalance = volunteerAddMoney;
+                beforeChangeBalance = beforeChangeBalance.add(orderFrozenFund.getVolunteerMoney());
+
+                if (orderFrozenFund.getScoreMoney() != null && orderFrozenFund.getScoreMoney().compareTo(BigDecimal.ZERO) != 0){
+                    volunteerAccountChanges.add(new Object[]{volunteerId,1,1,orderFrozenFund.getScoreMoney(),beforeChangeBalance.add(oldVolunteerBalance),orderFrozenFund.getScoreMoney().add(beforeChangeBalance).add(oldVolunteerBalance)
+                    });
+                }
+                beforeChangeBalance = beforeChangeBalance.add(orderFrozenFund.getScoreMoney());
             }
             //批量插入记录
             jdbcTemplate.batchUpdate("insert into l_volunteer_account_change (volunteer_id,change_type,source_type,change_money,before_balance,after_balance) values (?,?,?,?,?,?)" , volunteerAccountChanges);
@@ -100,24 +98,28 @@ public class Monitor  {
 
         //还是获取map<userId,list<解冻数据>>
 
-        //生成所有的记录对象
+/*
+        //生成所有的奖金记录对象
         volunteerAccountChangeGroupByVId.forEach((volunteerId,orderFrozenFunds) -> {
             //查看用户当前的余额
-            BigDecimal oldVolunteerBalance = jdbcTemplate.queryForObject("select balance from l_volunteer_account where volunteer_id = ? FOR UPDATE",
+            BigDecimal oldVolunteerBalance = jdbcTemplate.queryForObject("select balance from l_volunteer_account where volunteer_id = ? ",
                     BigDecimal.class, volunteerId);
             //生成所有的记录
             List<Object[]> volunteerAccountChanges = new ArrayList<>();
-            BigDecimal theBalance = oldVolunteerBalance;
+            BigDecimal beforeChangeBalance = BigDecimal.valueOf(0);
             for (OrderFrozenFunds orderFrozenFund : orderFrozenFunds) {
-                BigDecimal volunteerAddMoney = theBalance.add(orderFrozenFund.getScoreMoney());
-                volunteerAccountChanges.add(new Object[]{volunteerId,1,2,volunteerAddMoney,orderFrozenFund.getScoreMoney(),volunteerAddMoney.add(orderFrozenFund.getScoreMoney())
+                if (orderFrozenFund.getScoreMoney() != null && orderFrozenFund.getScoreMoney().compareTo(BigDecimal.ZERO) != 0){
+                volunteerAccountChanges.add(new Object[]{volunteerId,1,1,orderFrozenFund.getScoreMoney(),beforeChangeBalance.add(oldVolunteerBalance),orderFrozenFund.getScoreMoney().add(beforeChangeBalance).add(oldVolunteerBalance)
                 });
-                theBalance = volunteerAddMoney;
+                }
+                beforeChangeBalance = beforeChangeBalance.add(orderFrozenFund.getScoreMoney());
             }
             //批量插入记录
             jdbcTemplate.batchUpdate("insert into l_volunteer_account_change (volunteer_id,change_type,source_type,change_money,before_balance,after_balance) values (?,?,?,?,?,?)" , volunteerAccountChanges);
         });
+*/
 
+        /* */
 
         //解冻后:
         //获取冻结表中的志愿者id和志愿者总共需要解冻到账户的金额 封装成map集合 有相同的 也直接加起来。

+ 3 - 0
leromro-core/src/main/resources/mapper/core/AddressMapper.xml

@@ -60,6 +60,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectAddressVo"/>
         where address_id = #{addressId}
     </select>
+    <select id="selectAddressBySeconderId" resultType="com.leromro.core.domain.Address">
+        select * from l_address where address_id = (select address_id from l_second_order where second_order_id = #{orderId});
+    </select>
 
     <insert id="insertAddress" parameterType="Address" useGeneratedKeys="true" keyProperty="addressId">
         insert into l_address

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

@@ -131,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
         </where>
     </select>
+
     <select id="webMainOrderList" resultType="com.leromro.core.domain.vo.webMainOrderListVO">
         select *,project_name,project_type_name,service_subject_name,business_tier_name
         from l_main_orders lmo left join l_volunteer_info lvi on lmo.volunteer_info_id = lvi.volunteer_info_id