Ver Fonte

新增地区

lws há 3 anos atrás
pai
commit
2e1c819fa7
36 ficheiros alterados com 738 adições e 147 exclusões
  1. 2 2
      src/main/java/com/metro/baseRe/BaseEntity.java
  2. 35 0
      src/main/java/com/metro/constant/UserConstant.java
  3. 24 17
      src/main/java/com/metro/controller/AccountController.java
  4. 45 0
      src/main/java/com/metro/controller/AreaController.java
  5. 2 2
      src/main/java/com/metro/controller/CompanyController.java
  6. 3 3
      src/main/java/com/metro/controller/MetroController.java
  7. 2 2
      src/main/java/com/metro/controller/PassreCordsController.java
  8. 50 11
      src/main/java/com/metro/entity/po/Account.java
  9. 29 0
      src/main/java/com/metro/entity/po/Area.java
  10. 0 63
      src/main/java/com/metro/entity/ro/SelectAccountPageResp.java
  11. 49 0
      src/main/java/com/metro/entity/ro/account/InsertAccountReq.java
  12. 22 0
      src/main/java/com/metro/entity/ro/account/InsertAccountResp.java
  13. 9 5
      src/main/java/com/metro/entity/ro/account/SelectAccountPageReq.java
  14. 73 0
      src/main/java/com/metro/entity/ro/account/SelectAccountPageResp.java
  15. 23 0
      src/main/java/com/metro/entity/ro/area/SelectAreaReq.java
  16. 28 0
      src/main/java/com/metro/entity/ro/area/SelectAreaResp.java
  17. 1 1
      src/main/java/com/metro/entity/ro/company/SelectCompanyPageReq.java
  18. 1 1
      src/main/java/com/metro/entity/ro/company/SelectCompanyPageResp.java
  19. 1 1
      src/main/java/com/metro/entity/ro/metro/SelectMetroReq.java
  20. 1 1
      src/main/java/com/metro/entity/ro/metro/SelectMetroResp.java
  21. 1 1
      src/main/java/com/metro/entity/ro/passrecords/SelectPassreCordsPageListReq.java
  22. 1 1
      src/main/java/com/metro/entity/ro/passrecords/SelectPassreCordsPageListResp.java
  23. 48 0
      src/main/java/com/metro/enums/UserEnums.java
  24. 16 0
      src/main/java/com/metro/mapper/AreaMapper.java
  25. 13 2
      src/main/java/com/metro/service/AccountService.java
  26. 26 0
      src/main/java/com/metro/service/AreaService.java
  27. 2 2
      src/main/java/com/metro/service/CompanyService.java
  28. 2 2
      src/main/java/com/metro/service/MetroService.java
  29. 2 2
      src/main/java/com/metro/service/PassreCordsService.java
  30. 42 19
      src/main/java/com/metro/service/impl/AccountServiceImpl.java
  31. 53 0
      src/main/java/com/metro/service/impl/AreaServiceImpl.java
  32. 3 5
      src/main/java/com/metro/service/impl/CompanyServiceImpl.java
  33. 2 2
      src/main/java/com/metro/service/impl/MetroServiceImpl.java
  34. 2 2
      src/main/java/com/metro/service/impl/PassreCordsServiceImpl.java
  35. 111 0
      src/main/java/com/metro/utils/CGlibMapper.java
  36. 14 0
      src/main/java/com/metro/utils/MapperManager.java

+ 2 - 2
src/main/java/com/metro/baseRe/BaseEntity.java

@@ -15,8 +15,8 @@ import lombok.Data;
 public class BaseEntity {
 
     @ApiModelProperty("当前页数")
-    private Integer pageNo;
+    private Integer pageNo = 1;
 
     @ApiModelProperty("每页条数")
-    private Integer pageSize;
+    private Integer pageSize = 10;
 }

+ 35 - 0
src/main/java/com/metro/constant/UserConstant.java

@@ -0,0 +1,35 @@
+package com.metro.constant;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: UserConstant
+ * @Description: 用户常量
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/12 10:51
+ * ...
+ */
+public class UserConstant implements Serializable {
+
+    /**
+     * 删除
+     */
+    public static final Boolean DELETE = Boolean.TRUE;
+
+    /**
+     * 不删除
+     */
+    public static final Boolean NOT_DELETE = Boolean.FALSE;
+
+    /**
+     * 账号状态 正常
+     */
+    public static final Boolean NORMAL = Boolean.TRUE;
+
+    /**
+     * 账号状态 停用
+     */
+    public static final Boolean STOP = Boolean.FALSE;
+
+}

+ 24 - 17
src/main/java/com/metro/controller/AccountController.java

@@ -3,8 +3,8 @@ package com.metro.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.metro.baseRe.Ret;
-import com.metro.entity.ro.SelectAccountPageReq;
-import com.metro.entity.ro.SelectAccountPageResp;
+import com.metro.entity.ro.account.SelectAccountPageReq;
+import com.metro.entity.ro.account.SelectAccountPageResp;
 import com.metro.service.AccountService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -31,23 +31,30 @@ import java.util.List;
 public class AccountController {
 
     @Autowired
-    private AccountService AccountService;
-
-    @PostMapping("/select")
-    @ApiOperation("账号查询")
-    public Ret<IPage<SelectAccountPageResp>> selectCompany(@Valid @RequestBody SelectAccountPageReq req) {
-
-        return Ret.success(AccountService.page(req));
+    private AccountService service;
+
+    /**
+     * 账号列表查询
+     *
+     * @param req 查询条件
+     * @return page列表
+     */
+    @PostMapping("/page")
+    @ApiOperation("账号列表查询")
+    public Ret<IPage<SelectAccountPageResp>> page(@Valid @RequestBody(required = false) SelectAccountPageReq req) {
+        return Ret.success(service.page(req));
     }
 
-    @PostMapping("/area")
-    @ApiOperation("地区查询")
-    public List selectArea(){
-
-        return null;
-        }
-
-
+    /**
+     * @param id
+     * @return
+     */
+    @PostMapping("/add")
+    @ApiOperation("注册账号")
+    public Ret add(Integer id) {
+        return service.add(id);
     }
 
+}
+
 

+ 45 - 0
src/main/java/com/metro/controller/AreaController.java

@@ -0,0 +1,45 @@
+package com.metro.controller;
+
+import com.metro.baseRe.Ret;
+import com.metro.entity.ro.area.SelectAreaReq;
+import com.metro.entity.ro.area.SelectAreaResp;
+import com.metro.service.AreaService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @ClassName: AreaController
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/10 23:29
+ * ...
+ */
+@RestController
+@RequestMapping("/area")
+@Api(tags = "地区")
+public class AreaController {
+
+    @Autowired
+    private AreaService service;
+
+    /**
+     * 查询地区联动
+     * @param req 查询条件
+     * @return 返回结果list
+     */
+    @ApiOperation("查询地区联动")
+    @GetMapping("/selectArea")
+    public Ret<List<SelectAreaResp>> selectArea(@Valid @RequestBody SelectAreaReq req) {
+        return service.selectArea(req);
+    }
+
+}

+ 2 - 2
src/main/java/com/metro/controller/CompanyController.java

@@ -1,8 +1,8 @@
 package com.metro.controller;
 
 import com.metro.baseRe.Ret;
-import com.metro.entity.ro.SelectCompanyPageReq;
-import com.metro.entity.ro.SelectCompanyPageResp;
+import com.metro.entity.ro.company.SelectCompanyPageReq;
+import com.metro.entity.ro.company.SelectCompanyPageResp;
 import com.metro.service.CompanyService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 3 - 3
src/main/java/com/metro/controller/MetroController.java

@@ -1,8 +1,8 @@
 package com.metro.controller;
 
 import com.metro.baseRe.Ret;
-import com.metro.entity.ro.SelectMetroReq;
-import com.metro.entity.ro.SelectMetroResp;
+import com.metro.entity.ro.metro.SelectMetroReq;
+import com.metro.entity.ro.metro.SelectMetroResp;
 import com.metro.service.MetroService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -33,7 +33,7 @@ public class MetroController {
      * @param req 查询条件
      * @return 返回结果
      */
-    @PostMapping("/selectMetro")
+    @PostMapping("/select")
     @ApiOperation("地铁查询一二级三级")
     public Ret<List<SelectMetroResp>> selectMetro(@RequestBody @Valid SelectMetroReq req){
         return Ret.success(service.list(req));

+ 2 - 2
src/main/java/com/metro/controller/PassreCordsController.java

@@ -2,8 +2,8 @@ package com.metro.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.metro.baseRe.Ret;
-import com.metro.entity.ro.SelectPassreCordsPageListReq;
-import com.metro.entity.ro.SelectPassreCordsPageListResp;
+import com.metro.entity.ro.passrecords.SelectPassreCordsPageListReq;
+import com.metro.entity.ro.passrecords.SelectPassreCordsPageListResp;
 import com.metro.service.PassreCordsService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;

+ 50 - 11
src/main/java/com/metro/entity/po/Account.java

@@ -3,8 +3,9 @@ package com.metro.entity.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Builder;
 import lombok.Data;
-import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
+import lombok.experimental.Tolerate;
 
 import java.time.LocalTime;
 
@@ -29,37 +30,75 @@ public class Account {
     /**
      * 账号名称
      */
-    @TableField(value = "acc_name")
-    private String accName;
+    private String account;
 
     /**
      * 管理员姓名
      */
-    @TableField(value = "administrator_name")
-    private String administratorName;
+    private String userName;
+
+    /**
+     * 账号密码
+     */
+    private String password;
 
     /**
      * 管理员手机号
      */
-    @TableField(value = "administrator_phone")
-    private String administratorPhone;
+    private String phone;
+
+    /**
+     * 用户类型 1:用户 2:派出所
+     */
+    private String type;
 
     /**
      * 省市区
      */
-    @TableField(value = "area")
-    private Integer area;
+    private Integer areaId;
 
     /**
      * 详细地址
      */
-    @TableField(value = "address")
     private String address;
 
+    /**
+     * 警号Id
+     */
+    private String policeId;
+
+    /**
+     * 警号Id
+     */
+    private String companyId;
+
     /**
      * 创建时间
      */
-    @TableField(value = "createTime")
     private LocalTime createTime;
+    /*
+    * 创建人
+    * */
+
+    private Integer createId;
+
+    /*
+    * 修改时间
+    * */
+    private LocalTime updateTime;
+
+    /*
+    * 修改人
+    * */
+    private Integer updateId;
+
+    /*
+    * 是否删除 true 删除    false 不删除
+    * */
+    private boolean isDelete;
 
+    /*
+    * 状态  true 正常    false 停用
+    * */
+    private boolean status;
 }

+ 29 - 0
src/main/java/com/metro/entity/po/Area.java

@@ -1,5 +1,9 @@
 package com.metro.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
 /**
  * @ClassName: Area
  * @Description: TODO
@@ -8,5 +12,30 @@ package com.metro.entity.po;
  * @Date 2022/3/10 12:53
  * ...
  */
+@Data
+@TableName("j_area")
 public class Area {
+
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id")
+    private Integer id;
+
+    /**
+     * 地区名
+     */
+    private String name;
+
+    /**
+     * pid
+     */
+    private Integer pid;
+
+    /**
+     * 层级
+     */
+    private String districtSqe;
+
 }

+ 0 - 63
src/main/java/com/metro/entity/ro/SelectAccountPageResp.java

@@ -1,63 +0,0 @@
-package com.metro.entity.ro;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.time.LocalTime;
-
-/**
- * @ClassName: AccountCompanyPageResp
- * @Description: TODO
- * @Author: ZS
- * @CreateName: lws
- * @Date 2022/3/10 10:14
- * ...
- */
-@Data
-@ApiModel
-public class SelectAccountPageResp implements Serializable {
-
-    /**
-     * id
-     */
-    @TableId(value = "id")
-    private Integer id;
-
-    /**
-     * 账号名称
-     */
-    @TableId(value = "accName")
-    private String accName;
-
-    /**
-     * 管理员姓名
-     */
-    @TableId(value = "administratorName")
-    private String administratorName;
-
-    /**
-     * 管理员手机号
-     */
-    @TableId(value = "administratorPhone")
-    private String administratorPhone;
-
-    /**
-     * 省市区
-     */
-    @TableId(value = "area")
-    private Integer area;
-
-    /**
-     * 详细地址
-     */
-    @TableId(value = "address")
-    private String address;
-
-    /**
-     * 创建时间
-     */
-    @TableId(value = "createTime")
-    private LocalTime createTime;
-}

+ 49 - 0
src/main/java/com/metro/entity/ro/account/InsertAccountReq.java

@@ -0,0 +1,49 @@
+package com.metro.entity.ro.account;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @ClassName: InsertAccountReq
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/12 14:13
+ * ...
+ */
+@Data
+public class InsertAccountReq implements Serializable {
+
+
+    @ApiModelProperty(value = "账号名称")
+    private String account;
+
+    @ApiModelProperty(value = "管理员姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "管理员手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "地区Id")
+    @NotNull(message = "请选择地址!")
+    private Integer areaId;
+
+    @ApiModelProperty(value = "详细地址")
+    @NotEmpty(message = "详细地址不能为空!")
+    private String address;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    private LocalDateTime createId;
+
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateTime;
+
+}

+ 22 - 0
src/main/java/com/metro/entity/ro/account/InsertAccountResp.java

@@ -0,0 +1,22 @@
+package com.metro.entity.ro.account;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: InsertAccountReq
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/12 14:13
+ * ...
+ */
+@Data
+public class InsertAccountResp implements Serializable {
+
+    @ApiModelProperty("影响行数")
+    private Integer count;
+
+}

+ 9 - 5
src/main/java/com/metro/entity/ro/SelectAccountPageReq.java → src/main/java/com/metro/entity/ro/account/SelectAccountPageReq.java

@@ -1,9 +1,11 @@
-package com.metro.entity.ro;
+package com.metro.entity.ro.account;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.metro.baseRe.BaseEntity;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
 
@@ -15,18 +17,20 @@ import java.io.Serializable;
  * @Date 2022/3/10 10:11
  * ...
  */
+@EqualsAndHashCode(callSuper = true)
 @Data
 @ApiModel
 public class SelectAccountPageReq extends BaseEntity implements Serializable {
+
     /**
      * 管理员姓名
      */
-    @TableId(value = "administratorName")
-    private String administratorName;
+    @ApiModelProperty(value = "管理员姓名")
+    private String userName;
 
     /**
      * 管理员手机号
      */
-    @TableId(value = "administratorPhone")
-    private String administratorPhone;
+    @ApiModelProperty(value = "管理员手机号")
+    private String phone;
 }

+ 73 - 0
src/main/java/com/metro/entity/ro/account/SelectAccountPageResp.java

@@ -0,0 +1,73 @@
+package com.metro.entity.ro.account;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.metro.enums.UserEnums;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+/**
+ * @ClassName: AccountCompanyPageResp
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/10 10:14
+ * ...
+ */
+@Data
+@ApiModel
+public class SelectAccountPageResp implements Serializable {
+
+    @ApiModelProperty(value = "id")
+    private Integer id;
+
+    @ApiModelProperty(value = "账号名称")
+    private String account;
+
+    @ApiModelProperty(value = "管理员姓名")
+    private String userName;
+
+    /**
+     * 管理员手机号
+     */
+    @ApiModelProperty(value = "管理员手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "地区Id")
+    private Integer areaId;
+
+    @ApiModelProperty(value = "地区中文")
+    private String areaDesc;
+
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    private LocalDateTime createId;
+
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "修改人")
+    private LocalDateTime updateId;
+
+    @ApiModelProperty(value = "是否删除")
+    private boolean isDelete;
+
+    @ApiModelProperty(value = "账号状态码")
+    private boolean status;
+
+    @ApiModelProperty(value = "账号状态")
+    private String statusNme;
+    public String getStatusName(){
+        return UserEnums.statusEnums.getStatusName(this.status);
+    }
+
+}

+ 23 - 0
src/main/java/com/metro/entity/ro/area/SelectAreaReq.java

@@ -0,0 +1,23 @@
+package com.metro.entity.ro.area;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: selectAreaReq
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/10 23:35
+ * ...
+ */
+@Data
+public class SelectAreaReq implements Serializable {
+
+    @ApiModelProperty("pid 默认查询省")
+    private Integer pid = 0;
+
+}

+ 28 - 0
src/main/java/com/metro/entity/ro/area/SelectAreaResp.java

@@ -0,0 +1,28 @@
+package com.metro.entity.ro.area;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: selectAreaReq
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/10 23:35
+ * ...
+ */
+@Data
+public class SelectAreaResp implements Serializable {
+
+    @ApiModelProperty("id")
+    private Integer id;
+
+    @ApiModelProperty("地区名")
+    private String name;
+
+    @ApiModelProperty("pid")
+    private Integer pid;
+
+}

+ 1 - 1
src/main/java/com/metro/entity/ro/SelectCompanyPageReq.java → src/main/java/com/metro/entity/ro/company/SelectCompanyPageReq.java

@@ -1,4 +1,4 @@
-package com.metro.entity.ro;
+package com.metro.entity.ro.company;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
src/main/java/com/metro/entity/ro/SelectCompanyPageResp.java → src/main/java/com/metro/entity/ro/company/SelectCompanyPageResp.java

@@ -1,4 +1,4 @@
-package com.metro.entity.ro;
+package com.metro.entity.ro.company;
 
 import com.metro.baseRe.BaseEntity;
 import io.swagger.annotations.ApiModel;

+ 1 - 1
src/main/java/com/metro/entity/ro/SelectMetroReq.java → src/main/java/com/metro/entity/ro/metro/SelectMetroReq.java

@@ -1,4 +1,4 @@
-package com.metro.entity.ro;
+package com.metro.entity.ro.metro;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
src/main/java/com/metro/entity/ro/SelectMetroResp.java → src/main/java/com/metro/entity/ro/metro/SelectMetroResp.java

@@ -1,4 +1,4 @@
-package com.metro.entity.ro;
+package com.metro.entity.ro.metro;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.metro.entity.po.Metro;

+ 1 - 1
src/main/java/com/metro/entity/ro/SelectPassreCordsPageListReq.java → src/main/java/com/metro/entity/ro/passrecords/SelectPassreCordsPageListReq.java

@@ -1,4 +1,4 @@
-package com.metro.entity.ro;
+package com.metro.entity.ro.passrecords;
 
 import com.metro.baseRe.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
src/main/java/com/metro/entity/ro/SelectPassreCordsPageListResp.java → src/main/java/com/metro/entity/ro/passrecords/SelectPassreCordsPageListResp.java

@@ -1,4 +1,4 @@
-package com.metro.entity.ro;
+package com.metro.entity.ro.passrecords;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 48 - 0
src/main/java/com/metro/enums/UserEnums.java

@@ -0,0 +1,48 @@
+package com.metro.enums;
+
+import lombok.Data;
+import lombok.Getter;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: UserEunms
+ * @Description: 用户枚举类
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/12 10:56
+ * ...
+ */
+public class UserEnums implements Serializable {
+
+    /**
+     * 用户状态枚举
+     */
+    @Getter
+    public enum statusEnums {
+
+        NORMAL(true, "正常"),
+        STOP(false, "停用");
+
+        private Boolean status;
+
+        private String statusName;
+
+        statusEnums(Boolean status, String statusName) {
+            this.status = status;
+            this.statusName = statusName;
+        }
+
+        // 获取状态名称
+        public static String getStatusName(Boolean status) {
+            for (statusEnums c : statusEnums.values()) {
+                if (c.getStatus() == status) {
+                    return c.getStatusName();
+                }
+            }
+            return "";
+        }
+
+    }
+}

+ 16 - 0
src/main/java/com/metro/mapper/AreaMapper.java

@@ -0,0 +1,16 @@
+package com.metro.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.metro.entity.po.Area;
+
+/**
+ * @ClassName: AreaMapper
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/10 23:31
+ * ...
+ */
+public interface AreaMapper extends BaseMapper<Area> {
+
+}

+ 13 - 2
src/main/java/com/metro/service/AccountService.java

@@ -1,7 +1,9 @@
 package com.metro.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.metro.entity.ro.SelectAccountPageReq;
+import com.metro.baseRe.Ret;
+import com.metro.entity.ro.account.SelectAccountPageReq;
+import com.metro.entity.ro.account.SelectAccountPageResp;
 
 /**
  * @ClassName: AccountService
@@ -12,5 +14,14 @@ import com.metro.entity.ro.SelectAccountPageReq;
  * ...
  */
 public interface AccountService {
-    IPage page(SelectAccountPageReq req);
+
+    /**
+     * 账号列表查询
+     * @param req 查询条件
+     * @return page列表
+     */
+    IPage<SelectAccountPageResp> page(SelectAccountPageReq req);
+
+
+    Ret add(Integer id);
 }

+ 26 - 0
src/main/java/com/metro/service/AreaService.java

@@ -0,0 +1,26 @@
+package com.metro.service;
+
+import com.metro.baseRe.Ret;
+import com.metro.entity.ro.area.SelectAreaReq;
+import com.metro.entity.ro.area.SelectAreaResp;
+
+import java.util.List;
+
+/**
+ * @ClassName: AreaService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/10 23:31
+ * ...
+ */
+public interface AreaService {
+
+    /**
+     * 查询地区联动
+     * @param req 查询条件
+     * @return 返回结果list
+     */
+    Ret<List<SelectAreaResp>> selectArea(SelectAreaReq req);
+
+}

+ 2 - 2
src/main/java/com/metro/service/CompanyService.java

@@ -1,7 +1,7 @@
 package com.metro.service;
 
-import com.metro.entity.ro.SelectCompanyPageReq;
-import com.metro.entity.ro.SelectCompanyPageResp;
+import com.metro.entity.ro.company.SelectCompanyPageReq;
+import com.metro.entity.ro.company.SelectCompanyPageResp;
 
 import java.util.List;
 

+ 2 - 2
src/main/java/com/metro/service/MetroService.java

@@ -1,7 +1,7 @@
 package com.metro.service;
 
-import com.metro.entity.ro.SelectMetroReq;
-import com.metro.entity.ro.SelectMetroResp;
+import com.metro.entity.ro.metro.SelectMetroReq;
+import com.metro.entity.ro.metro.SelectMetroResp;
 
 import java.util.List;
 

+ 2 - 2
src/main/java/com/metro/service/PassreCordsService.java

@@ -1,8 +1,8 @@
 package com.metro.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.metro.entity.ro.SelectPassreCordsPageListResp;
-import com.metro.entity.ro.SelectPassreCordsPageListReq;
+import com.metro.entity.ro.passrecords.SelectPassreCordsPageListResp;
+import com.metro.entity.ro.passrecords.SelectPassreCordsPageListReq;
 
 /**
  * @ClassName: PassreCordsService

+ 42 - 19
src/main/java/com/metro/service/impl/AccountServiceImpl.java

@@ -4,17 +4,29 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.metro.baseRe.Ret;
+import com.metro.constant.UserConstant;
 import com.metro.entity.po.Account;
-import com.metro.entity.ro.SelectAccountPageReq;
-import com.metro.entity.ro.SelectAccountPageResp;
-import com.metro.entity.ro.SelectPassreCordsPageListResp;
+import com.metro.entity.po.Area;
+import com.metro.entity.ro.account.SelectAccountPageReq;
+import com.metro.entity.ro.account.SelectAccountPageResp;
 import com.metro.mapper.AccountsMapper;
+import com.metro.mapper.AreaMapper;
 import com.metro.service.AccountService;
+import com.metro.utils.MapperManager;
+import com.metro.utils.StringUtil;
+import io.github.classgraph.utils.Join;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
 /**
  * @ClassName: AccountServiceImpl
  * @Description: TODO
@@ -24,35 +36,46 @@ import org.springframework.util.CollectionUtils;
  * ...
  */
 @Service
-public class AccountServiceImpl implements AccountService{
+public class AccountServiceImpl implements AccountService {
+
     @Autowired
-    private  AccountsMapper AccountsMapper;
-    @Override
+    private AccountsMapper AccountsMapper;
+    @Autowired
+    private AreaMapper areaMapper;
 
     /**
      * 账号查询
+     *
      * @param req 查询条件
      * @return 返回结果
      */
-    public IPage page(SelectAccountPageReq req) {
-
-        IPage<SelectAccountPageReq> respPage = new Page<>(req.getPageNo(), req.getPageSize());
-
-        Page<Account> selectPage = AccountsMapper.selectPage(new Page<>(req.getPageNo(), req.getPageSize()), pageWrapper(req));
-
-        if(CollectionUtils.isEmpty(selectPage.getRecords())) return respPage;
+    @Override
+    public IPage<SelectAccountPageResp> page(SelectAccountPageReq req) {
+        IPage<SelectAccountPageResp> respPage = new Page<>(req.getPageNo(), req.getPageSize());
+        IPage<Account> selectPage = AccountsMapper.selectPage(new Page<>(req.getPageNo(), req.getPageSize()), pageWrapper(req));
+        if (CollectionUtils.isEmpty(selectPage.getRecords())) return respPage;
+        // 从查询结果中过滤出areaId集合
+        Set<Integer> areaIdSet = selectPage.getRecords().stream().map(Account::getAreaId).collect(Collectors.toSet());
 
-        return selectPage.convert(p -> BeanUtil.toBean(p,SelectAccountPageResp.class));
+        Map<Integer, String> areaMap = areaMapper.selectList(new LambdaQueryWrapper<Area>().in(Area::getId, areaIdSet)).stream().collect(Collectors.toMap(Area::getId, p ->
+                Join.join("-", areaMapper.selectList(new LambdaQueryWrapper<Area>().eq(Area::getId, StringUtils.split(p.getDistrictSqe(),"."))).stream().map(Area::getName).collect(Collectors.toList()))
+        ));
+        return selectPage.convert(p -> MapperManager.mapper(p, SelectAccountPageResp.class, q -> q.setAreaDesc(areaMap.get(p.getAreaId()))));
     }
 
-    private LambdaQueryWrapper<Account>pageWrapper(SelectAccountPageReq req) {
+    @Override
+    public Ret add(Integer id) {
+        return null;
+    }
 
+    // page wrapper 查询条件
+    private LambdaQueryWrapper<Account> pageWrapper(SelectAccountPageReq req) {
         LambdaQueryWrapper<Account> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(StringUtils.isNotEmpty(req.getUserName()), Account::getUserName, req.getUserName());
+        wrapper.eq(StringUtils.isNotEmpty(req.getPhone()), Account::getPhone, req.getPhone());
+        return wrapper;
+    }
 
-        wrapper.like(StringUtils.isNotEmpty(req.getAdministratorName()),Account::getAdministratorName,req.getAdministratorName());
 
-        wrapper.eq(StringUtils.isNotEmpty(req.getAdministratorPhone()),Account::getAdministratorPhone,req.getAdministratorPhone());
 
-        return wrapper;
-    }
 }

+ 53 - 0
src/main/java/com/metro/service/impl/AreaServiceImpl.java

@@ -0,0 +1,53 @@
+package com.metro.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.metro.baseRe.Ret;
+import com.metro.entity.po.Area;
+import com.metro.entity.ro.area.SelectAreaReq;
+import com.metro.entity.ro.area.SelectAreaResp;
+import com.metro.mapper.AreaMapper;
+import com.metro.service.AreaService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName: AreaServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/10 23:31
+ * ...
+ */
+@Service
+public class AreaServiceImpl implements AreaService {
+
+    @Autowired
+    private AreaMapper areaMapper;
+
+    /**
+     * 查询地区联动
+     * @param req 查询条件
+     * @return 返回结果list
+     */
+    @Override
+    public Ret<List<SelectAreaResp>> selectArea(SelectAreaReq req) {
+        List<Area> areaList = areaMapper.selectList(selectAreaWrapper(req));
+        if (CollectionUtils.isEmpty(areaList)) return Ret.success(null);
+        return Ret.success(areaList.stream().map(p -> BeanUtil.toBean(p,SelectAreaResp.class)).collect(Collectors.toList()));
+    }
+
+    //查询地区联动 warpper
+    private Wrapper<Area> selectAreaWrapper(SelectAreaReq req) {
+        LambdaQueryWrapper<Area> wrapper= new LambdaQueryWrapper<>();
+        wrapper.eq(ObjectUtil.isNotNull(req.getPid()),Area::getPid,req.getPid());
+        return wrapper;
+    }
+
+}

+ 3 - 5
src/main/java/com/metro/service/impl/CompanyServiceImpl.java

@@ -3,8 +3,8 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.metro.entity.po.Company;
-import com.metro.entity.ro.SelectCompanyPageReq;
-import com.metro.entity.ro.SelectCompanyPageResp;
+import com.metro.entity.ro.company.SelectCompanyPageReq;
+import com.metro.entity.ro.company.SelectCompanyPageResp;
 import com.metro.mapper.CompanysMapper;
 import com.metro.service.CompanyService;
 import org.apache.commons.lang3.StringUtils;
@@ -38,9 +38,7 @@ public class CompanyServiceImpl implements CompanyService {
     @Override
     public List<SelectCompanyPageResp> page(SelectCompanyPageReq req) {
         List<Company> companies = companysMapper.selectList(selectCompanysWrapper(req));
-        if(CollectionUtils.isEmpty(companies)) {
-            return new ArrayList<>();
-        }
+        if(CollectionUtils.isEmpty(companies)) return new ArrayList<>();
         return companies.stream().map(p -> BeanUtil.toBean(p,SelectCompanyPageResp.class)).collect(Collectors.toList());
     }
 

+ 2 - 2
src/main/java/com/metro/service/impl/MetroServiceImpl.java

@@ -4,8 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.metro.entity.po.Metro;
-import com.metro.entity.ro.SelectMetroReq;
-import com.metro.entity.ro.SelectMetroResp;
+import com.metro.entity.ro.metro.SelectMetroReq;
+import com.metro.entity.ro.metro.SelectMetroResp;
 import com.metro.mapper.MetroMapper;
 import com.metro.service.MetroService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 2 - 2
src/main/java/com/metro/service/impl/PassreCordsServiceImpl.java

@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.metro.entity.po.PassreCords;
-import com.metro.entity.ro.SelectPassreCordsPageListReq;
-import com.metro.entity.ro.SelectPassreCordsPageListResp;
+import com.metro.entity.ro.passrecords.SelectPassreCordsPageListReq;
+import com.metro.entity.ro.passrecords.SelectPassreCordsPageListResp;
 import com.metro.mapper.PassreCordsMapper;
 import com.metro.service.PassreCordsService;
 import org.apache.commons.lang3.StringUtils;

+ 111 - 0
src/main/java/com/metro/utils/CGlibMapper.java

@@ -0,0 +1,111 @@
+package com.metro.utils;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.cglib.beans.BeanCopier;
+
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Consumer;
+import java.util.function.UnaryOperator;
+
+public class CGlibMapper {
+
+    //使用缓存提高效率
+    private static final ConcurrentHashMap<String, BeanCopier> mapCaches = new ConcurrentHashMap<>();
+
+    /***
+     *  通过类复制属性(同一个类其实就是克隆自己)  属性相同才能复制
+     * @param source  需要复制的对象
+     * @param target 目标类
+     * @param <O>
+     * @param <T>
+     * @return
+     */
+    public static <O, T> T mapper(O source, Class<T> target) {
+        return baseMapper(source, target);
+    }
+
+    /**
+     *  通过类复制属性(同一个类其实就是克隆自己)  属性相同才能复制
+     * @param source  需要复制的对象
+     * @param target 目标类
+     * @param action  支持lambda操作
+     * @param <O>
+     * @param <T>
+     * @return
+     */
+    public static <O, T> T mapper(O source, Class<T> target, Consumer<T> action) {
+        T instance = mapper(source,target);
+        action.accept(instance);
+        return instance;
+    }
+
+    /**
+     *  通过类复制属性(同一个类其实就是克隆自己)  属性相同才能复制
+     * @param source  需要复制的对象
+     * @param target 目标类
+     * @param action  支持lambda操作
+     * @param <O>
+     * @param <T>
+     * @return
+     */
+    public static <O, T> T mapper(O source, Class<T> target, UnaryOperator<T> action) {
+        T instance = mapper(source,target);
+        return action.apply(instance);
+    }
+
+    /***
+     * 通过对象复制属性(同一个类其实就是克隆自己)  属性相同才能复制
+     * @param source
+     * @param target
+     * @param <O>
+     * @param <T>
+     * @return
+     */
+    public static <O, T> T mapperObject(O source, T target) {
+        String baseKey = generateKey(source.getClass(), target.getClass());
+        BeanCopier copier;
+        if (!mapCaches.containsKey(baseKey)) {
+            copier = BeanCopier.create(source.getClass(), target.getClass(), false);
+            mapCaches.put(baseKey, copier);
+        } else {
+            copier = mapCaches.get(baseKey);
+        }
+        copier.copy(source, target, null);
+        return target;
+    }
+
+    public static <O, T> T mapperObject(O source, T target, Consumer<T> action) {
+        mapperObject(source, target);
+        action.accept(target);
+        return target;
+    }
+
+    public static <O, T> T mapperObject(O source, T target, UnaryOperator<T> action) {
+        mapperObject(source, target);
+        return action.apply(target);
+    }
+
+    private static <O, T> T baseMapper(O source, Class<T> target) {
+        String baseKey = generateKey(source.getClass(), target);
+        BeanCopier copier;
+        if (!mapCaches.containsKey(baseKey)) {
+            copier = BeanCopier.create(source.getClass(), target, false);
+            mapCaches.put(baseKey, copier);
+        } else {
+            copier = mapCaches.get(baseKey);
+        }
+        T instance = null;
+        try {
+            //需要复制的对象必须要有无参构造器
+            instance = target.getDeclaredConstructor().newInstance();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        copier.copy(source, instance, null);
+        return instance;
+    }
+
+    private static String generateKey(Class<?> class1, Class<?> class2) {
+        return class1.toString() + class2.toString();
+    }
+}

+ 14 - 0
src/main/java/com/metro/utils/MapperManager.java

@@ -0,0 +1,14 @@
+package com.metro.utils;
+
+import java.util.function.Consumer;
+
+public class MapperManager {
+
+    public static <O, T> T mapper(O obj, Class<T> val) {
+        return CGlibMapper.mapper(obj, val);
+    }
+
+    public static <O, T> T mapper(O obj, Class<T> val, Consumer<T> action) {
+        return CGlibMapper.mapper(obj, val , action);
+    }
+}