guoshuai 1 month ago
parent
commit
169ce4e332

+ 76 - 4
src/main/java/com/qmrb/system/controller/OrderController.java

@@ -2,15 +2,20 @@ package com.qmrb.system.controller;
 
 
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.common.result.PageResult;
+import com.qmrb.system.common.result.Result;
+import com.qmrb.system.common.result.ResultCode;
+import com.qmrb.system.framework.resubmit.Resubmit;
 import com.qmrb.system.pojo.dto.LoginParam;
 import com.qmrb.system.pojo.dto.UserParam;
 import com.qmrb.system.pojo.entity.Order;
 import com.qmrb.system.pojo.entity.ToolWxConfig;
-import com.qmrb.system.pojo.vo.ReCreateOrderVO;
-import com.qmrb.system.pojo.vo.ToCreateOrderVO;
-import com.qmrb.system.pojo.vo.UserInfo;
-import com.qmrb.system.pojo.vo.WxLoginVO;
+import com.qmrb.system.pojo.form.PayOrderForm;
+import com.qmrb.system.pojo.query.PayOrderQuery;
+import com.qmrb.system.pojo.vo.*;
 import com.qmrb.system.service.OrderService;
 import com.qmrb.system.service.ToolWxConfigService;
 import com.qmrb.system.service.UserService;
@@ -22,14 +27,24 @@ import com.qmrb.system.wxpayback.constant.wxpay.WXOrderConstant;
 import com.wechat.pay.contrib.apache.httpclient.exception.ParseException;
 import com.wechat.pay.contrib.apache.httpclient.exception.ValidationException;
 import com.wechat.pay.contrib.apache.httpclient.notification.Notification;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
 import jakarta.servlet.http.HttpServletRequest;
+import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
+import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -53,6 +68,63 @@ public class OrderController extends CommonController {
     @Autowired
     private ToolWxConfigService toolWxConfigService;
 
+
+    @Operation(summary = "订单表分页列表", security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/page")
+    public PageResult<PayOrderVO> getPage(
+            @ParameterObject PayOrderQuery queryParams
+    ) {
+        Page<PayOrderVO> result = orderService.getPage(queryParams);
+        return PageResult.success(result);
+    }
+
+    @Operation(summary = "新增订单表", security = {@SecurityRequirement(name = "Authorization")})
+    @PostMapping
+    @PreAuthorize("@ss.hasPerm('order:add')")
+    @Resubmit
+    public Result<PayOrderForm> saveForm(
+            @RequestBody @Valid PayOrderForm form
+    ) {
+        PayOrderForm result = orderService.saveForm(form);
+        return Result.success(result);
+    }
+
+    @Operation(summary = "订单表表单数据", security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/{id}/form")
+    public Result<PayOrderForm> getForm(
+            @Parameter(description = "订单表ID") @PathVariable Long id
+    ) {
+        PayOrderForm formData = orderService.getFormData(id);
+        return Result.success(formData);
+    }
+
+    @Operation(summary = "修改订单表", security = {@SecurityRequirement(name = "Authorization")})
+    @PutMapping(value = "/{id}")
+    @PreAuthorize("@ss.hasPerm('order:edit')")
+    public Result<?> updateForm(
+            @Parameter(description = "订单表ID") @PathVariable Long id,
+            @RequestBody @Validated PayOrderForm form) {
+
+        boolean result = orderService.updateForm(id,form);
+        return Result.judge(result);
+    }
+
+    @Operation(summary = "删除订单表", security = {@SecurityRequirement(name = "Authorization")})
+    @DeleteMapping("/{ids}")
+    @PreAuthorize("@ss.hasPerm('order:delete')")
+    public Result<?> deleteUsers(
+            @Parameter(description = "订单表ID,多个以英文逗号(,)分割") @PathVariable String ids
+    ) {
+        if(StrUtil.isBlank(ids)) {
+            return Result.failed(ResultCode.PARAM_ERROR, "删除的订单表数据为空");
+        }
+        // 逻辑删除
+        List<Long> idList = Arrays.asList(ids.split(",")).stream()
+                .map(idStr -> Long.parseLong(idStr)).collect(Collectors.toList());
+        boolean result = orderService.removeByIds(idList);
+        return Result.judge(result);
+    }
+
     /**
      * 根据code获取openId,session_key,用于支付
      * @param loginVO

+ 29 - 0
src/main/java/com/qmrb/system/converter/PayOrderConverter.java

@@ -0,0 +1,29 @@
+package com.qmrb.system.converter;
+
+import com.qmrb.system.pojo.entity.Order;
+import org.mapstruct.InheritInverseConfiguration;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.pojo.form.PayOrderForm;
+import com.qmrb.system.pojo.vo.PayOrderVO;
+
+/**
+ * 订单表数据项对象转换器
+ *
+ * @author gs
+ * @since 2025-02-28
+ */
+@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public interface PayOrderConverter {
+
+    Page<PayOrderVO> entity2Page(Page<Order> page);
+
+    PayOrderForm entity2Form(Order entity);
+
+    @InheritInverseConfiguration(name="entity2Form")
+    Order form2Entity(PayOrderForm form);
+    
+    PayOrderVO entity2Vo(Order entity);
+}

+ 66 - 0
src/main/java/com/qmrb/system/pojo/entity/Order.java

@@ -8,7 +8,9 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * <p>
@@ -55,5 +57,69 @@ public class Order implements Serializable {
     @TableField("pay_description")
     private String payDescription;
 
+    /**
+     * 商品类型 1-停车
+     */
+    @TableField("goods_type")
+    private String goodsType;
+
+    /**
+     * 商品名称,默认停车费
+     */
+    @TableField("goods_name")
+    private String goodsName;
+
+    /**
+     * 实付金额
+     */
+    @TableField("amount_actually_paid")
+    private BigDecimal amountActuallyPaid;
 
+    /**
+     * 支付时间
+     */
+    @TableField("pay_time")
+    private Date payTime;
+
+    /**
+     * 退款时间
+     */
+    @TableField("refund_time")
+    private Date refundTime;
+
+    /**
+     * 取消时间
+     */
+    @TableField("cancel_time")
+    private Date cancelTime;
+
+    /**
+     * 支付机构(缩写之类的)
+     */
+    @TableField("payment_agency_short_name")
+    private String paymentAgencyShortName;
+
+    /**
+     * 优惠券id
+     */
+    @TableField("coupon_id")
+    private Long couponId;
+
+    /**
+     * 优惠券抵扣的金额
+     */
+    @TableField("coupon_paid")
+    private BigDecimal couponPaid;
+
+    /**
+     * 商品ID/停车记录ID
+     */
+    @TableField("good_id")
+    private Long goodId;
+
+    /**
+     * 退款原始订单id
+     */
+    @TableField("refund_pid")
+    private Long refundPid;
 }

+ 102 - 0
src/main/java/com/qmrb/system/pojo/form/PayOrderForm.java

@@ -0,0 +1,102 @@
+package com.qmrb.system.pojo.form;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 订单表表单
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-28
+ */
+@Data
+public class PayOrderForm {
+
+    /**
+     * 本系统生成的订单
+     */
+	@Schema(description = "本系统生成的订单",type="Long")
+    private Long id;
+    /**
+     * 下单时间
+     */
+	@Schema(description = "下单时间",type="Date")
+    private Date orderTime;
+    /**
+     * 支付金额
+     */
+	@Schema(description = "支付金额",type="Integer")
+    private Integer amountsPayable;
+    /**
+     * 支付状态:0 未支付 1 已支付 2 退款中 3 已退款 4 退款失败
+     */
+	@Schema(description = "支付状态:0 未支付 1 已支付 2 退款中 3 已退款 4 退款失败",type="Integer")
+    private Integer payStatus;
+    /**
+     * 订单描述
+     */
+	@Schema(description = "订单描述",type="String")
+    private String payDescription;
+    /**
+     * 商品类型 1-停车
+     */
+	@Schema(description = "商品类型 1-停车",type="String")
+    private String goodsType;
+    /**
+     * 商品名称,默认停车费
+     */
+	@Schema(description = "商品名称,默认停车费",type="String")
+    private String goodsName;
+    /**
+     * 实付金额
+     */
+	@Schema(description = "实付金额",type="BigDecimal")
+    private BigDecimal amountActuallyPaid;
+    /**
+     * 支付时间
+     */
+	@Schema(description = "支付时间",type="Date")
+    private Date payTime;
+    /**
+     * 退款时间
+     */
+	@Schema(description = "退款时间",type="Date")
+    private Date refundTime;
+    /**
+     * 取消时间
+     */
+	@Schema(description = "取消时间",type="Date")
+    private Date cancelTime;
+    /**
+     * 支付机构(缩写之类的)
+     */
+	@Schema(description = "支付机构(缩写之类的)",type="String")
+    private String paymentAgencyShortName;
+    /**
+     * 优惠券id
+     */
+	@Schema(description = "优惠券id",type="Long")
+    private Long couponId;
+    /**
+     * 优惠券抵扣的金额
+     */
+	@Schema(description = "优惠券抵扣的金额",type="BigDecimal")
+    private BigDecimal couponPaid;
+    /**
+     * 商品ID/停车记录ID
+     */
+	@Schema(description = "商品ID/停车记录ID",type="Long")
+    private Long goodId;
+    /**
+     * 退款原始订单id
+     */
+	@Schema(description = "退款原始订单id",type="Long")
+    private Long refundPid;
+
+
+}

+ 5 - 0
src/main/java/com/qmrb/system/pojo/query/BarnRecordQuery.java

@@ -29,6 +29,11 @@ public class BarnRecordQuery extends BasePageQuery{
     private String placeNo;
     private String carNumber;
     private Long carParkId;
+    
+    private String intimeBegin;
+    private String intimeEnd;
+    private String outTimeBegin;
+    private String outTimeEnd;
     /**
      * 车辆进入时间
      */

+ 108 - 0
src/main/java/com/qmrb/system/pojo/query/PayOrderQuery.java

@@ -0,0 +1,108 @@
+package com.qmrb.system.pojo.query;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.qmrb.system.common.base.BasePageQuery;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 订单表查询对象
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class PayOrderQuery extends BasePageQuery{
+
+ 	@Schema(description="关键字")
+    private String keywords;
+
+    /**
+     * 本系统生成的订单
+     */
+	@Schema(description = "本系统生成的订单",type="Long")
+    private Long id;
+    /**
+     * 下单时间
+     */
+	@Schema(description = "下单时间",type="Date")
+    private Date orderTime;
+    /**
+     * 支付金额
+     */
+	@Schema(description = "支付金额",type="Integer")
+    private Integer amountsPayable;
+    /**
+     * 支付状态:0 未支付 1 已支付 2 退款中 3 已退款 4 退款失败
+     */
+	@Schema(description = "支付状态:0 未支付 1 已支付 2 退款中 3 已退款 4 退款失败",type="Integer")
+    private Integer payStatus;
+    /**
+     * 订单描述
+     */
+	@Schema(description = "订单描述",type="String")
+    private String payDescription;
+    /**
+     * 商品类型 1-停车
+     */
+	@Schema(description = "商品类型 1-停车",type="String")
+    private String goodsType;
+    /**
+     * 商品名称,默认停车费
+     */
+	@Schema(description = "商品名称,默认停车费",type="String")
+    private String goodsName;
+    /**
+     * 实付金额
+     */
+	@Schema(description = "实付金额",type="BigDecimal")
+    private BigDecimal amountActuallyPaid;
+    /**
+     * 支付时间
+     */
+	@Schema(description = "支付时间",type="Date")
+    private Date payTime;
+    /**
+     * 退款时间
+     */
+	@Schema(description = "退款时间",type="Date")
+    private Date refundTime;
+    /**
+     * 取消时间
+     */
+	@Schema(description = "取消时间",type="Date")
+    private Date cancelTime;
+    /**
+     * 支付机构(缩写之类的)
+     */
+	@Schema(description = "支付机构(缩写之类的)",type="String")
+    private String paymentAgencyShortName;
+    /**
+     * 优惠券id
+     */
+	@Schema(description = "优惠券id",type="Long")
+    private Long couponId;
+    /**
+     * 优惠券抵扣的金额
+     */
+	@Schema(description = "优惠券抵扣的金额",type="BigDecimal")
+    private BigDecimal couponPaid;
+    /**
+     * 商品ID/停车记录ID
+     */
+	@Schema(description = "商品ID/停车记录ID",type="Long")
+    private Long goodId;
+    /**
+     * 退款原始订单id
+     */
+	@Schema(description = "退款原始订单id",type="Long")
+    private Long refundPid;
+
+
+}

+ 2 - 2
src/main/java/com/qmrb/system/pojo/vo/BarnRecordVO.java

@@ -31,7 +31,7 @@ public class BarnRecordVO {
      * 车辆进入时间
      */
 	@Schema(description = "车辆进入时间",type="Date")
-    @JsonFormat(pattern = "yyyy-MM-DD HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date inTime;
     /**
      * 进场图片
@@ -47,7 +47,7 @@ public class BarnRecordVO {
      * 车辆出场时间
      */
 	@Schema(description = "车辆出场时间",type="Date")
-    @JsonFormat(pattern = "yyyy-MM-DD HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date outTime;
     /**
      * 出口ID

+ 105 - 0
src/main/java/com/qmrb/system/pojo/vo/PayOrderVO.java

@@ -0,0 +1,105 @@
+package com.qmrb.system.pojo.vo;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * <p>
+ * 订单表视图对象
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-28
+ */
+@Data
+public class PayOrderVO {
+
+    /**
+     * 本系统生成的订单
+     */
+	@Schema(description = "本系统生成的订单",type="Long")
+    private Long id;
+    /**
+     * 下单时间
+     */
+	@Schema(description = "下单时间",type="Date")
+    private Date orderTime;
+    /**
+     * 支付金额
+     */
+	@Schema(description = "支付金额",type="Integer")
+    private Integer amountsPayable;
+    /**
+     * 支付状态:0 未支付 1 已支付 2 退款中 3 已退款 4 退款失败
+     */
+	@Schema(description = "支付状态:0 未支付 1 已支付 2 退款中 3 已退款 4 退款失败",type="Integer")
+    private Integer payStatus;
+    /**
+     * 订单描述
+     */
+	@Schema(description = "订单描述",type="String")
+    private String payDescription;
+    /**
+     * 商品类型 1-停车
+     */
+	@Schema(description = "商品类型 1-停车",type="String")
+    private String goodsType;
+    /**
+     * 商品名称,默认停车费
+     */
+	@Schema(description = "商品名称,默认停车费",type="String")
+    private String goodsName;
+    /**
+     * 实付金额
+     */
+	@Schema(description = "实付金额",type="BigDecimal")
+    private BigDecimal amountActuallyPaid;
+    /**
+     * 支付时间
+     */
+	@Schema(description = "支付时间",type="Date")
+    private Date payTime;
+    /**
+     * 退款时间
+     */
+	@Schema(description = "退款时间",type="Date")
+    private Date refundTime;
+    /**
+     * 取消时间
+     */
+	@Schema(description = "取消时间",type="Date")
+    private Date cancelTime;
+    /**
+     * 支付机构(缩写之类的)
+     */
+	@Schema(description = "支付机构(缩写之类的)",type="String")
+    private String paymentAgencyShortName;
+    /**
+     * 优惠券id
+     */
+	@Schema(description = "优惠券id",type="Long")
+    private Long couponId;
+    /**
+     * 优惠券抵扣的金额
+     */
+	@Schema(description = "优惠券抵扣的金额",type="BigDecimal")
+    private BigDecimal couponPaid;
+    /**
+     * 商品ID/停车记录ID
+     */
+	@Schema(description = "商品ID/停车记录ID",type="Long")
+    private Long goodId;
+    /**
+     * 退款原始订单id
+     */
+	@Schema(description = "退款原始订单id",type="Long")
+    private Long refundPid;
+
+	@Schema(description = "子分类")
+    private List<PayOrderVO> children;
+
+
+}

+ 21 - 0
src/main/java/com/qmrb/system/service/OrderService.java

@@ -1,11 +1,16 @@
 package com.qmrb.system.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmrb.system.pojo.entity.Order;
 import com.qmrb.system.pojo.entity.ToolWxConfig;
+import com.qmrb.system.pojo.form.PayOrderForm;
+import com.qmrb.system.pojo.query.PayOrderQuery;
+import com.qmrb.system.pojo.vo.PayOrderVO;
 import com.qmrb.system.pojo.vo.ReCreateOrderVO;
 import com.qmrb.system.pojo.vo.ToCreateOrderVO;
 import com.qmrb.system.pojo.vo.WxLoginVO;
+import jakarta.validation.Valid;
 
 /**
  * <p>
@@ -16,6 +21,22 @@ import com.qmrb.system.pojo.vo.WxLoginVO;
  * @since 2023-07-28
  */
 public interface OrderService extends IService<Order> {
+    /**分页查询
+     * */
+    public Page<PayOrderVO> getPage(PayOrderQuery queryParams);
+
+    /**
+     * 保存表单
+     * */
+    public PayOrderForm saveForm(@Valid PayOrderForm form);
+
+    /**更新
+     * */
+    public boolean updateForm(Long id, PayOrderForm form);
+
+    /**获取表单数据
+     * */
+    public PayOrderForm getFormData(Long id);
     /**
      * 根据code获取openId
      * @param wxConfig

+ 5 - 0
src/main/java/com/qmrb/system/service/impl/BarnRecordServiceImpl.java

@@ -75,6 +75,11 @@ public class BarnRecordServiceImpl extends ServiceImpl<BarnRecordMapper, BarnRec
 		if (StrUtil.isNotBlank(queryParams.getCarNumber())) {
 			queryWrapper.eq(BarnRecord::getCarNumber,queryParams.getCarNumber());
 		}
+		queryWrapper.ge(StrUtil.isNotBlank(queryParams.getIntimeBegin()),BarnRecord::getInTime,queryParams.getIntimeBegin())
+				.le(StrUtil.isNotBlank(queryParams.getIntimeEnd()),BarnRecord::getInTime,queryParams.getIntimeEnd());
+		queryWrapper.ge(StrUtil.isNotBlank(queryParams.getOutTimeBegin()),BarnRecord::getOutTime,queryParams.getOutTimeBegin())
+				.le(StrUtil.isNotBlank(queryParams.getOutTimeEnd()),BarnRecord::getOutTime,queryParams.getOutTimeEnd());
+		
 		queryWrapper.orderByDesc(BarnRecord::getCreateTime);
         // 查询数据
         Page<BarnRecord> dictItemPage = this.page(

+ 69 - 0
src/main/java/com/qmrb/system/service/impl/OrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmrb.system.service.impl;
 
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.Assert;
 import cn.hutool.core.text.StrFormatter;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
@@ -8,15 +9,21 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.qmrb.system.converter.PayOrderConverter;
 import com.qmrb.system.mapper.OrderMapper;
 import com.qmrb.system.pojo.entity.Order;
 import com.qmrb.system.pojo.entity.ToolWxConfig;
+import com.qmrb.system.pojo.form.PayOrderForm;
+import com.qmrb.system.pojo.query.PayOrderQuery;
+import com.qmrb.system.pojo.vo.PayOrderVO;
 import com.qmrb.system.pojo.vo.ReCreateOrderVO;
 import com.qmrb.system.pojo.vo.ToCreateOrderVO;
 import com.qmrb.system.pojo.vo.WxLoginVO;
@@ -29,6 +36,7 @@ import com.qmrb.system.wxpayback.constant.wxpay.WXOrderConstant;
 import com.qmrb.system.wxpayback.constant.wxpay.WechatPayHttpHeaders;
 import com.qmrb.system.wxpayback.exception.ApiException;
 import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
+import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
@@ -36,6 +44,7 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.util.EntityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.ByteArrayInputStream;
@@ -65,6 +74,66 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     private final ReentrantLock reentrantLock2 = new ReentrantLock();
 
+
+    @Autowired
+    private PayOrderConverter converter;
+
+    /**分页查询
+     * */
+    @Override
+    public Page<PayOrderVO> getPage(PayOrderQuery queryParams) {
+        // 查询参数
+        int pageNum = queryParams.getPageNum();
+        int pageSize = queryParams.getPageSize();
+        //String keywords = queryParams.getKeywords();
+
+        // 查询数据
+        Page<Order> dictItemPage = this.page(
+                new Page<>(pageNum, pageSize),
+                new LambdaQueryWrapper<Order>()
+                //.like(StrUtil.isNotBlank(keywords), PayOrder::getCategoryName, keywords)
+        );
+
+        // 实体转换
+        Page<PayOrderVO> pageResult = converter.entity2Page(dictItemPage);
+        return pageResult;
+    }
+
+    /**
+     * 保存表单
+     * */
+    @Override
+    public PayOrderForm saveForm(@Valid PayOrderForm form) {
+        // 实体对象转换 form->entity
+        Order entity = converter.form2Entity(form);
+        // 持久化
+        this.save(entity);
+        PayOrderForm result = converter.entity2Form(entity);
+        return result;
+    }
+
+    /**更新
+     * */
+    @Override
+    public boolean updateForm(Long id, PayOrderForm form) {
+        Order entity = converter.form2Entity(form);
+        entity.setId(id);
+        boolean result = this.updateById(entity);
+        return result;
+    }
+
+    /**获取表单数据
+     * */
+    @Override
+    public PayOrderForm getFormData(Long id) {
+        // 获取entity
+        Order entity = this.getById(id);
+        Assert.isTrue(entity != null, "订单表不存在");
+
+        // 实体转换
+        PayOrderForm form = converter.entity2Form(entity);
+        return form;
+    }
     /**
      * 调用微信支付 get请求 统一配置
      *要微信签名认证

+ 19 - 0
src/main/java/com/qmrb/system/utils/Test.java

@@ -0,0 +1,19 @@
+package com.qmrb.system.utils;
+
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+
+import java.util.Date;
+
+public class Test {
+    public static void main(String[] args) {
+        String dateStr1 = "2017-03-01 22:33:23";
+        Date date1 = DateUtil.parse(dateStr1);
+
+        String dateStr2 = "2017-04-01 20:33:33";
+        Date date2 = DateUtil.parse(dateStr2);
+        long between = DateUtil.between(date1, date2, DateUnit.DAY);
+        System.out.println("between = " + between);
+    }
+    
+}