Pārlūkot izejas kodu

订单取消系列接口完善

LiRong 4 mēneši atpakaļ
vecāks
revīzija
b1bc50cdd6

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

@@ -2,7 +2,9 @@ package com.leromro.core.controller;
 
 import java.util.List;
 
+import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.vo.OrderRefundVO;
+import com.leromro.core.domain.vo.WebOrderRefundVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import com.leromro.common.core.domain.R;
@@ -30,7 +32,7 @@ import com.leromro.common.core.page.TableDataInfo;
  * @date 2025-04-21
  */
 @RestController
-@Api(tags = "订单取消/退款")
+@Api(tags = "订单取消,退款")
 @RequestMapping("/core/users/refund")
 public class OrderRefundController extends BaseController
 {
@@ -40,7 +42,7 @@ public class OrderRefundController extends BaseController
     /**
      * 查询订单取消/退款列表
      */
-    @ApiOperation("查询 订单取消/退款列表")
+    @ApiOperation(value ="查询 ", notes = "订单取消/退款列表")
     /*@PreAuthorize("@ss.hasPermi('core:refund:list')")*/
     @GetMapping("/list")
     public TableDataInfo<OrderRefund> list(OrderRefund orderRefund)
@@ -49,6 +51,13 @@ public class OrderRefundController extends BaseController
         List<OrderRefund> list = lOrderRefundService.selectLOrderRefundList(orderRefund);
         return getDataTable(list);
     }
+    @ApiOperation(value ="web端 退款列表", notes = "传入分页参数")
+    @GetMapping("web/list")
+    public TableDataInfo<WebOrderRefundVO> refundList(MainOrders mainOrders){
+        startPage();;
+        List<WebOrderRefundVO> list = lOrderRefundService.selectWebOrderRefundList(mainOrders);
+        return getDataTable(list);
+    }
 
 
     /**
@@ -68,7 +77,7 @@ public class OrderRefundController extends BaseController
     /**
      * 获取订单取消/退款详细信息
      */
-    @ApiOperation("获取 订单取消/退款详细信息")
+    @ApiOperation(value =" web 获取 订单取消/退款详细信息", notes = "传入路径参数,退款单号id")
     /*@PreAuthorize("@ss.hasPermi('core:refund:query')")*/
     @GetMapping(value = "/refundInfo/{orderRefundId}")
     public R<OrderRefund> getInfo(@PathVariable("orderRefundId") Long orderRefundId)
@@ -79,7 +88,7 @@ public class OrderRefundController extends BaseController
     /**
      * 获取订单取消/退款详细信息
      */
-    @ApiOperation("订单取消/退款信息 回显 ")
+    @ApiOperation(value =" 小程序端 订单取消/退款信息 回显 ", notes = "传入主订单id")
     /*@PreAuthorize("@ss.hasPermi('core:refund:query')")*/
     @GetMapping(value = "/orderInfo/{mainOrderId}")
     public R<OrderRefundVO> getRefundIdInfo(@PathVariable("mainOrderId") Long mainOrderId)
@@ -90,9 +99,9 @@ public class OrderRefundController extends BaseController
     /**
      * 新增订单取消/退款
      */
-    @ApiOperation("新增订单取消/退款")
+    @ApiOperation(value ="小程序端 新增订单取消/退款 传入主订单id,退款图片以及原因")
 /*    @PreAuthorize("@ss.hasPermi('core:refund:add')")*/
-    @Log(title = "订单取消/退款", businessType = BusinessType.INSERT)
+   /* @Log(title = "新增订单取消/退款  ", businessType = BusinessType.INSERT)*/
     @PostMapping("/newOrderRefund")
     public AjaxResult add(@RequestBody OrderRefund orderRefund)
     {
@@ -102,9 +111,9 @@ public class OrderRefundController extends BaseController
     /**
      * 修改订单取消/退款
      */
-    @ApiOperation("修改订单取消/退款")
+    @ApiOperation(value ="修改订单取消/退款", notes = "传入分页参数")
    /* @PreAuthorize("@ss.hasPermi('core:refund:edit')")*/
-    @Log(title = "订单取消/退款", businessType = BusinessType.UPDATE)
+    /*@Log(title = "修改订单取消/退款", businessType = BusinessType.UPDATE)*/
     @PutMapping("/updateRefund")
     public AjaxResult edit(@RequestBody OrderRefund orderRefund)
     {
@@ -114,9 +123,9 @@ public class OrderRefundController extends BaseController
     /**
      * 删除订单取消/退款
      */
-    @ApiOperation("删除订单取消/退款")
+    @ApiOperation( value ="删除订单取消/退款", notes = "传入id数组,批量删除")
    /* @PreAuthorize("@ss.hasPermi('core:refund:remove')")*/
-    @Log(title = "订单取消/退款", businessType = BusinessType.DELETE)
+   /* @Log(title = "删除订单取消/退款", businessType = BusinessType.DELETE)*/
 	@DeleteMapping("/{orderRefundIds}")
     public R<Integer> remove(@PathVariable Long[] orderRefundIds)
     {
@@ -125,9 +134,9 @@ public class OrderRefundController extends BaseController
     /**
      * 审批通过订单退款 以及后续流程。
      */
-    @ApiOperation(value = "web端 订单退款审批接口", notes = "传入mainOrderId,orderRefundId  状态")
+    @ApiOperation(value = "web端 订单退款审批接口传入mainOrderId  orderRefundId refundAmount 状态", notes = "传入mainOrderId  orderRefundId refundAmount 还有状态")
    /* @PreAuthorize("@ss.hasPermi('core:refund:remove')")*/
-    @Log(title = "订单退款 审批", businessType = BusinessType.UPDATE)
+  /*  @Log(title = "订单退款 审批", businessType = BusinessType.UPDATE)*/
 	@PostMapping("/checkOrderRefund")
     public AjaxResult checkOrderRefund(@RequestBody OrderRefund orderRefund)
     {

+ 15 - 0
leromro-core/src/main/java/com/leromro/core/domain/MainOrders.java

@@ -154,16 +154,31 @@ public class MainOrders extends BaseEntity
     @ApiModelProperty("省级区划编号")
     private String provinceCode;
 
+    /** 省级名称 */
+    @TableField("province_name")
+    @ApiModelProperty("省级名称")
+    private String provinceName;
+
     /** 市级编号 */
     @TableField("city_code")
     @ApiModelProperty("市级编号")
     private String cityCode;
 
+    /** 市级名称 */
+    @TableField("city_name")
+    @ApiModelProperty("市级名称")
+    private String cityName;
+
     /** 区级区划编号 */
     @TableField("district_code")
     @ApiModelProperty("区级区划编号")
     private String districtCode;
 
+    /** 区级名称 */
+    @TableField("district_name")
+    @ApiModelProperty("区级名称")
+    private String districtName;
+
     /** 是否删除 0未删除,1已删除 */
     @Excel(name = "是否删除 0未删除,1已删除")
     @ApiModelProperty("是否删除 0未删除,1已删除")

+ 1 - 1
leromro-core/src/main/java/com/leromro/core/domain/OrderRefund.java

@@ -93,7 +93,7 @@ public class OrderRefund extends BaseEntity {
     private String rejectionPicture;
 
     /**
-     * 状态:0 处理中 1已退款 2已驳回
+     * 状态:0 处理中 1已退款 2已退款 3已驳回
      */
     @TableField("status")
     @ApiModelProperty("状态:0 处理中 1退款中 2已退款 3已驳回 ")

+ 8 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/BusinessManagementVO.java

@@ -55,4 +55,12 @@ public class BusinessManagementVO implements INode<BusinessManagementVO> {
     @ApiModelProperty("图片")
     private String businessIcon;
 
+    @ApiModelProperty("最低价格")
+    private String minPrice;
+
+    @ApiModelProperty("最高价格")
+    private String maxPrice;
+
+
+
 }

+ 4 - 1
leromro-core/src/main/java/com/leromro/core/domain/vo/OrderRefundVO.java

@@ -23,10 +23,13 @@ public class OrderRefundVO extends MainOrders {
     @ApiModelProperty("志愿者图片")
     private String volunteerPicture;
     /** 剩余次数的总金额 */
-    @ApiModelProperty("剩余次数的总金额")
+    @ApiModelProperty("小订单")
     private List<SecondOrder> SecondOrder;
 
     @ApiModelProperty("退款单号id")
     private Long orderRefundId;
 
+    @ApiModelProperty("服务名")
+    private String businessTierName;
+
 }

+ 47 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/WebOrderRefundVO.java

@@ -0,0 +1,47 @@
+package com.leromro.core.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.leromro.core.domain.MainOrders;
+import com.leromro.core.domain.SecondOrder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Getter
+@Setter
+public class WebOrderRefundVO extends MainOrders {
+
+    @ApiModelProperty("退款状态 0待处理 1退款中 2已退款 3已驳回 ")
+    private String orderRefundStatus;
+    /**
+     * 申请的退款金额
+     */
+    @ApiModelProperty("申请的退款金额")
+    private BigDecimal refundApplyAmount;
+    /**
+     * 可退款金额
+     */
+    @ApiModelProperty("可退款金额")
+    private BigDecimal refundAmount;
+
+    /**
+     * 退款原因文字
+     */
+    @ApiModelProperty("退款原因文字")
+    private String refundReason;
+
+    @ApiModelProperty("退款原因图片")
+    private String refundPicture;
+
+    @ApiModelProperty("业务层级名称")
+    private String businessTierName;
+
+    @ApiModelProperty("志愿者姓名")
+    private String volunteerName;
+
+    @ApiModelProperty("退款单号")
+    private String orderRefundId;
+}

+ 4 - 0
leromro-core/src/main/java/com/leromro/core/mapper/OrderRefundMapper.java

@@ -2,8 +2,10 @@ package com.leromro.core.mapper;
 
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.OrderRefund;
 import com.leromro.core.domain.vo.OrderRefundVO;
+import com.leromro.core.domain.vo.WebOrderRefundVO;
 
 /**
  * 订单取消/退款Mapper接口
@@ -64,4 +66,6 @@ public interface OrderRefundMapper extends BaseMapper<OrderRefund>
     OrderRefundVO selectOrderRefundInfoByMainOrderId(Long mainOrderId);
 
     void updateList(List<OrderRefund> orderRefundList);
+
+    List<WebOrderRefundVO> selectWebOrderRefundList(MainOrders mainOrders);
 }

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

@@ -3,8 +3,10 @@ package com.leromro.core.service;
 import java.util.List;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.leromro.common.core.domain.AjaxResult;
+import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.OrderRefund;
 import com.leromro.core.domain.vo.OrderRefundVO;
+import com.leromro.core.domain.vo.WebOrderRefundVO;
 
 /**
  * 订单取消/退款Service接口
@@ -65,4 +67,6 @@ public interface IOrderRefundService extends IService<OrderRefund>
     OrderRefundVO selectOrderRefundByMainOrderId(Long mainOrderId);
 
     void checkOrderRefund(OrderRefund orderRefund);
+
+    List<WebOrderRefundVO> selectWebOrderRefundList(MainOrders mainOrders);
 }

+ 7 - 1
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -120,8 +120,11 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         orders.setAddress(OrderAddress);
         orders.setClientName(address.getName());
         orders.setClientTelephone(address.getTelephone());
+        orders.setProvinceName(address.getProvinceName());
         orders.setProvinceCode(address.getProvinceCode());
+        orders.setCityName(address.getCityName());
         orders.setCityCode(address.getCityCode());
+        orders.setDistrictName(address.getDistrictName());
         orders.setDistrictCode(address.getDistrictCode());
 
         orders.setMainOrderId(String.valueOf(orderId));
@@ -142,7 +145,10 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         //
         SecondOrder secondOrder = SecondOrder.builder().mainOrderId(String.valueOf(orderId)).volunteerId(orders.getVolunteerId()).
                 serviceCategory(orders.getServiceCategory()).serviceDuration(orders.getServiceDuration()).addressId(orders.getAddressId())
-                .serviceOnePrice(orders.getServiceOnePrice()).volunteerInfoId(orders.getVolunteerInfoId()).orderStatus(seconderStatus).build();
+                .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())
+                .build();
         secondOrder.setRemark(orders.getRemark());
         List<SecondOrder> secondOrderList = new ArrayList<>();
 

+ 13 - 1
leromro-core/src/main/java/com/leromro/core/service/impl/OrderRefundServiceImpl.java

@@ -13,6 +13,7 @@ import com.leromro.common.core.domain.AjaxResult;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.*;
 import com.leromro.core.domain.vo.OrderRefundVO;
+import com.leromro.core.domain.vo.WebOrderRefundVO;
 import com.leromro.core.mapper.*;
 import com.leromro.core.utils.DateTimeUtil;
 import org.apache.commons.math3.stat.inference.OneWayAnova;
@@ -135,6 +136,8 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             orderRefund.setStatus("0");
             orderRefund.setRefundAmount(mainOrders.getServiceOnePrice().multiply(new BigDecimal(mainOrders.getTotalTimes() - mainOrders.getFinishTimes())));
             this.save(orderRefund);
+            UpdateWrapper<MainOrders> mainOrderUpdateWrapper = new UpdateWrapper<MainOrders>().eq("main_order_id", mainOrderId).set("order_status", 5);
+            mainOrdersMapper.update(null, mainOrderUpdateWrapper);
             return AjaxResult.success("已提交申请");
         } else if (mainOrders.getOrderStatus().equals("4") || mainOrders.getOrderStatus().equals("8")) {
             return AjaxResult.success("订单已全部完成,不可退款");
@@ -195,7 +198,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         OrderRefundVO refundVO = lOrderRefundMapper.selectOrderRefundInfoByMainOrderId(mainOrderId);
         refundVO.setRefundAmount(refundVO.getServiceOnePrice().multiply(new BigDecimal(refundVO.getTotalTimes() - refundVO.getFinishTimes())));
 
-        QueryWrapper<SecondOrder> secondOrderQueryWrapper = new QueryWrapper<SecondOrder>().eq("main_order_id", mainOrderId).eq("order_status", 0);
+        QueryWrapper<SecondOrder> secondOrderQueryWrapper = new QueryWrapper<SecondOrder>().eq("main_order_id", mainOrderId).eq("order_status", 1);
         List<SecondOrder> secondOrderList = secondOrdersMapper.selectList(secondOrderQueryWrapper);
         refundVO.setSecondOrder(secondOrderList);
         return refundVO;
@@ -268,4 +271,13 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         }
 
     }
+
+    /**
+     * @param mainOrders
+     * @return
+     */
+    @Override
+    public List<WebOrderRefundVO> selectWebOrderRefundList(MainOrders mainOrders) {
+        return  lOrderRefundMapper.selectWebOrderRefundList(mainOrders);
+    }
 }

+ 4 - 0
leromro-core/src/main/java/com/leromro/core/ttl/AutoReview.java

@@ -0,0 +1,4 @@
+package com.leromro.core.ttl;
+
+public class AutoReview {
+}

+ 4 - 2
leromro-core/src/main/java/com/leromro/core/ttl/Monitor.java

@@ -73,8 +73,9 @@ public class Monitor  {
         //还是获取map<userId,list<解冻数据>>
         Map<Long, List<OrderFrozenFunds>> volunteerAccountChangeGroupByVId = needThawMoneyList.stream().collect(Collectors.groupingBy(OrderFrozenFunds::getVolunteerId));
         //生成所有的记录对象
+        //改!  这里我们根据map的键 去取出余额的集合,
         volunteerAccountChangeGroupByVId.forEach((volunteerId,orderFrozenFunds) -> {
-            //查看用户当前的余额
+            //查看用户当前的余额 其实没必要再循环中写sql了,因为每一个用户都是一次单独的遍历,
             BigDecimal oldVolunteerBalance = jdbcTemplate.queryForObject("select balance from l_volunteer_account where volunteer_id = ? ",
                     BigDecimal.class, volunteerId);
             //生成所有的记录
@@ -92,8 +93,9 @@ public class Monitor  {
                 }
                 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);
+            //直接插入一个集合,不用在循环中写sql了
         });
 
         //还是获取map<userId,list<解冻数据>>

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

@@ -71,12 +71,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             parameterType="java.lang.Long">
         select lmo.*,
                lvi.volunteer_picture as volunteerPicture,
-               lvi.name as volunteerName
+               lvi.name as volunteerName,
+               (select business_tier_name from l_business_management lbm where lmo.business_management_id = lbm.business_management_id) as  businessTierName
         from l_main_orders lmo
                  left join l_volunteer_info lvi
                            on lmo.volunteer_id = lvi.volunteer_id and lmo.service_category = lvi.service_category
         where main_order_id = #{mainOrderId}
     </select>
+    <select id="selectWebOrderRefundList" resultType="com.leromro.core.domain.vo.WebOrderRefundVO"
+            parameterType="com.leromro.core.domain.MainOrders">
+        select lmo.*, lor.refund_apply_amount,lor.status,lor.refund_amount, lor.refund_reason,lor.order_refund_id,lor.status as orderRefundStatus ,
+        lor.refund_picture,(select business_tier_name from l_business_management lbm where lmo.business_management_id = lbm.business_management_id) as  businessTierName,
+        (select name from l_volunteer_info lvi where lmo.volunteer_info_id = lvi.volunteer_info_id) as volunteerName
+        from l_main_orders lmo
+        left join l_order_refund lor on lmo.main_order_id = lor.main_order_id
+        <where>
+            lmo.order_status = '5'
+            <if test="clientName != null and clientName != ''">and lmo.client_name = #{clientName}</if>
+            <if test="clientTelephone != null and clientTelephone != ''">and lmo.clien_telephone = #{clientTelephone}</if>
+            <if test="businessManagementId != null and businessManagementId != ''">and lmo.business_management_id = #{businessManagementId}</if>
+        </where>
+
+    </select>
 
     <insert id="insertLOrderRefund" parameterType="OrderRefund">
         insert into l_order_refund