WEB:客户管理

This commit is contained in:
2025-07-03 11:39:49 +08:00
parent abe9dc2fe8
commit b06e071196
11 changed files with 51 additions and 47 deletions

View File

@ -214,6 +214,8 @@ springdoc:
packages-to-scan: com.fuyuanshen.workflow packages-to-scan: com.fuyuanshen.workflow
- group: 设备管理模块 - group: 设备管理模块
packages-to-scan: com.fuyuanshen.equipment packages-to-scan: com.fuyuanshen.equipment
- group: 客户管理模块
packages-to-scan: com.fuyuanshen.customer
# 防止XSS攻击 # 防止XSS攻击
xss: xss:

View File

@ -18,7 +18,7 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class PageResult<T> implements Serializable { public class PageResult<T> implements Serializable {
private List<T> content; private List<T> rows;
private long totalElements; private long total;
} }

View File

@ -1,14 +1,14 @@
package com.fuyuanshen.fyscustomer.controller; package com.fuyuanshen.customer.controller;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.core.domain.ResponseVO; import com.fuyuanshen.common.core.domain.ResponseVO;
import com.fuyuanshen.common.core.utils.StringUtils; import com.fuyuanshen.common.core.utils.StringUtils;
import com.fuyuanshen.fyscustomer.domain.Customer; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.fyscustomer.domain.query.UserQueryCriteria; import com.fuyuanshen.customer.domain.Customer;
import com.fuyuanshen.fyscustomer.domain.vo.ConsumerVo; import com.fuyuanshen.customer.domain.query.UserQueryCriteria;
import com.fuyuanshen.fyscustomer.service.CustomerService; import com.fuyuanshen.customer.domain.vo.ConsumerVo;
import com.fuyuanshen.customer.service.CustomerService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.undertow.util.BadRequestException; import io.undertow.util.BadRequestException;
@ -42,10 +42,9 @@ public class CustomerController {
*/ */
@Operation(summary = "分页查询客户") @Operation(summary = "分页查询客户")
@GetMapping(value = "/customer") @GetMapping(value = "/customer")
public ResponseVO<PageResult<ConsumerVo>> queryCustomer(UserQueryCriteria criteria) { public TableDataInfo<ConsumerVo> queryCustomer(UserQueryCriteria criteria) {
Page<Customer> page = new Page<>(criteria.getPage(), criteria.getSize()); Page<Customer> page = new Page<>(criteria.getPageNum(), criteria.getPageSize());
PageResult<ConsumerVo> pageUsers = customerService.queryCustomers(criteria, page); return customerService.queryCustomers(criteria, page);
return ResponseVO.success(pageUsers);
} }

View File

@ -1,4 +1,4 @@
package com.fuyuanshen.fyscustomer.domain; package com.fuyuanshen.customer.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fuyuanshen.common.core.constant.SystemConstants; import com.fuyuanshen.common.core.constant.SystemConstants;
@ -100,6 +100,10 @@ public class Customer extends TenantEntity {
@TableLogic @TableLogic
private String delFlag; private String delFlag;
@NotNull
@Schema(name = "是否启用")
private Boolean enabled;
/** /**
* 最后登录IP * 最后登录IP
*/ */

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.fuyuanshen.fyscustomer.domain.query; package com.fuyuanshen.customer.domain.query;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -56,10 +56,10 @@ public class UserQueryCriteria implements Serializable {
private List<Timestamp> createTime; private List<Timestamp> createTime;
@Schema(name = "页码", example = "1") @Schema(name = "页码", example = "1")
private Integer page = 1; private Integer pageNum = 1;
@Schema(name = "每页数据量", example = "10") @Schema(name = "每页数据量", example = "10")
private Integer size = 10; private Integer pageSize = 10;
@Schema(name = "偏移量", hidden = true) @Schema(name = "偏移量", hidden = true)
private long offset; private long offset;

View File

@ -1,4 +1,4 @@
package com.fuyuanshen.fyscustomer.domain.vo; package com.fuyuanshen.customer.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@ -9,7 +9,6 @@ import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
/** /**
* @author: 默苍璃 * @author: 默苍璃

View File

@ -1,8 +1,8 @@
package com.fuyuanshen.fyscustomer.mapper; package com.fuyuanshen.customer.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fuyuanshen.fyscustomer.domain.Customer; import com.fuyuanshen.customer.domain.Customer;
import com.fuyuanshen.fyscustomer.domain.query.UserQueryCriteria; import com.fuyuanshen.customer.domain.query.UserQueryCriteria;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;

View File

@ -1,10 +1,10 @@
package com.fuyuanshen.fyscustomer.service; package com.fuyuanshen.customer.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.fyscustomer.domain.Customer; import com.fuyuanshen.customer.domain.Customer;
import com.fuyuanshen.fyscustomer.domain.query.UserQueryCriteria; import com.fuyuanshen.customer.domain.query.UserQueryCriteria;
import com.fuyuanshen.fyscustomer.domain.vo.ConsumerVo; import com.fuyuanshen.customer.domain.vo.ConsumerVo;
import io.undertow.util.BadRequestException; import io.undertow.util.BadRequestException;
import java.util.List; import java.util.List;
@ -24,7 +24,7 @@ public interface CustomerService {
* @param page * @param page
* @return * @return
*/ */
PageResult<ConsumerVo> queryCustomers(UserQueryCriteria criteria, Page<Customer> page); TableDataInfo<ConsumerVo> queryCustomers(UserQueryCriteria criteria, Page<Customer> page);
/** /**

View File

@ -1,17 +1,16 @@
package com.fuyuanshen.fyscustomer.service.impl; package com.fuyuanshen.customer.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuyuanshen.common.core.domain.PageResult;
import com.fuyuanshen.common.core.domain.model.LoginUser; import com.fuyuanshen.common.core.domain.model.LoginUser;
import com.fuyuanshen.common.core.utils.PageUtil; import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.common.satoken.utils.LoginHelper;
import com.fuyuanshen.fyscustomer.domain.Customer; import com.fuyuanshen.customer.domain.Customer;
import com.fuyuanshen.fyscustomer.domain.query.UserQueryCriteria; import com.fuyuanshen.customer.domain.query.UserQueryCriteria;
import com.fuyuanshen.fyscustomer.domain.vo.ConsumerVo; import com.fuyuanshen.customer.domain.vo.ConsumerVo;
import com.fuyuanshen.fyscustomer.mapper.CustomerMapper; import com.fuyuanshen.customer.mapper.CustomerMapper;
import com.fuyuanshen.fyscustomer.service.CustomerService; import com.fuyuanshen.customer.service.CustomerService;
import io.undertow.util.BadRequestException; import io.undertow.util.BadRequestException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -39,13 +38,14 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
* @return * @return
*/ */
@Override @Override
public PageResult<ConsumerVo> queryCustomers(UserQueryCriteria criteria, Page<Customer> page) { public TableDataInfo<ConsumerVo> queryCustomers(UserQueryCriteria criteria, Page<Customer> page) {
criteria.setOffset(page.offset()); criteria.setOffset(page.offset());
criteria.setPid(LoginHelper.getUserId()); criteria.setPid(LoginHelper.getUserId());
List<Customer> users = customerMapper.findCustomers(criteria); List<Customer> users = customerMapper.findCustomers(criteria);
List<ConsumerVo> consumerVoList = BeanUtil.copyToList(users, ConsumerVo.class); List<ConsumerVo> consumerVoList = BeanUtil.copyToList(users, ConsumerVo.class);
Long total = customerMapper.countCustomers(criteria); Long total = customerMapper.countCustomers(criteria);
return PageUtil.toPage(consumerVoList, total); // return PageUtil.toPage(consumerVoList, total);
return new TableDataInfo<ConsumerVo>(consumerVoList, total);
} }

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?> <?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" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.fuyuanshen.fyscustomer.mapper.CustomerMapper"> <mapper namespace="com.fuyuanshen.fyscustomer.mapper.CustomerMapper">
<resultMap id="BaseResultMap" type="com.fuyuanshen.fyscustomer.domain.Customer"> <resultMap id="BaseResultMap" type="com.fuyuanshen.customer.domain.Customer">
<id column="user_user_id" property="userId"/> <id column="user_user_id" property="userId"/>
<result column="user_dept_id" property="deptId"/> <result column="user_dept_id" property="deptId"/>
<result column="user_user_name" property="userName"/> <result column="user_user_name" property="userName"/>
@ -92,9 +92,9 @@
<!-- 分页查询客户 --> <!-- 分页查询客户 -->
<select id="findCustomers" resultType="com.fuyuanshen.fyscustomer.domain.Customer"> <select id="findCustomers" resultType="com.fuyuanshen.customer.domain.Customer">
select select
u.user_id as id, u.nick_name , u.username, u.enabled, u.create_time u.user_id as id, u.nick_name , u.user_name, u.enabled, u.create_time
from sys_user u from sys_user u
<where> <where>
<if test="criteria.ids != null and !criteria.ids.isEmpty()"> <if test="criteria.ids != null and !criteria.ids.isEmpty()">
@ -118,7 +118,7 @@
</where> </where>
order by u.user_id desc order by u.user_id desc
<if test="criteria.offset != null"> <if test="criteria.offset != null">
limit #{criteria.offset}, #{criteria.size} limit #{criteria.offset}, #{criteria.pageSize}
</if> </if>
</select> </select>
@ -150,7 +150,7 @@
<!-- 查询所有客户 --> <!-- 查询所有客户 -->
<select id="queryAllCustomers" resultType="com.fuyuanshen.fyscustomer.domain.Customer"> <select id="queryAllCustomers" resultType="com.fuyuanshen.customer.domain.Customer">
select u.user_id as customerId, select u.user_id as customerId,
u.nick_name, u.nick_name,
u.user_name, u.user_name,
@ -170,8 +170,8 @@
<!-- 根据条件查询客户 --> <!-- 根据条件查询客户 -->
<select id="queryCustomers" resultType="com.fuyuanshen.fyscustomer.domain.Customer" <select id="queryCustomers" resultType="com.fuyuanshen.customer.domain.Customer"
parameterType="com.fuyuanshen.fyscustomer.domain.query.UserQueryCriteria"> parameterType="com.fuyuanshen.customer.domain.query.UserQueryCriteria">
select u.user_id as customerId, select u.user_id as customerId,
u.nick_name, u.nick_name,
u.user_name, u.user_name,
@ -186,7 +186,7 @@
</select> </select>
<!-- 根据id查询客户 --> <!-- 根据id查询客户 -->
<select id="queryCustomerById" resultType="com.fuyuanshen.fyscustomer.domain.Customer"> <select id="queryCustomerById" resultType="com.fuyuanshen.customer.domain.Customer">
select u.* select u.*
from sys_user u from sys_user u
<where> <where>

View File

@ -17,8 +17,8 @@ import com.fuyuanshen.equipment.domain.vo.CustomerVo;
import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceMapper;
import com.fuyuanshen.equipment.mapper.DeviceTypeMapper; import com.fuyuanshen.equipment.mapper.DeviceTypeMapper;
import com.fuyuanshen.equipment.service.DeviceService; import com.fuyuanshen.equipment.service.DeviceService;
import com.fuyuanshen.fyscustomer.domain.Customer; import com.fuyuanshen.customer.domain.Customer;
import com.fuyuanshen.fyscustomer.mapper.CustomerMapper; import com.fuyuanshen.customer.mapper.CustomerMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;