From 834e3231b9ca0e5a5f43f55ce2675ace9e90dd4e Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 16 九月 2025 16:21:00 +0800
Subject: [PATCH] yys 支付与发货管理接口开发
---
src/main/resources/mapper/sales/PaymentShippingMapper.xml | 19 +++
src/main/java/com/ruoyi/sales/pojo/PaymentShipping.java | 83 +++++++++++++
src/main/java/com/ruoyi/sales/service/PaymentShippingService.java | 22 +++
src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java | 70 +++++++++++
src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java | 4
src/main/java/com/ruoyi/common/utils/OrderUtils.java | 55 +++++++++
src/main/java/com/ruoyi/sales/mapper/PaymentShippingMapper.java | 23 +++
src/main/java/com/ruoyi/sales/service/impl/PaymentShippingServiceImpl.java | 29 ++++
8 files changed, 305 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/common/utils/OrderUtils.java b/src/main/java/com/ruoyi/common/utils/OrderUtils.java
new file mode 100644
index 0000000..42c154d
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/utils/OrderUtils.java
@@ -0,0 +1,55 @@
+package com.ruoyi.common.utils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.poi.ss.formula.functions.T;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author :yys
+ * @date : 2025/9/15 15:31
+ */
+public class OrderUtils {
+
+
+ /**
+ * 鏌ヨ褰撳ぉ锛堝熀浜巆reateTime瀛楁锛夌殑璁板綍鏁伴噺
+ * @param mapper 瀹炰綋绫诲搴旂殑BaseMapper
+ * @param <T> 瀹炰綋绫绘硾鍨�
+ * @return 褰撳ぉ璁板綍鏁伴噺
+ */
+ public static <T> String countTodayByCreateTime(BaseMapper<T> mapper,String preFix) {
+ // 鑾峰彇褰撳ぉ寮�濮嬫椂闂达紙00:00:00锛�
+ LocalDateTime todayStart = LocalDateTime.of(
+ LocalDateTime.now().toLocalDate(),
+ LocalTime.MIN
+ );
+ // 鑾峰彇褰撳ぉ缁撴潫鏃堕棿锛�23:59:59.999锛�
+ LocalDateTime todayEnd = LocalDateTime.of(
+ LocalDateTime.now().toLocalDate(),
+ LocalTime.MAX
+ );
+
+ // 杞崲涓篋ate绫诲瀷锛堝鏋滃疄浣撶被涓璫reateTime鏄疞ocalDateTime鍙洿鎺ヤ娇鐢級
+ Date startDate = Date.from(todayStart.atZone(ZoneId.systemDefault()).toInstant());
+ Date endDate = Date.from(todayEnd.atZone(ZoneId.systemDefault()).toInstant());
+
+ // 鏋勫缓鏌ヨ鏉′欢
+ QueryWrapper<T> queryWrapper = new QueryWrapper<>();
+ queryWrapper.ge("create_time", startDate) // 澶т簬绛変簬褰撳ぉ寮�濮�
+ .lt("create_time", endDate); // 灏忎簬褰撳ぉ缁撴潫锛堥伩鍏嶆绉掔簿搴﹂棶棰橈級
+
+ // 鎵ц鏌ヨ
+ Long aLong = mapper.selectCount(queryWrapper);
+ // 鎷兼帴璁㈠崟缂栧彿 preFix + 鏃堕棿锛坹yyyMMdd锛� + 璁㈠崟鏁伴噺(001)
+ return preFix + LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE).replaceAll("-", "") + String.format("%03d", (aLong + 1));}
+}
diff --git a/src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java b/src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java
new file mode 100644
index 0000000..c67d438
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java
@@ -0,0 +1,70 @@
+package com.ruoyi.sales.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.sales.mapper.PaymentShippingMapper;
+import com.ruoyi.sales.pojo.PaymentShipping;
+import com.ruoyi.sales.service.PaymentShippingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/9/15 14:02
+ */
+@RestController
+@RequestMapping("/paymentShipping")
+@Api(tags = "鏀粯涓庡彂璐х鐞�")
+public class PaymentShippingController extends BaseController {
+
+ @Autowired
+ private PaymentShippingService paymentShippingService;
+
+ @Autowired
+ private PaymentShippingMapper paymentShippingMapper;
+
+ @GetMapping("/listPage")
+ @ApiOperation("鍒嗛〉鏌ヨ鏀粯涓庡彂璐т俊鎭�")
+ public AjaxResult listPage(Page page, PaymentShipping paymentShipping) {
+ IPage<PaymentShipping> listPage = paymentShippingService.listPage(page, paymentShipping);
+ return AjaxResult.success(listPage);
+ }
+
+ @PostMapping("/add")
+ @ApiOperation("娣诲姞鏀粯涓庡彂璐т俊鎭�")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult add(@RequestBody PaymentShipping paymentShipping) {
+ String ord = OrderUtils.countTodayByCreateTime(paymentShippingMapper, "ORD");
+ paymentShipping.setOrderNo(ord);
+ boolean save = paymentShippingService.save(paymentShipping);
+ return save ? success() : error();
+ }
+
+ @PostMapping("/update")
+ @ApiOperation("淇敼鏀粯涓庡彂璐т俊鎭�")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult update(@RequestBody PaymentShipping paymentShipping) {
+ boolean update = paymentShippingService.updateById(paymentShipping);
+ return update ? success() : error();
+ }
+
+ @DeleteMapping("/delete")
+ @ApiOperation("鍒犻櫎鏀粯涓庡彂璐т俊鎭�")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult delete(@RequestBody List<Long> ids){
+ if (CollectionUtils.isEmpty(ids)){
+ return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+ }
+ return AjaxResult.success(paymentShippingService.removeByIds(ids));
+ }
+
+}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java b/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java
index 1ef4955..7d40587 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java
@@ -10,6 +10,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -36,6 +37,7 @@
@PostMapping("/add")
@ApiOperation("娣诲姞涓氬姟鍛樹俊鎭�")
+ @Transactional(rollbackFor = Exception.class)
public AjaxResult add(@RequestBody SalespersonManagement salespersonManagement) {
boolean save = salespersonManagementService.save(salespersonManagement);
return save ? AjaxResult.success() : AjaxResult.error();
@@ -43,6 +45,7 @@
@PostMapping("/update")
@ApiOperation("淇敼涓氬姟鍛樹俊鎭�")
+ @Transactional(rollbackFor = Exception.class)
public AjaxResult update(@RequestBody SalespersonManagement salespersonManagement) {
boolean update = salespersonManagementService.updateById(salespersonManagement);
return update ? AjaxResult.success() : AjaxResult.error();
@@ -50,6 +53,7 @@
@DeleteMapping("/delete")
@ApiOperation("鍒犻櫎涓氬姟鍛樹俊鎭�")
+ @Transactional(rollbackFor = Exception.class)
public AjaxResult delete(@RequestBody List<Long> ids) {
if (ids == null || ids.isEmpty()) {
return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
diff --git a/src/main/java/com/ruoyi/sales/mapper/PaymentShippingMapper.java b/src/main/java/com/ruoyi/sales/mapper/PaymentShippingMapper.java
new file mode 100644
index 0000000..df9bde4
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/mapper/PaymentShippingMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.sales.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.sales.pojo.PaymentShipping;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author :yys
+ * @date : 2025/9/15 14:00
+ */
+public interface PaymentShippingMapper extends BaseMapper<PaymentShipping> {
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param page
+ * @param paymentShipping
+ * @return
+ */
+ IPage<PaymentShipping> listPage(Page page,@Param("req") PaymentShipping paymentShipping);
+}
diff --git a/src/main/java/com/ruoyi/sales/pojo/PaymentShipping.java b/src/main/java/com/ruoyi/sales/pojo/PaymentShipping.java
new file mode 100644
index 0000000..17a691c
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/pojo/PaymentShipping.java
@@ -0,0 +1,83 @@
+package com.ruoyi.sales.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/9/15 13:56
+ */
+@TableName(value = "payment_shipping")
+@Data
+@ApiModel
+public class PaymentShipping {
+
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 搴忓彿
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty(value = "璁㈠崟鍙�")
+ private String orderNo;
+
+ @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
+ private String customer;
+
+ @ApiModelProperty(value = "璁㈠崟閲戦")
+ private String orderAmount;
+
+ @ApiModelProperty(value = "宸蹭粯娆鹃噾棰�")
+ private String paidAmount;
+
+ @ApiModelProperty(value = "浠樻鏂瑰紡")
+ private String paymentMethod;
+
+ @ApiModelProperty(value = "浠樻鐘舵��")
+ private String paymentStatus;
+
+ @ApiModelProperty(value = "鍙戣揣鐘舵��")
+ private String shippingStatus;
+
+ @ApiModelProperty(value = "鍙戣揣鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date shippingDate;
+
+ @ApiModelProperty(value = "鐗╂祦鍗曞彿")
+ private String trackingNo;
+
+ @ApiModelProperty(value = "澶囨敞")
+ private String remark;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/sales/service/PaymentShippingService.java b/src/main/java/com/ruoyi/sales/service/PaymentShippingService.java
new file mode 100644
index 0000000..31848ae
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/PaymentShippingService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.sales.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.sales.pojo.PaymentShipping;
+
+/**
+ * @author :yys
+ * @date : 2025/9/15 14:01
+ */
+public interface PaymentShippingService extends IService<PaymentShipping> {
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param page
+ * @param paymentShipping
+ * @return
+ */
+ IPage<PaymentShipping> listPage(Page page, PaymentShipping paymentShipping);
+}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/PaymentShippingServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/PaymentShippingServiceImpl.java
new file mode 100644
index 0000000..067022a
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/service/impl/PaymentShippingServiceImpl.java
@@ -0,0 +1,29 @@
+package com.ruoyi.sales.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.sales.mapper.PaymentShippingMapper;
+import com.ruoyi.sales.pojo.PaymentShipping;
+import com.ruoyi.sales.service.PaymentShippingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author :yys
+ * @date : 2025/9/15 14:01
+ */
+@Service
+@Slf4j
+public class PaymentShippingServiceImpl extends ServiceImpl<PaymentShippingMapper, PaymentShipping> implements PaymentShippingService {
+
+ @Autowired
+ private PaymentShippingMapper paymentShippingMapper;
+
+ @Override
+ public IPage<PaymentShipping> listPage(Page page, PaymentShipping paymentShipping) {
+ IPage<PaymentShipping> listPage = paymentShippingMapper.listPage(page, paymentShipping);
+ return listPage;
+ }
+}
diff --git a/src/main/resources/mapper/sales/PaymentShippingMapper.xml b/src/main/resources/mapper/sales/PaymentShippingMapper.xml
new file mode 100644
index 0000000..749c8ba
--- /dev/null
+++ b/src/main/resources/mapper/sales/PaymentShippingMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.sales.mapper.PaymentShippingMapper">
+
+ <select id="listPage" resultType="com.ruoyi.sales.pojo.PaymentShipping">
+ select * from payment_shipping
+ <where>
+ <if test="req.orderNo != null and req.orderNo != ''">
+ and order_no like concat('%',#{req.orderNo},'%')
+ </if>
+ <if test="req.paymentStatus != null and req.paymentStatus != ''">
+ and payment_status = #{req.paymentStatus}
+ </if>
+ <if test="req.shippingStatus != null and req.shippingStatus != ''">
+ and shipping_status = #{req.shippingStatus}
+ </if>
+ </where>
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3