chenrui
4 天以前 b750b7fac8d95071226af215c5cb0e3d3f053e44
客户信息功能开发
已修改1个文件
已添加7个文件
269 ■■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/CustomerController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/entity/Customer.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/CustomerMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/CustomerService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/CustomerMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/PlusCodeGenerator.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/resources/db/migration/postgresql/V20250530171701__create_table_customer.sql 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CustomerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.basic.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import lombok.AllArgsConstructor;
    import org.springframework.web.bind.annotation.RestController;
/**
* <p>
    *  å‰ç«¯æŽ§åˆ¶å™¨
    * </p>
*
* @author ruoyi
* @since 2025-06-03
*/
@RestController
@AllArgsConstructor
@RequestMapping("/basic/customer")
        public class CustomerController {
    }
basic-server/src/main/java/com/ruoyi/basic/entity/Customer.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
    import com.ruoyi.common.core.domain.BaseEntity;
/**
*  å®žä½“ç±»
*
* @author ruoyi
* @date 2025-06-03
*/
@Data
@TableName("customer")
public class Customer extends BaseEntity {
private static final long serialVersionUID = 1L;
        /**
        * å®¢æˆ·å”¯ä¸€æ ‡è¯†ï¼Œä¸»é”®
        */
            @TableId(value = "id", type = IdType.AUTO)
        private Long id;
        /**
        * å®¢æˆ·åç§°ï¼Œä¸èƒ½ä¸ºç©º
        */
            @TableField(value = "customer_name")
        private String customerName;
        /**
        * çº³ç¨Žäººè¯†åˆ«å·ï¼Œä¸­å›½å¤§é™†ä¸ºç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç ï¼Œä¸èƒ½ä¸ºç©º
        */
            @TableField(value = "taxpayer_id")
        private String taxpayerId;
        /**
        * ç»è¥åœ°å€æ‰€åœ¨çœä»½çš„地区ID,默认0
        */
            @TableField(value = "business_province_id")
        private Long businessProvinceId;
        /**
        * ç»è¥åœ°å€æ‰€åœ¨åŸŽå¸‚的地区ID,默认0
        */
            @TableField(value = "business_city_id")
        private Long businessCityId;
        /**
        * ç»è¥åœ°å€æ‰€åœ¨åŒºåŽ¿çš„åœ°åŒºID,默认0
        */
            @TableField(value = "business_district_id")
        private Long businessDistrictId;
        /**
        * ç»è¥è¯¦ç»†åœ°å€ï¼Œé»˜è®¤ç©ºå­—符串
        */
            @TableField(value = "business_address")
        private String businessAddress;
        /**
        * é“¶è¡Œè´¦æˆ·å·ç ï¼Œé»˜è®¤ç©ºå­—符串
        */
            @TableField(value = "bank_account")
        private String bankAccount;
        /**
        * å¼€æˆ·é“¶è¡Œåç§°ï¼Œé»˜è®¤ç©ºå­—符串
        */
            @TableField(value = "bank_name")
        private String bankName;
        /**
        * å®¢æˆ·è”系人姓名,默认空字符串
        */
            @TableField(value = "contact_person")
        private String contactPerson;
        /**
        * è”系人电话号码,默认空字符串
        */
            @TableField(value = "contact_phone")
        private String contactPhone;
        /**
        * è”系地址所在省份的地区ID,默认0
        */
            @TableField(value = "province_id")
        private Long provinceId;
        /**
        * è”系地址所在城市的地区ID,默认0
        */
            @TableField(value = "city_id")
        private Long cityId;
        /**
        * è”系地址所在区县的地区ID,默认0
        */
            @TableField(value = "district_id")
        private Long districtId;
        /**
        * è”系详细地址,默认空字符串
        */
            @TableField(value = "contact_address")
        private String contactAddress;
        /**
        * åˆ›å»ºè¯¥è®°å½•的用户ID,默认0
        */
            @TableField(value = "create_user")
        private Long createUser;
        /**
        * æœ€åŽä¿®æ”¹è¯¥è®°å½•的用户ID,默认0
        */
            @TableField(value = "update_user")
        private Long updateUser;
}
basic-server/src/main/java/com/ruoyi/basic/mapper/CustomerMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.basic.entity.Customer;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-03
 */
@Mapper
public interface CustomerMapper extends BaseMapper<Customer> {
}
basic-server/src/main/java/com/ruoyi/basic/service/CustomerService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.ruoyi.basic.service;
import com.ruoyi.basic.entity.Customer;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-03
 */
public interface CustomerService extends IService<Customer> {
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.basic.service.impl;
import com.ruoyi.basic.entity.Customer;
import com.ruoyi.basic.mapper.CustomerMapper;
    import com.ruoyi.basic.service.CustomerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
/**
* <p>
    *  æœåŠ¡å®žçŽ°ç±»
    * </p>
*
* @author ruoyi
* @since 2025-06-03
*/
@Service
@RequiredArgsConstructor
    public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> implements CustomerService {
    }
basic-server/src/main/resources/mapper/CustomerMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
<?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.basic.mapper.CustomerMapper">
        <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
        <resultMap id="BaseResultMap" type="com.ruoyi.basic.entity.Customer">
                    <id column="id" property="id" />
                <result column="create_time" property="createTime" />
                <result column="update_time" property="updateTime" />
                <result column="deleted" property="deleted" />
                    <result column="customer_name" property="customerName" />
                    <result column="taxpayer_id" property="taxpayerId" />
                    <result column="business_province_id" property="businessProvinceId" />
                    <result column="business_city_id" property="businessCityId" />
                    <result column="business_district_id" property="businessDistrictId" />
                    <result column="business_address" property="businessAddress" />
                    <result column="bank_account" property="bankAccount" />
                    <result column="bank_name" property="bankName" />
                    <result column="contact_person" property="contactPerson" />
                    <result column="contact_phone" property="contactPhone" />
                    <result column="province_id" property="provinceId" />
                    <result column="city_id" property="cityId" />
                    <result column="district_id" property="districtId" />
                    <result column="contact_address" property="contactAddress" />
                    <result column="create_user" property="createUser" />
                    <result column="update_user" property="updateUser" />
        </resultMap>
        <!-- é€šç”¨æŸ¥è¯¢ç»“果列 -->
        <sql id="Base_Column_List">
                create_time,
                update_time,
                deleted,
            id, customer_name, taxpayer_id, business_province_id, business_city_id, business_district_id, business_address, bank_account, bank_name, contact_person, contact_phone, province_id, city_id, district_id, contact_address, create_user, update_user
        </sql>
</mapper>
ruoyi-admin/src/main/java/com/ruoyi/PlusCodeGenerator.java
@@ -38,8 +38,8 @@
    public static void main(String[] args) {
        String projectPath = System.getProperty("user.dir"); // èŽ·å–é¡¹ç›®æ ¹è·¯å¾„
        String path = "ruoyi-common"; // æ¨¡å—名称
        String table = "storage_attachment"; // è¡¨åï¼Œå¤šä¸ªè¡¨é€—号隔开
        String path = "basic-server"; // æ¨¡å—名称
        String table = "customer"; // è¡¨åï¼Œå¤šä¸ªè¡¨é€—号隔开
        // ä»£ç è¾“出路径配置
        String outputBasePath = Paths.get(projectPath, path, "src", "main", "java").toString();
ruoyi-common/src/main/resources/db/migration/postgresql/V20250530171701__create_table_customer.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
DROP TABLE IF EXISTS customer;
CREATE TABLE customer
(
    id               BIGSERIAL PRIMARY KEY,
    customer_name    VARCHAR(255) NOT NULL,                             -- å®¢æˆ·åç§°
    taxpayer_id      VARCHAR(255) NOT NULL,                             -- çº³ç¨Žäººè¯†åˆ«å·
    business_province_id      INT8       NOT NULL    DEFAULT 0,         -- ç»è¥åœ°å€çœ
    business_city_id          INT8       NOT NULL    DEFAULT 0,         -- ç»è¥åœ°å€å¸‚
    business_district_id      INT8       NOT NULL    DEFAULT 0,         -- ç»è¥åœ°å€åŒº
    business_address VARCHAR(255) NOT NULL    DEFAULT '',               -- ç»è¥è¯¦ç»†åœ°å€
    bank_account     VARCHAR(255) NOT NULL    DEFAULT '',               -- é“¶è¡Œè´¦å·
    bank_name        VARCHAR(255) NOT NULL    DEFAULT '',               -- å¼€æˆ·è¡Œ
    contact_person   VARCHAR(255) NOT NULL    DEFAULT '',               -- è”系人
    contact_phone    VARCHAR(255) NOT NULL    DEFAULT '',               -- è”系人电话
    province_id      INT8         NOT NULL    DEFAULT 0,                -- è”系地址省
    city_id          INT8       NOT NULL    DEFAULT 0,                  -- è”系地址市
    district_id      INT8       NOT NULL    DEFAULT 0,                  -- è”系地址区
    contact_address  VARCHAR(255) NOT NULL    DEFAULT '',               -- è”系详细地址
    create_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,-- åˆ›å»ºæ—¶é—´
    update_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,-- ä¿®æ”¹æ—¶é—´
    create_user      INT8       NOT NULL    ,                           -- åˆ›å»ºç”¨æˆ·
    update_user      INT8       NOT NULL    ,                           -- ä¿®æ”¹ç”¨æˆ·
    deleted          INT2         NOT NULL    DEFAULT 0                 -- åˆ é™¤æ ‡è®° 0未删除 1已删除
);
COMMENT ON COLUMN customer.id IS '客户唯一标识,主键';
COMMENT ON COLUMN customer.customer_name IS '客户名称,不能为空';
COMMENT ON COLUMN customer.taxpayer_id IS '纳税人识别号,中国大陆为统一社会信用代码,不能为空';
COMMENT ON COLUMN customer.business_province_id IS '经营地址所在省份的地区ID,默认0';
COMMENT ON COLUMN customer.business_city_id IS '经营地址所在城市的地区ID,默认0';
COMMENT ON COLUMN customer.business_district_id IS '经营地址所在区县的地区ID,默认0';
COMMENT ON COLUMN customer.business_address IS '经营详细地址,默认空字符串';
COMMENT ON COLUMN customer.bank_account IS '银行账户号码,默认空字符串';
COMMENT ON COLUMN customer.bank_name IS '开户银行名称,默认空字符串';
COMMENT ON COLUMN customer.contact_person IS '客户联系人姓名,默认空字符串';
COMMENT ON COLUMN customer.contact_phone IS '联系人电话号码,默认空字符串';
COMMENT ON COLUMN customer.province_id IS '联系地址所在省份的地区ID,默认0';
COMMENT ON COLUMN customer.city_id IS '联系地址所在城市的地区ID,默认0';
COMMENT ON COLUMN customer.district_id IS '联系地址所在区县的地区ID,默认0';
COMMENT ON COLUMN customer.contact_address IS '联系详细地址,默认空字符串';
COMMENT ON COLUMN customer.create_time IS '记录创建时间,默认当前时间';
COMMENT ON COLUMN customer.update_time IS '记录最后修改时间,默认当前时间';
COMMENT ON COLUMN customer.create_user IS '创建该记录的用户ID,默认0';
COMMENT ON COLUMN customer.update_user IS '最后修改该记录的用户ID,默认0';
COMMENT ON COLUMN customer.deleted IS '软删除标志,0=未删除,1=已删除';