Forráskód Böngészése

客户端模块接口

bmmx 1 éve
szülő
commit
f8a2b36435

+ 1 - 1
pom.xml

@@ -141,7 +141,7 @@
 
     <build>
         <!--项目名称-->
-        <finalName>${project.artifactId}</finalName>
+        <finalName>operation-system</finalName>
         <plugins>
             <!-- 设置maven生命周期-->
             <plugin>

+ 70 - 0
src/main/java/com/om/controller/admin/ClientController.java

@@ -0,0 +1,70 @@
+package com.om.controller.admin;
+
+
+import com.om.entity.dto.ClientDTO;
+import com.om.entity.dto.ClientQueryPageDTO;
+import com.om.entity.vo.ClientQueryPageVO;
+import com.om.entity.vo.ClientVO;
+import com.om.service.IClientService;
+import com.om.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.catalina.LifecycleState;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-15
+ */
+@RestController
+@Api(tags = "客户端相关模块")
+@RequestMapping("/web/client")
+public class ClientController {
+    @Resource
+    private IClientService clientService;
+
+
+    @ApiOperation("新增客户端信息接口")
+    @PostMapping("add")
+    public Result addClient(@RequestBody ClientDTO dto){
+        return clientService.addClient(dto);
+    }
+
+    @ApiOperation("编辑客户端信息接口")
+    @PostMapping("edit")
+    public Result editClient(@RequestBody ClientDTO dto){
+        return clientService.editClient(dto);
+    }
+
+    @ApiOperation("根据id删除客户端信息接口")
+    @GetMapping("delete")
+    public Result deleteClient(@RequestParam Integer id){
+        return clientService.deleteClient(id);
+    }
+
+
+    @ApiOperation("根据id查询客户端信息接口")
+    @GetMapping("getById")
+    public Result<ClientVO> getClient(@RequestParam Integer id){
+        return clientService.getClient(id);
+    }
+
+    @ApiOperation("查询客户端信息集合接口")
+    @GetMapping("getList")
+    public Result<List<ClientVO>> getList(){
+        return clientService.getList();
+    }
+
+    @ApiOperation("分页查询客户端信息")
+    @PostMapping("getPageList")
+    public Result<ClientQueryPageVO> queryPageClient(@RequestBody ClientQueryPageDTO dto){
+        return clientService.queryPageClient(dto);
+    }
+}

+ 39 - 0
src/main/java/com/om/entity/dto/ClientDTO.java

@@ -0,0 +1,39 @@
+package com.om.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-15
+ */
+@Data
+public class ClientDTO implements Serializable {
+
+    @ApiModelProperty(value = "客户端id")
+    private Integer id;
+
+    @ApiModelProperty(value = "客户端名称")
+    private String name;
+
+    @ApiModelProperty(value = "描述信息")
+    private String description;
+
+    @ApiModelProperty(value = "客户端编号")
+    private String number;
+
+
+}

+ 18 - 0
src/main/java/com/om/entity/dto/ClientQueryPageDTO.java

@@ -0,0 +1,18 @@
+package com.om.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class ClientQueryPageDTO {
+    @ApiModelProperty(value = "当前页码")
+    private Integer pageIndex;
+
+    @ApiModelProperty(value = "每个页码的大小")
+    private Integer pageSize;
+
+    @ApiModelProperty(value = "搜索字段---搜索客户端名称")
+    private String search;
+}

+ 51 - 0
src/main/java/com/om/entity/po/Client.java

@@ -0,0 +1,51 @@
+package com.om.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("client")
+@ApiModel(value="Client对象", description="")
+public class Client implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "客户端id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "客户端名称")
+    private String name;
+
+    @ApiModelProperty(value = "描述信息")
+    private String description;
+
+    @ApiModelProperty(value = "客户端编号")
+    private String number;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updateTime;
+
+
+}

+ 31 - 0
src/main/java/com/om/entity/vo/ClientQueryPageVO.java

@@ -0,0 +1,31 @@
+package com.om.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class ClientQueryPageVO {
+
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    @ApiModelProperty(value = "总页码")
+    private Integer pages;
+
+    @ApiModelProperty(value = "每个页码的大小")
+    private Integer size;
+
+    @ApiModelProperty(value = "总数量")
+    private Integer total;
+
+    @ApiModelProperty(value = "是否是查询")
+    private Boolean searchCount = false;
+
+    @ApiModelProperty(value = "结果集")
+    private List<ClientVO> records;
+
+}

+ 44 - 0
src/main/java/com/om/entity/vo/ClientVO.java

@@ -0,0 +1,44 @@
+package com.om.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-15
+ */
+@Data
+@NoArgsConstructor
+public class ClientVO implements Serializable {
+
+    @ApiModelProperty(value = "客户端id")
+    private Integer id;
+
+    @ApiModelProperty(value = "客户端名称")
+    private String name;
+
+    @ApiModelProperty(value = "描述信息")
+    private String description;
+
+    @ApiModelProperty(value = "客户端编号")
+    private String number;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+
+}

+ 16 - 0
src/main/java/com/om/mapper/ClientMapper.java

@@ -0,0 +1,16 @@
+package com.om.mapper;
+
+import com.om.entity.po.Client;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-15
+ */
+public interface ClientMapper extends BaseMapper<Client> {
+
+}

+ 34 - 0
src/main/java/com/om/service/IClientService.java

@@ -0,0 +1,34 @@
+package com.om.service;
+
+import com.om.entity.dto.ClientDTO;
+import com.om.entity.dto.ClientQueryPageDTO;
+import com.om.entity.po.Client;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.vo.ClientQueryPageVO;
+import com.om.entity.vo.ClientVO;
+import com.om.utils.Result;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-15
+ */
+public interface IClientService extends IService<Client> {
+
+    Result addClient(ClientDTO dto);
+
+    Result deleteClient(Integer id);
+
+    Result<ClientVO> getClient(Integer id);
+
+    Result<List<ClientVO>> getList();
+
+    Result editClient(ClientDTO dto);
+
+    Result<ClientQueryPageVO> queryPageClient(ClientQueryPageDTO dto);
+}

+ 140 - 0
src/main/java/com/om/service/impl/ClientServiceImpl.java

@@ -0,0 +1,140 @@
+package com.om.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.dto.ClientDTO;
+import com.om.entity.dto.ClientQueryPageDTO;
+import com.om.entity.po.Client;
+import com.om.entity.po.Distributor;
+import com.om.entity.vo.ClientQueryPageVO;
+import com.om.entity.vo.ClientVO;
+import com.om.entity.vo.DistributorQueryPageVO;
+import com.om.entity.vo.DistributorVO;
+import com.om.exception.BadReqException;
+import com.om.mapper.ClientMapper;
+import com.om.service.IClientService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.utils.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-15
+ */
+@Service
+@Slf4j
+public class ClientServiceImpl extends ServiceImpl<ClientMapper, Client> implements IClientService {
+
+    @Override
+    public Result addClient(ClientDTO dto) {
+        if (BeanUtil.isEmpty(dto)){
+            throw new BadReqException("数据异常");
+        }
+        // 判断是否已有该客户端编号的
+        Client one = this.lambdaQuery()
+                .eq(Client::getNumber, dto.getNumber())
+                .one();
+        if (BeanUtil.isNotEmpty(one)){
+            //存在
+            throw new BadReqException("该客户端已存在");
+        }
+
+        Client client = BeanUtil.copyProperties(dto, Client.class);
+        client.setCreateTime(LocalDateTime.now());
+        client.setUpdateTime(LocalDateTime.now());
+        this.save(client);
+
+        return Result.ok();
+    }
+
+    @Override
+    public Result deleteClient(Integer id) {
+        //根据id查询
+        Client client = this.getById(id);
+        if (BeanUtil.isEmpty(client)){
+            throw new BadReqException("该客户端不存在");
+        }
+
+        //删除
+        this.removeById(id);
+
+        return Result.ok();
+    }
+
+    @Override
+    public Result<ClientVO> getClient(Integer id) {
+        //根据id查询
+        Client client = this.getById(id);
+        if (BeanUtil.isEmpty(client)){
+            throw new BadReqException("该客户端不存在");
+        }
+        ClientVO clientVO = BeanUtil.copyProperties(client, ClientVO.class);
+        return Result.ok(clientVO);
+    }
+
+    @Override
+    public Result<List<ClientVO>> getList() {
+
+        List<Client> list = this.list();
+
+        if (CollectionUtil.isEmpty(list)){
+            return Result.ok(Collections.emptyList());
+        }
+
+        List<ClientVO> clientVOS = BeanUtil.copyToList(list, ClientVO.class);
+        return Result.ok(clientVOS);
+    }
+
+    @Override
+    public Result editClient(ClientDTO dto) {
+        //查询该客户端是否存在
+        Client client = this.getById(dto.getId());
+        if (BeanUtil.isEmpty(client)){
+            throw new BadReqException("该客户端不存在");
+        }
+
+        BeanUtil.copyProperties(dto,client);
+        client.setUpdateTime(LocalDateTime.now());
+        this.updateById(client);
+        return Result.ok();
+    }
+
+    @Override
+    public Result<ClientQueryPageVO> queryPageClient(ClientQueryPageDTO dto) {
+        Integer pageSize = dto.getPageSize();
+        Integer pageIndex = dto.getPageIndex();
+        String search = dto.getSearch();
+        //分页查询
+        Page<Client> page = this.lambdaQuery()
+                .like(search != null, Client::getName, search)
+                .orderByDesc(Client::getCreateTime)
+                .page(new Page<>(pageIndex, pageSize));
+
+        //封装vo
+        ClientQueryPageVO vo = new ClientQueryPageVO();
+        vo.setCurrent((int) page.getCurrent());
+        vo.setSize((int) page.getSize());
+        vo.setPages((int) page.getPages());
+        vo.setTotal((int) page.getTotal());
+        if (search !=null){
+            vo.setSearchCount(true);
+        }
+        List<Client> records = page.getRecords();
+
+        List<ClientVO> clientVOS = BeanUtil.copyToList(records, ClientVO.class);
+
+        vo.setRecords(clientVOS);
+
+        return Result.ok(vo);
+    }
+}

+ 5 - 0
src/main/resources/mapper/ClientMapper.xml

@@ -0,0 +1,5 @@
+<?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.om.mapper.ClientMapper">
+
+</mapper>