maven
10 小时以前 834e3231b9ca0e5a5f43f55ce2675ace9e90dd4e
yys  支付与发货管理接口开发
已修改1个文件
已添加7个文件
305 ■■■■■ 文件已修改
src/main/java/com/ruoyi/common/utils/OrderUtils.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/mapper/PaymentShippingMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/pojo/PaymentShipping.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/PaymentShippingService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/PaymentShippingServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/PaymentShippingMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 {
    /**
     * æŸ¥è¯¢å½“天(基于createTime字段)的记录数量
     * @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
        );
        // è½¬æ¢ä¸ºDate类型(如果实体类中createTime是LocalDateTime可直接使用)
        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 + æ—¶é—´ï¼ˆyyyyMMdd) + è®¢å•数量(001)
        return preFix + LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE).replaceAll("-", "") + String.format("%03d", (aLong + 1));}
}
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("请传入要删除的ID");
        }
        return AjaxResult.success(paymentShippingService.removeByIds(ids));
    }
}
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("请传入要删除的ID");
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);
}
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;
}
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);
}
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;
    }
}
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>