15 コミット 7b966df47c ... 81c745fd64

作者 SHA1 メッセージ 日付
  wangwl 81c745fd64 后台志愿者列表增加名称筛选 3 ヶ月 前
  LiRong 38364329f3 返回给前端的钱数四舍五入,后端存储deciaml(13,4) 3 ヶ月 前
  wangwl 9d6a4f93ac 志愿者开始和结束任务,给客户发送系统消息 3 ヶ月 前
  wangwl f18952c81d 志愿者审批通过或拒绝,系统消息提示。 3 ヶ月 前
  wangwl 9d4a70b11e Big保留两位小数 3 ヶ月 前
  LiRong 29d986cc6d 如果没有主订单全部完成,进行校验 3 ヶ月 前
  LiRong 63a59a4060 志愿者的余额以及变更记录 3 ヶ月 前
  LiRong c2b85ba2b8 取消订单时,可退款的钱数 3 ヶ月 前
  LiRong f60a77e566 sql修复 3 ヶ月 前
  LiRong ec94d10eb6 Merge remote-tracking branch 'origin/dev-1.1.0' into dev-1.1.0 3 ヶ月 前
  wangwl 4422564fb2 订单取消的短信提示 3 ヶ月 前
  LiRong d2f24bdfb7 小订单已经全部开始的订单,不可以退款 3 ヶ月 前
  LiRong 64642ce682 志愿者列表倒序 3 ヶ月 前
  LiRong 052abb6901 Merge remote-tracking branch 'origin/dev-1.1.0' into dev-1.1.0 3 ヶ月 前
  LiRong 377887005c 如果订单全部开始,则不可退款 3 ヶ月 前
共有48 個のファイルを変更した276 個の追加37 個の削除を含む
  1. 30 0
      leromro-common/src/main/java/com/leromro/common/config/serializer/BigDecimalSerializer.java
  2. 3 8
      leromro-core/src/main/java/com/leromro/core/controller/VolunteerInfoController.java
  3. 9 5
      leromro-core/src/main/java/com/leromro/core/controller/volunteerOrderController.java
  4. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/BusinessPrice.java
  5. 2 0
      leromro-core/src/main/java/com/leromro/core/domain/ClientAccount.java
  6. 5 0
      leromro-core/src/main/java/com/leromro/core/domain/MainOrders.java
  7. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/OrderFrozenFunds.java
  8. 4 0
      leromro-core/src/main/java/com/leromro/core/domain/OrderRefund.java
  9. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/OrderSettlementApplication.java
  10. 4 0
      leromro-core/src/main/java/com/leromro/core/domain/OrgStatData.java
  11. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/PlatformFinance.java
  12. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/SecondOrder.java
  13. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/VolunteerAccount.java
  14. 5 0
      leromro-core/src/main/java/com/leromro/core/domain/VolunteerAccountChange.java
  15. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/VolunteerInfo.java
  16. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/VolunteerPaymentRecords.java
  17. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/VolunteerTakeRecord.java
  18. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/dto/VolunteerInfoDTO.java
  19. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/dto/VolunteerListDTO.java
  20. 2 0
      leromro-core/src/main/java/com/leromro/core/domain/dto/VolunteerSubmitAmountDTO.java
  21. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/dto/WebMainOrdersDTO.java
  22. 5 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/AccountChangeTotalMoney.java
  23. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/BusinessPriceVO.java
  24. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/ConversationRecordVO.java
  25. 4 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/MainOrderInfoVO.java
  26. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/MainOrdersVO.java
  27. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/OrderRefundVO.java
  28. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSettlementApplicationDetailVO.java
  29. 7 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSettlementApplicationListVO.java
  30. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSummaryVO.java
  31. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/OrgRankVO.java
  32. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/SecondOrderInfoVO.java
  33. 7 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/SettlementOrderDetailVO.java
  34. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/SettlementOrderListVO.java
  35. 3 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/VolunteerInfoDetailVO.java
  36. 4 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/WebOrderRefundVO.java
  37. 6 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/WebSecondOrderInfoVO.java
  38. 4 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/webMainOrderListVO.java
  39. 2 1
      leromro-core/src/main/java/com/leromro/core/facade/OrdersFacade.java
  40. 2 1
      leromro-core/src/main/java/com/leromro/core/service/IOrderRefundService.java
  41. 38 5
      leromro-core/src/main/java/com/leromro/core/service/impl/OrderRefundServiceImpl.java
  42. 9 0
      leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java
  43. 2 0
      leromro-core/src/main/java/com/leromro/core/service/impl/VolunteerAccountChangeServiceImpl.java
  44. 20 2
      leromro-core/src/main/java/com/leromro/core/service/impl/VolunteerInfoServiceImpl.java
  45. 4 0
      leromro-core/src/main/java/com/leromro/core/socket/WebSocketService.java
  46. 3 4
      leromro-core/src/main/java/com/leromro/core/ttl/Monitor.java
  47. 1 1
      leromro-core/src/main/resources/mapper/core/SecondOrdersMapper.xml
  48. 7 10
      leromro-core/src/main/resources/mapper/core/VolunteerInfoMapper.xml

+ 30 - 0
leromro-common/src/main/java/com/leromro/common/config/serializer/BigDecimalSerializer.java

@@ -0,0 +1,30 @@
+package com.leromro.common.config.serializer;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.util.Objects;
+
+/**
+ * 保留两位小数  使用:    @JsonSerialize(using = BigDecimalSerializer.class)
+ */
+public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
+
+    private static final DecimalFormat FORMATTER = new DecimalFormat("0.00");
+
+    @Override
+    public void serialize(BigDecimal value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+        if (Objects.isNull(value)) {
+            jsonGenerator.writeNull();
+        } else {
+            // 统一设置为2位小数,向下取整(可根据需要更换 RoundingMode)
+            value = value.setScale(2, RoundingMode.HALF_UP);
+            jsonGenerator.writeString(FORMATTER.format(value));
+        }
+    }
+}

+ 3 - 8
leromro-core/src/main/java/com/leromro/core/controller/VolunteerInfoController.java

@@ -12,10 +12,12 @@ import com.leromro.common.core.page.TableDataInfo;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.VolunteerFaceRecord;
 import com.leromro.core.domain.VolunteerInfo;
+import com.leromro.core.domain.dto.ConversationMsgDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
 import com.leromro.core.domain.dto.VolunteerListDTO;
 import com.leromro.core.domain.vo.VolunteerInfoDetailVO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
+import com.leromro.core.service.IConversationRecordService;
 import com.leromro.core.service.IVolunteerFaceRecordService;
 import com.leromro.core.service.IVolunteerInfoService;
 import com.leromro.core.utils.SendSmsUtil;
@@ -133,18 +135,11 @@ public class VolunteerInfoController extends BaseController {
     @ApiOperation(value = "志愿者审批",notes = "传入当前行主键volunteerInfoId,审批状态appStatus:2通过,3拒绝,驳回原因rejectReason,状态为3则必填")
     @PostMapping("/web/approval")
     public AjaxResult approval(@RequestBody VolunteerInfo volunteerInfo){
-        String appStatus = volunteerInfo.getAppStatus();
-        if ("3".equals(appStatus) && StrUtil.isBlank(volunteerInfo.getRejectReason())){
+        if ("3".equals(volunteerInfo.getAppStatus()) && StrUtil.isBlank(volunteerInfo.getRejectReason())){
             return AjaxResult.warn("请填写驳回原因");
         }
         // 志愿者审批
         volunteerInfoService.approval(volunteerInfo);
-        //发送短信通知
-        VolunteerInfo info = volunteerInfoService.getById(volunteerInfo.getVolunteerInfoId());
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.putOnce("name", info.getName());
-        jsonObject.putOnce("result", "2".equals(appStatus)? "通过" : "驳回");
-        SendSmsUtil.send(info.getPhonenumber(), jsonObject.toString(), ConstantsConfig.SMS_TEMPLATE_TYPE_VOLUNTEER_RESULT.getValue());
         return AjaxResult.success();
     }
     @ApiOperation("小程序志愿者首页获取自己的头像(用于排班管理)")

+ 9 - 5
leromro-core/src/main/java/com/leromro/core/controller/volunteerOrderController.java

@@ -11,15 +11,13 @@ import com.leromro.common.utils.GeoUtils;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.PlatformFinance;
 import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.dto.ConversationMsgDTO;
 import com.leromro.core.domain.dto.VolunteerStartOrderDTO;
 import com.leromro.core.domain.vo.AppSecoundOrderInfoVO;
 import com.leromro.core.domain.vo.VolunteerOrderStatisticsVO;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
 import com.leromro.core.domain.vo.WebSecondOrderInfoVO;
-import com.leromro.core.service.IAddressService;
-import com.leromro.core.service.IMainOrderService;
-import com.leromro.core.service.IPlatformFinanceService;
-import com.leromro.core.service.ISecondOrderService;
+import com.leromro.core.service.*;
 import com.leromro.core.utils.DateTimeUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,6 +45,8 @@ public class volunteerOrderController extends BaseController {
     private IMainOrderService mainOrderService;
     @Autowired
     private IPlatformFinanceService platformFinanceService;
+    @Autowired
+    private IConversationRecordService conversationRecordService;
 
     @ApiOperation("志愿者查询小订单列表")
     @GetMapping("/volunteerOrderList")
@@ -94,7 +94,11 @@ public class volunteerOrderController extends BaseController {
         secondOrderService.update(updateWrapper);
         //订单开始 根据secondOrderId修改主订单状态 修改为3
         mainOrderService.startService(secondOrder.getSecondOrderId());
-        // 通过websocket向客户发送消息,提示服务已开始
+        //异步推送系统消息给客户发送消息,提示服务已开始
+        conversationRecordService.sendSystemMsg(ConversationMsgDTO.builder()
+                .system(1).userId(secondOrder1.getUserId())
+                .msgContent("您预约"+secondOrder1.getWorkDate()+" "+secondOrder1.getWorkStartTime()+"的订单已开始服务")
+                .build());
         return AjaxResult.success();
     }
 

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/BusinessPrice.java

@@ -5,6 +5,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -33,6 +35,7 @@ public class BusinessPrice extends BaseEntity
     private Long businessPriceId;
 
     /** 业务价格 */
+    @JsonSerialize(using = BigDecimalSerializer.class)
     @TableField("business_price")
     @ApiModelProperty("业务价格")
     private BigDecimal businessPrice;

+ 2 - 0
leromro-core/src/main/java/com/leromro/core/domain/ClientAccount.java

@@ -3,6 +3,8 @@ package com.leromro.core.domain;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

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

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -44,11 +46,13 @@ public class MainOrders extends BaseEntity
     /** 服务单价 */
     @Excel(name = "下单单价")
     @ApiModelProperty("单价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceOnePrice;
 
     /** 服务总价 */
     @Excel(name = "下单总价")
     @ApiModelProperty("总价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceTotalPrice;
 
 
@@ -99,6 +103,7 @@ public class MainOrders extends BaseEntity
     /** 支付金额 */
     @Excel(name = "支付金额")
     @ApiModelProperty("支付金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal paymentAmount;
 
     /** 订单支付方式:0余额 ,1微信,2支付宝 */

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/OrderFrozenFunds.java

@@ -8,6 +8,8 @@ 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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -38,21 +40,25 @@ public class OrderFrozenFunds extends BaseEntity
     /** 志愿者收入 */
     @TableField("volunteer_money")
     @ApiModelProperty("志愿者收入")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal volunteerMoney;
 
     /** 平台佣金 */
     @TableField("platform_brokerage")
     @ApiModelProperty("平台佣金")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal platformBrokerage;
 
     /** 评分奖励 */
     @TableField("score_money")
     @ApiModelProperty("评分奖励")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal scoreMoney;
 
     /** 志愿者订单金额 */
     @TableField("second_order_money")
     @ApiModelProperty("志愿者订单金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal secondOrderMoney;
 
     /** 冻结状态 0冻结中1已解冻 */

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

@@ -4,6 +4,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -61,6 +63,7 @@ public class OrderRefund extends BaseEntity {
      */
     @TableField("refund_apply_amount")
     @ApiModelProperty("申请的退款金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal refundApplyAmount;
 
     /**
@@ -68,6 +71,7 @@ public class OrderRefund extends BaseEntity {
      */
     @TableField("refund_amount")
     @ApiModelProperty("可退款金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal refundAmount;
 
     /**

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/OrderSettlementApplication.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -47,6 +49,7 @@ public class OrderSettlementApplication extends BaseEntity
 
     @TableField("amount")
     @ApiModelProperty("提现金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal amount;
 
     @TableField("application_user_id")

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

@@ -9,6 +9,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -71,10 +73,12 @@ public class OrgStatData extends BaseEntity
 
     @TableField("today_order_amount")
     @ApiModelProperty("今日订单总金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal todayOrderAmount;
 
     @TableField("all_order_amount")
     @ApiModelProperty("累计订单总金额(包含今日)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal allOrderAmount;
 
     @TableField("today_order_cancel_total")

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

@@ -5,6 +5,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -34,6 +36,7 @@ public class PlatformFinance extends BaseEntity
     /** 变更金额 */
     @TableField("change_money")
     @ApiModelProperty("变更金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal changeMoney;
 
     /** 变更类型 1增加0减少 */

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/SecondOrder.java

@@ -10,7 +10,9 @@ import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Sensitive;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiOperation;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
@@ -58,11 +60,13 @@ public class SecondOrder extends BaseEntity
     /** 服务单价 */
     @Excel(name = "下单单价")
     @ApiModelProperty("单价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceOnePrice;
 
     /** 服务单价 */
     @Excel(name = "小订单总价")
     @ApiModelProperty("小订单总价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceTotalPrice;
 
     /** 志愿者id */
@@ -262,12 +266,14 @@ public class SecondOrder extends BaseEntity
      * 区域抽成比例,如0.7
      */
     @ApiModelProperty("区域抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionRatio;
 
     /**
      * 区域抽成金额(元)
      */
     @ApiModelProperty("区域抽成金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionAmount;
 
     /**

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/VolunteerAccount.java

@@ -5,6 +5,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -39,18 +41,22 @@ public class VolunteerAccount extends BaseEntity
 
     @TableField("balance")
     @ApiModelProperty("可提现金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal balance;
 
     @TableField("total_balance")
     @ApiModelProperty("累计可提现金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal totalBalance;
 
     @TableField("order_frozen_balance")
     @ApiModelProperty("订单冻结金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal orderFrozenBalance;
 
     @TableField("be_balance")
     @ApiModelProperty("提现中金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal beBalance;
 
 

+ 5 - 0
leromro-core/src/main/java/com/leromro/core/domain/VolunteerAccountChange.java

@@ -5,6 +5,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -49,16 +51,19 @@ public class VolunteerAccountChange extends BaseEntity
     /** 变更金额 */
     @TableField("change_money")
     @ApiModelProperty("变更金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal changeMoney;
 
     /** 变更前可提现金额 */
     @TableField("before_balance")
     @ApiModelProperty("变更前可提现金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal beforeBalance;
 
     /** 变更后可提现金额 */
     @TableField("after_balance")
     @ApiModelProperty("变更后可提现金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal afterBalance;
 
     /** 变更后可提现金额 */

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/VolunteerInfo.java

@@ -9,8 +9,10 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
 import com.leromro.common.annotation.Sensitive;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.common.core.domain.BaseEntity;
 import com.leromro.common.enums.DesensitizedType;
 import io.swagger.annotations.ApiModel;
@@ -122,6 +124,7 @@ public class VolunteerInfo extends BaseEntity {
     private String businessTierName;
 
     @ApiModelProperty("业务价格")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal businessPrice;
 
     @ApiModelProperty("业务时长(整数分钟)")

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/VolunteerPaymentRecords.java

@@ -7,6 +7,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -64,18 +66,22 @@ public class VolunteerPaymentRecords extends BaseEntity
 
     @TableField("total_payment_amount")
     @ApiModelProperty("打款单总金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal totalPaymentAmount;
 
     @TableField("actual_payment_amount")
     @ApiModelProperty("实际打款金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal actualPaymentAmount;
 
     @TableField("successful_payment_amount")
     @ApiModelProperty("打款成功金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal successfulPaymentAmount;
 
     @TableField("failed_payment_amount")
     @ApiModelProperty("打款失败金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal failedPaymentAmount;
 
     @TableField("json_content")

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/VolunteerTakeRecord.java

@@ -7,6 +7,8 @@ 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.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import lombok.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -47,18 +49,22 @@ public class VolunteerTakeRecord extends BaseEntity
 
     @TableField("take_amount")
     @ApiModelProperty("提现申请金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal takeAmount;
 
     @TableField("shoud_amount")
     @ApiModelProperty("提现应发金额(扣除税点)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal shoudAmount;
 
     @TableField("tax_amount")
     @ApiModelProperty("扣除的税额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal taxAmount;
 
     @TableField("receive_amount")
     @ApiModelProperty("提现实发金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal receiveAmount;
 
     @TableField("pay_type")

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/VolunteerInfoDTO.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.core.domain.VolunteerInfo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -109,6 +111,7 @@ public class VolunteerInfoDTO  {
     private String businessTierName;
 
     @ApiModelProperty("业务价格")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal businessPrice;
 
     @ApiModelProperty("业务时长(整数分钟)")

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/VolunteerListDTO.java

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.dto;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -75,6 +77,7 @@ public class VolunteerListDTO {
     private String businessTierName;
 
     @ApiModelProperty("业务价格")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal businessPrice;
 
     @ApiModelProperty("业务时长(整数分钟)")

+ 2 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/VolunteerSubmitAmountDTO.java

@@ -1,5 +1,7 @@
 package com.leromro.core.domain.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.math.BigDecimal;

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/WebMainOrdersDTO.java

@@ -1,5 +1,7 @@
 package com.leromro.core.domain.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Getter;
@@ -21,6 +23,7 @@ public class WebMainOrdersDTO {
     private String outTradeNo;
 
     @ApiModelProperty("总价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceTotalPrice;
     @ApiModelProperty("服务类别id")
     private Long businessManagementId;

+ 5 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/AccountChangeTotalMoney.java

@@ -1,5 +1,7 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -14,8 +16,11 @@ import java.math.BigDecimal;
 @ApiOperation("总钱数(支出和收入)")
 public class AccountChangeTotalMoney {
     @ApiModelProperty("总收入")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal totalEarning;
+
     @ApiModelProperty("总支出")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal totalExpend;
 
 }

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/BusinessPriceVO.java

@@ -3,6 +3,8 @@ package com.leromro.core.domain.vo;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -14,6 +16,7 @@ public class BusinessPriceVO {
     private Long businessPriceId;
 
     @ApiModelProperty("业务价格")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal businessPrice;
 
     @ApiModelProperty("业务时长(整数分钟)")

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/ConversationRecordVO.java

@@ -14,6 +14,9 @@ public class ConversationRecordVO {
     @ApiModelProperty("会话id")
     private Long conversationRecordId;
 
+    @ApiModelProperty("会话类型 1系统会话 2订单会话 3客服会话")
+    private String conversationType;
+
     @ApiModelProperty("会话标题")
     private String conversationTitle;
 

+ 4 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/MainOrderInfoVO.java

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Sensitive;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.common.enums.DesensitizedType;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -37,6 +39,7 @@ public class MainOrderInfoVO {
     private String districtName;
 
     @ApiModelProperty("订单信息-服务的总价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceTotalPrice;
 
     @ApiModelProperty("订单信息-支付方式 字典中获取")
@@ -64,6 +67,7 @@ public class MainOrderInfoVO {
     private Long serviceDuration;
 
     @ApiModelProperty("服务信息-单位价格")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceOnePrice;
 
     @ApiModelProperty("服务信息-单位名称")

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/MainOrdersVO.java

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.core.domain.MainOrders;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -24,6 +26,7 @@ public class MainOrdersVO  {
     private String volunteerPicture;
 
     @ApiModelProperty("总价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceTotalPrice;
 
     @ApiModelProperty("订单状态 0待支付 1已支付 2支付超时或取消 3进行中 4已完成 5申请退款中 6已退款 7部分退款  ")

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/OrderRefundVO.java

@@ -1,5 +1,7 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.SecondOrder;
 import io.swagger.annotations.ApiModelProperty;
@@ -15,6 +17,7 @@ import java.util.List;
 public class OrderRefundVO extends MainOrders {
     /** 剩余次数的总金额 */
     @ApiModelProperty("剩余次数的总金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal refundAmount;
     /** 志愿者姓名 */
     @ApiModelProperty("志愿者姓名")

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSettlementApplicationDetailVO.java

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.framework.handler.DictLaberHandler;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -92,10 +94,12 @@ public class OrderSettlementApplicationDetailVO {
 
     // 区域公司抽成金额
     @Excel(name = "区域公司抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionRatio;
 
     // 区域公司抽成金额
     @Excel(name = "区域公司抽成金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionAmount;
 
     // 区域公司结算状态
@@ -136,10 +140,12 @@ public class OrderSettlementApplicationDetailVO {
 
     // 服务中心抽成比例
     @Excel(name = "服务中心抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionRatio;
 
     // 服务中心抽成金额
     @Excel(name = "服务中心抽成金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionAmount;
 
     // 服务中心结算状态

+ 7 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSettlementApplicationListVO.java

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.framework.handler.DictLaberHandler;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -76,6 +78,7 @@ public class OrderSettlementApplicationListVO {
 
     // 订单总金额
     @Excel(name = "订单总金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal orderTotalPrice;
 
     // 订单状态
@@ -92,10 +95,12 @@ public class OrderSettlementApplicationListVO {
 
     // 区域公司抽成金额
     @Excel(name = "区域公司抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionRatio;
 
     // 区域公司抽成金额
     @Excel(name = "区域公司抽成金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionAmount;
 
     // 区域公司结算状态
@@ -136,10 +141,12 @@ public class OrderSettlementApplicationListVO {
 
     // 服务中心抽成比例
     @Excel(name = "服务中心抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionRatio;
 
     // 服务中心抽成金额
     @Excel(name = "服务中心抽成金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionAmount;
 
     // 服务中心结算状态

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSummaryVO.java

@@ -1,5 +1,7 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -15,6 +17,7 @@ public class OrderSummaryVO {
     private Integer orderCancelTotal;
 
     @ApiModelProperty(value = "订单总金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal orderTotalAmount;
 
     @ApiModelProperty(value = "完成单量")

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/OrgRankVO.java

@@ -1,5 +1,7 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -30,6 +32,7 @@ public class OrgRankVO {
         @ApiModelProperty("机构名称")
         private String orgName;
         @ApiModelProperty("订单金额")
+        @JsonSerialize(using = BigDecimalSerializer.class)
         private BigDecimal orderAmount;
     }
 }

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

@@ -2,7 +2,9 @@ package com.leromro.core.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.core.domain.Address;
 import com.leromro.core.domain.SecondOrder;
 import io.swagger.annotations.ApiModelProperty;
@@ -23,6 +25,7 @@ public class SecondOrderInfoVO {
     private Long secondOrderId;
 
     @ApiModelProperty("小订单总价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceTotalPrice;
 
     @ApiModelProperty("订单状态 0待支付 1已支付 2支付超时或取消 3进行中 4已完成 5申请退款中 6已退款 7部分退款  ")

+ 7 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/SettlementOrderDetailVO.java

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.framework.handler.DictLaberHandler;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -59,6 +61,7 @@ public class SettlementOrderDetailVO {
 
     // 订单总金额
     @Excel(name = "订单总金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal orderTotalPrice;
 
     // 订单状态
@@ -75,10 +78,12 @@ public class SettlementOrderDetailVO {
 
     // 区域公司抽成比例
     @Excel(name = "区域公司抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionRatio;
 
     // 区域公司抽成金额
     @Excel(name = "区域公司抽成金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionAmount;
 
     // 区域公司结算状态
@@ -133,10 +138,12 @@ public class SettlementOrderDetailVO {
 
     // 服务中心抽成比例
     @Excel(name = "服务中心抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionRatio;
 
     // 服务中心抽成金额
     @Excel(name = "服务中心抽成金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionAmount;
 
     // 服务中心结算状态

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/SettlementOrderListVO.java

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.vo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.framework.handler.DictLaberHandler;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -75,10 +77,12 @@ public class SettlementOrderListVO {
 
     // 区域公司抽成金额
     @Excel(name = "区域公司抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionRatio;
 
     // 区域公司抽成金额
     @Excel(name = "区域公司抽成金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionAmount;
 
     // 区域公司结算状态
@@ -147,10 +151,12 @@ public class SettlementOrderListVO {
 
     // 服务中心抽成比例
     @Excel(name = "服务中心抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionRatio;
 
     // 服务中心抽成金额
     @Excel(name = "服务中心抽成金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionAmount;
 
     // 服务中心结算状态

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/VolunteerInfoDetailVO.java

@@ -3,7 +3,9 @@ package com.leromro.core.domain.vo;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Sensitive;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.common.enums.DesensitizedType;
 import com.leromro.core.domain.VolunteerInfo;
 import io.swagger.annotations.ApiModelProperty;
@@ -19,6 +21,7 @@ import java.math.BigDecimal;
 public class VolunteerInfoDetailVO {
 
     @ApiModelProperty("业务价格")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal businessPrice;
 
     @ApiModelProperty("业务时长(整数分钟)")

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

@@ -1,6 +1,8 @@
 package com.leromro.core.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.SecondOrder;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,11 +22,13 @@ public class WebOrderRefundVO extends MainOrders {
      * 申请的退款金额
      */
     @ApiModelProperty("申请的退款金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal refundApplyAmount;
     /**
      * 可退款金额
      */
     @ApiModelProperty("可退款金额")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal refundAmount;
 
     /**

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/WebSecondOrderInfoVO.java

@@ -2,7 +2,9 @@ package com.leromro.core.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import com.leromro.core.domain.SecondOrder;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -160,12 +162,14 @@ public class WebSecondOrderInfoVO  {
      * 区域抽成比例,如0.7
      */
     @ApiModelProperty("区域抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionRatio;
 
     /**
      * 区域抽成金额(元)
      */
     @ApiModelProperty("区域抽成金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal areaDistributionAmount;
 
     /**
@@ -233,12 +237,14 @@ public class WebSecondOrderInfoVO  {
      * 服务中心抽成比例
      */
     @ApiModelProperty("服务中心抽成比例")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionRatio;
 
     /**
      * 服务中心抽成金额(元)
      */
     @ApiModelProperty("服务中心抽成金额(元)")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceCentreDistributionAmount;
 
     /**

+ 4 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/webMainOrderListVO.java

@@ -1,7 +1,9 @@
 package com.leromro.core.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.leromro.common.annotation.Excel;
+import com.leromro.common.config.serializer.BigDecimalSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -21,9 +23,11 @@ public class webMainOrderListVO {
     private String outTradeNo;
 
     @ApiModelProperty("单价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceOnePrice;
 
     @ApiModelProperty("总价")
+    @JsonSerialize(using = BigDecimalSerializer.class)
     private BigDecimal serviceTotalPrice;
 
     @ApiModelProperty(" 0待支付 1已支付 2支付超时或取消 3进行中 4已完成 5申请退款中 6已退款 7部分退款 8 待评价 ")

+ 2 - 1
leromro-core/src/main/java/com/leromro/core/facade/OrdersFacade.java

@@ -130,7 +130,6 @@ public class OrdersFacade {
                             .system(2).volunteerId(mainOrders.getVolunteerId())
                             .msgContent("您有新的订单,请及时查看")
                             .build());
-                    //向志愿者推送短信
                     //发送短信通知
                     VolunteerInfo info = volunteerInfoService.getById(mainOrders.getVolunteerInfoId());
                     if (ObjectUtil.isNotNull(info)) {
@@ -194,6 +193,8 @@ public class OrdersFacade {
                                     .eq(SecondOrder::getMainOrderId, mainOrders.getMainOrderId())
                                     .in(SecondOrder::getOrderStatus,"0","1"));
                         }
+                        //退款成功,推送消息和短信
+                        orderRefundService.sendMsgAndSms(mainOrders);
                     }
                 }
             }

+ 2 - 1
leromro-core/src/main/java/com/leromro/core/service/IOrderRefundService.java

@@ -77,5 +77,6 @@ public interface IOrderRefundService extends IService<OrderRefund>
     public  void updateMainOrderAndSeconderStatus(MainOrders mainOrders,String secondOrderStatus);
     //订单退款,向平台流水中添加数据
     public void  updatePlatformFinanceChange(List<SecondOrder> secondOrderList,Integer changeType,Integer moneyType, Integer sourceType);
-
+    //退款成功,推送消息和短信
+    public void sendMsgAndSms(MainOrders mainOrders);
 }

+ 38 - 5
leromro-core/src/main/java/com/leromro/core/service/impl/OrderRefundServiceImpl.java

@@ -7,6 +7,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.Update;
@@ -23,10 +24,15 @@ import com.leromro.common.core.domain.entity.SysUser;
 import com.leromro.common.exception.ServiceException;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.*;
+import com.leromro.core.domain.dto.ConversationMsgDTO;
 import com.leromro.core.domain.vo.OrderRefundVO;
 import com.leromro.core.domain.vo.WebOrderRefundVO;
 import com.leromro.core.mapper.*;
+import com.leromro.core.service.IConversationRecordService;
+import com.leromro.core.service.IVolunteerInfoService;
 import com.leromro.core.utils.DateTimeUtil;
+import com.leromro.core.utils.SendSmsUtil;
+import com.leromro.framework.config.ConstantsConfig;
 import com.leromro.system.mapper.SysUserMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.math3.stat.inference.OneWayAnova;
@@ -70,6 +76,10 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private WxPayService wxMiniPayRefundService;
     @Autowired
     private SysUserMapper sysUserMapper;
+    @Autowired
+    private IVolunteerInfoService volunteerInfoService;
+    @Autowired
+    private IConversationRecordService conversationRecordService;
 
     /**
      * 查询订单取消/退款
@@ -174,11 +184,15 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             orderRefund.setStatus("1".equals(paymentMethod)?"2":"1");
             orderRefund.setRefundAmount(totalPrice);
             this.save(orderRefund);
+            //如果余额支付,则退款完成,直接发送平台消息和短信通知
+            if (mainOrders.getPaymentMethod().equals("1")) {
+                sendMsgAndSms(mainOrders);
+            }
             return AjaxResult.success("钱款将在三个工作日内返回到您的钱包中");
         } else if (mainOrders.getOrderStatus().equals("3")) {
             List<SecondOrder> secondOrderList = secondOrdersMapper.selectList(new LambdaQueryWrapper<SecondOrder>().eq(SecondOrder::getMainOrderId, mainOrderId).eq(SecondOrder::getOrderStatus, "1"));
             //小订单已开始或者部分小订单已完成
-            if (mainOrders.getTotalTimes() - secondOrderList.size() <= 0){
+            if (secondOrderList.size() <= 0){
                 throw new RuntimeException("订单已全部开始,不可退款");
             }
             orderRefund.setStatus("0");
@@ -245,11 +259,13 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         //根据mainID 取出
         MainOrders mainOrder = mainOrdersMapper.selectOne(new LambdaQueryWrapper<MainOrders>().eq(MainOrders::getMainOrderId, mainOrderId));
         OrderRefundVO refundVO = lOrderRefundMapper.selectOrderRefundInfoByMainOrderId(mainOrderId);
-
         QueryWrapper<SecondOrder> secondOrderQueryWrapper = new QueryWrapper<SecondOrder>().eq("main_order_id", mainOrderId).eq("order_status", "1");
         List<SecondOrder> secondOrderList = secondOrdersMapper.selectList(secondOrderQueryWrapper);
-
-        refundVO.setRefundAmount(refundVO.getServiceOnePrice().multiply(BigDecimal.valueOf(mainOrder.getSingleQuantity())).multiply(new BigDecimal(refundVO.getTotalTimes() - secondOrderList.size())));
+        if (secondOrderList.size() <= 0){
+            throw new RuntimeException("订单全部开始,不可退款");
+        }
+        BigDecimal bigDecimal = refundVO.getServiceOnePrice().multiply(BigDecimal.valueOf(mainOrder.getSingleQuantity())).multiply(new BigDecimal(secondOrderList.size()));
+        refundVO.setRefundAmount(bigDecimal);
         refundVO.setSecondOrder(secondOrderList);
         return refundVO;
     }
@@ -331,7 +347,10 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             mainOrders.setOrderStatus("7");
             //调用方法来修改主、小订单的状态
             updateMainOrderAndSeconderStatus(mainOrders,"6");
-
+            //如果余额支付,则退款完成,直接发送平台消息和短信通知
+            if (mainOrders.getPaymentMethod().equals("1")) {
+                sendMsgAndSms(mainOrders);
+            }
 
         } else if (orderRefund.getStatus().equals("3")) {
             //不通过
@@ -360,6 +379,20 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         return lOrderRefundMapper.selectWebOrderRefundList(new ListPermission(OrderRefund.class, CommonConstants.CHECK_PROVINCE_CITY_DISTRICT) ,mainOrders);
     }
 
+    /**
+     * 退款成功,推送消息和短信
+     */
+    public void sendMsgAndSms(MainOrders mainOrders) {
+        conversationRecordService.sendSystemMsg(ConversationMsgDTO.builder()
+                .system(2).volunteerId(mainOrders.getVolunteerId())
+                .msgContent("您有订单被顾客取消,请及时查看")
+                .build());
+        VolunteerInfo info = volunteerInfoService.getById(mainOrders.getVolunteerInfoId());
+        if (ObjectUtil.isNotNull(info)) {
+            SendSmsUtil.send(info.getPhonenumber(), "", ConstantsConfig.SMS_TEMPLATE_TYPE_VOLUNTEER_ORDER_CANCELLED.getValue());
+        }
+    }
+
     //修改志愿者的工作时间
     public void updateVolunteerWorkDateAndTime(List<SecondOrder> secondOrderList, MainOrders mainOrders) {
         //修改志愿者工作时间表

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

@@ -20,6 +20,7 @@ import com.leromro.core.domain.*;
 import com.leromro.core.domain.dto.*;
 import com.leromro.core.domain.vo.*;
 import com.leromro.core.mapper.*;
+import com.leromro.core.service.IConversationRecordService;
 import com.leromro.core.service.ISecondOrderService;
 import com.leromro.core.utils.DateTimeUtil;
 import com.leromro.system.service.ISysConfigService;
@@ -45,6 +46,8 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
     private VolunteerInfoMapper volunteerInfoMapper;
     @Autowired
     private ISysConfigService sysConfigService;
+    @Autowired
+    private IConversationRecordService conversationRecordService;
 
     /**
      * @param orderStatus
@@ -117,6 +120,12 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         }else {
             mainOrdersMapper.update(null,mainOrdersUpdateWrapper);
         }
+
+        //异步推送系统消息给客户发送消息,提示服务已完成
+        conversationRecordService.sendSystemMsg(ConversationMsgDTO.builder()
+                .system(1).userId(secondOrderInfo.getUserId())
+                .msgContent("您预约"+secondOrderInfo.getWorkDate()+" "+secondOrderInfo.getWorkStartTime()+"的订单服务已完成")
+                .build());
         return AjaxResult.success();
     }
 

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

@@ -3,6 +3,7 @@ package com.leromro.core.service.impl;
 import java.math.BigDecimal;
 import java.util.List;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.vo.AccountChangeTotalMoney;
 import com.leromro.core.domain.vo.ClientAccountChangeVO;
 import com.leromro.core.domain.vo.VolunteerAccountChangeVO;
@@ -102,6 +103,7 @@ public class VolunteerAccountChangeServiceImpl extends ServiceImpl<VolunteerAcco
     @Override
     public AccountChangeTotalMoney getVolunteerAccountTotalChangeMoney(VolunteerAccountChange volunteerAccountChange) {
         AccountChangeTotalMoney totalMoney = new AccountChangeTotalMoney();
+        volunteerAccountChange.setVolunteerId(SecurityUtils.getUserId());
         List<VolunteerAccountChangeVO> list = volunteerAccountChangeMapper.selectVolunteerAccountChangeListAndServiceType(volunteerAccountChange);
         //算出总收入以及总支出
         BigDecimal totalEarning = list.stream()

+ 20 - 2
leromro-core/src/main/java/com/leromro/core/service/impl/VolunteerInfoServiceImpl.java

@@ -3,6 +3,7 @@ package com.leromro.core.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -20,6 +21,7 @@ import com.leromro.core.domain.BusinessManagement;
 import com.leromro.core.domain.SecondOrder;
 import com.leromro.core.domain.UserPointChange;
 import com.leromro.core.domain.VolunteerInfo;
+import com.leromro.core.domain.dto.ConversationMsgDTO;
 import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
 import com.leromro.core.domain.dto.VolunteerListDTO;
@@ -28,6 +30,8 @@ import com.leromro.core.domain.vo.VolunteerInfoVO;
 import com.leromro.core.mapper.VolunteerInfoMapper;
 import com.leromro.core.service.*;
 import com.leromro.core.utils.DateTimeUtil;
+import com.leromro.core.utils.SendSmsUtil;
+import com.leromro.framework.config.ConstantsConfig;
 import com.leromro.system.service.ISysConfigService;
 import com.leromro.system.service.ISysUserService;
 import com.leromro.system.service.impl.SysUserServiceImpl;
@@ -75,6 +79,9 @@ public class VolunteerInfoServiceImpl extends ServiceImpl<VolunteerInfoMapper, V
     @Autowired
     private ISysUserService iSysUserService;
 
+    @Autowired
+    private IConversationRecordService conversationRecordService;
+
     /**
      * 新增志愿者信息
      * @param dto
@@ -194,13 +201,24 @@ public class VolunteerInfoServiceImpl extends ServiceImpl<VolunteerInfoMapper, V
     @Override
     @Transactional
     public void approval(VolunteerInfo volunteerInfo) {
+        String appStatus = volunteerInfo.getAppStatus();
         // 更新志愿者审核信息
         this.update(new LambdaUpdateWrapper<VolunteerInfo>()
                 .eq(VolunteerInfo::getVolunteerInfoId,volunteerInfo.getVolunteerInfoId())
-                .set(VolunteerInfo::getAppStatus,volunteerInfo.getAppStatus())
+                .set(VolunteerInfo::getAppStatus,appStatus)
                 .set(StrUtil.isNotBlank(volunteerInfo.getRejectReason()),VolunteerInfo::getRejectReason,volunteerInfo.getRejectReason()));
         // 获取当前志愿者信息
         VolunteerInfo info = this.getById(volunteerInfo.getVolunteerInfoId());
+        //异步推送系统消息给志愿者
+        conversationRecordService.sendSystemMsg(ConversationMsgDTO.builder()
+                .system(2).volunteerId(info.getVolunteerId())
+                .msgContent("2".equals(appStatus)?"您的志愿者申请已通过,请配置排班时间":("您的志愿者申请未通过,原因:"+volunteerInfo.getRejectReason()))
+                .build());
+        //发送短信通知
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.putOnce("name", info.getName());
+        jsonObject.putOnce("result", "2".equals(appStatus)? "通过" : "驳回");
+        SendSmsUtil.send(info.getPhonenumber(), jsonObject.toString(), ConstantsConfig.SMS_TEMPLATE_TYPE_VOLUNTEER_RESULT.getValue());
         // 用户成为志愿者积分处理
         userToVolunteerPointHandler(info.getVolunteerId());
     }
@@ -211,7 +229,7 @@ public class VolunteerInfoServiceImpl extends ServiceImpl<VolunteerInfoMapper, V
      */
     @Override
     public List<VolunteerInfo> selectVolunteerGroupByUserId(SysUser sysUser) {
-        return volunteerInfoMapper.selectVolunteerGroupByUserId(new ListPermission(SecondOrder.class, CommonConstants.CHECK_PROVINCE_CITY_DISTRICT),sysUser);
+        return volunteerInfoMapper.selectVolunteerGroupByUserId(new ListPermission(SysUser.class, CommonConstants.CHECK_PROVINCE_CITY_DISTRICT),sysUser);
     }
 
     /**

+ 4 - 0
leromro-core/src/main/java/com/leromro/core/socket/WebSocketService.java

@@ -2,6 +2,7 @@ package com.leromro.core.socket;
 
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alipay.api.domain.UserInfoVO;
 import com.leromro.core.domain.vo.UserMsgVO;
@@ -136,6 +137,9 @@ public class WebSocketService implements ApplicationContextAware {
      * 单个消息推送
      */
     public void sendMessage(Long userId, String message){
+        if (ObjectUtil.isNull(userId)){
+            log.error("推送消息失败,用户为null,消息内容:{}", message);
+        }
         List<Session> sessions = userSessionMap.get(userId);
         if(sessions != null && !sessions.isEmpty()){
             /** 此处不能使用普通集合,否则在推送消息时,当前用户又开启一个页面,集合发生变化迭代器会报错ConcurrentModificationException*/

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

@@ -85,10 +85,9 @@ public class Monitor {
         //根据主订单查到小订单,看看是否是全部完成
         List<Long> mainOrderIdList = secondOrderList.stream().map(SecondOrder::getMainOrderId).distinct().collect(Collectors.toList());
         List<Long> mainOrdersIdList = mainOrderService.list(new LambdaQueryWrapper<MainOrders>().eq(MainOrders::getOrderStatus, "4").in(MainOrders::getMainOrderId,mainOrderIdList)).stream().map(MainOrders::getMainOrderId).collect(Collectors.toList());
-
-        mainOrderService.autoCommentOrderScore(mainOrdersIdList);
-
-
+        if(!mainOrdersIdList.isEmpty()){
+            mainOrderService.autoCommentOrderScore(mainOrdersIdList);
+        }
         // 构建map 拿到secondOrderId 和 金额
         Map<Long, BigDecimal> brokerageMap = platformPlatformList.stream() .collect(Collectors.toMap(PlatformFinance::getSecondOrderId, PlatformFinance::getChangeMoney));
 

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

@@ -316,7 +316,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getTodayAllOrderList" resultType="com.leromro.core.domain.SecondOrder">
         select * from l_second_order
         where
-            order_status in (1,2,4)
+            order_status in (1,2,3,4)
             and create_time &gt;= DATE(NOW())
     </select>
 

+ 7 - 10
leromro-core/src/main/resources/mapper/core/VolunteerInfoMapper.xml

@@ -39,17 +39,14 @@
             parameterType="com.leromro.core.domain.VolunteerInfo">
         select * from l_volunteer_info lvi left join sys_user su on lvi.volunteer_id = su.user_id
         <where>
-            <if test="dto.serviceCategory != null "> and service_category = #{dto.serviceCategory}</if>
-            <if test="dto.phonenumber != null">and phonenumber = #{dto.phonenumber}</if>
-            <if test="dto.appStatus != null  and dto.appStatus != '' and dto.appStatus == 1"> and app_status in (1,3)</if>
-            <if test="dto.appStatus != null  and dto.appStatus != '' and dto.appStatus == 2"> and app_status = 2</if>
+            <if test="dto.serviceCategory != null "> and lvi.service_category = #{dto.serviceCategory}</if>
+            <if test="dto.phonenumber != null">and lvi.phonenumber = #{dto.phonenumber}</if>
+            <if test="dto.appStatus != null  and dto.appStatus != '' and dto.appStatus == 1"> and  lvi.app_status in (1,3)</if>
+            <if test="dto.appStatus != null  and dto.appStatus != '' and dto.appStatus == 2"> and  lvi.app_status = 2</if>
             <if test="dto.serviceCenterId != null  and dto.serviceCenterId != '' "> and su.service_centre_id = #{dto.serviceCenterId}</if>
-            <!--<if test="name != null  and name != ''"> and lvi.name like concat('%', #{name}, '%')</if>
-            <if test="score != null "> and lvi.score = #{score}</if>
-            <if test="skillDescribe != null  and skillDescribe != ''"> and lvi.skill_describe = #{skillDescribe}</if>
-            <if test="city != null  and city != ''"> and lvi.city = #{city}</if>
-            -->
+            <if test="dto.name != null  and dto.name != ''"> and lvi.name like concat('%', #{dto.name}, '%')</if>
         </where>
+        order by lvi.create_time desc
     </select>
 
     <select id="selectVolunteerInfoSimple" resultType="com.leromro.core.domain.vo.VolunteerInfoVO">
@@ -80,7 +77,7 @@
     <select id="selectVolunteerGroupByUserId" resultType="com.leromro.core.domain.VolunteerInfo">
         select lvi.volunteer_id ,s.create_time  from sys_user s left join l_volunteer_info lvi on s.user_id = lvi.volunteer_id
         where s.del_flag = 0 and s.user_platform = 0 and lvi.volunteer_id
-        group by lvi.volunteer_id;
+        group by lvi.volunteer_id
     </select>
     <select id="selectVolunteerPictureList" resultType="java.lang.String" parameterType="java.lang.Long">
         select volunteer_picture from l_volunteer_info where volunteer_id = #{userId}