fuxingfan 4 лет назад
Родитель
Сommit
21163f0c1f

+ 1
- 0
src/main/java/com/yunzhi/marketing/interceptor/AccessInterceptor.java Просмотреть файл

@@ -77,6 +77,7 @@ public class AccessInterceptor implements HandlerInterceptor {
77 77
             "/api/fadd/",//所有的法大大回调放过
78 78
             "/api/third",
79 79
             "/api/third/redirect/",
80
+            "/file/",
80 81
             "/api/official/" // 官网接口
81 82
     };
82 83
 

+ 26
- 24
src/main/java/com/yunzhi/marketing/xlk/controller/InstitutionController.java Просмотреть файл

@@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.yunzhi.marketing.base.BaseController;
7 7
 import com.yunzhi.marketing.base.ResponseBean;
8 8
 import com.yunzhi.marketing.common.StringUtils;
9
+import com.yunzhi.marketing.xlk.dto.InstitutionDTO;
9 10
 import com.yunzhi.marketing.xlk.entity.Institution;
10 11
 import com.yunzhi.marketing.xlk.service.IInstitutionService;
11 12
 import io.swagger.annotations.Api;
12 13
 import io.swagger.annotations.ApiOperation;
13 14
 import org.slf4j.Logger;
14 15
 import org.slf4j.LoggerFactory;
16
+import org.springframework.beans.BeanUtils;
15 17
 import org.springframework.beans.factory.annotation.Autowired;
16 18
 import org.springframework.web.bind.annotation.PathVariable;
17 19
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,6 +25,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
23 25
 import org.springframework.web.bind.annotation.RestController;
24 26
 
25 27
 import javax.servlet.http.HttpServletRequest;
28
+import javax.validation.Valid;
29
+import java.time.LocalDateTime;
26 30
 import java.util.List;
27 31
 
28 32
 /**
@@ -35,7 +39,7 @@ import java.util.List;
35 39
  */
36 40
 @RestController
37 41
 @RequestMapping("/api")
38
-@Api(value = "组织结构相关接口", tags = "xlk-组织结构相关接口")
42
+@Api(value = "xlk-组织结构相关接口", tags = "xlk-组织结构相关接口")
39 43
 public class InstitutionController extends BaseController {
40 44
 
41 45
     private final Logger logger = LoggerFactory.getLogger(InstitutionController.class);
@@ -78,19 +82,20 @@ public class InstitutionController extends BaseController {
78 82
 
79 83
     /**
80 84
      * 保存对象
81
-     * @param institution 实体对象
85
+     * @param institutionDTO 实体对象
82 86
      * @return
83 87
      */
84 88
     @ApiOperation(value = "admin-组织机构列表查询", notes = "admin-组织机构列表查询")
85
-    @RequestMapping(value="/institution",method= RequestMethod.POST)
86
-    public ResponseBean institutionAdd(@RequestBody Institution institution, @RequestHeader("authorization") String token, HttpServletRequest request){
89
+    @RequestMapping(value="/institution/save",method= RequestMethod.POST)
90
+    public ResponseBean institutionAdd(@RequestBody @Valid InstitutionDTO institutionDTO, @RequestHeader("authorization") String token, HttpServletRequest request){
87 91
         ResponseBean responseBean = new ResponseBean();
88 92
         try {
89
-            if (iInstitutionService.save(institution)){
90
-                responseBean.addSuccess(institution);
91
-            }else {
92
-                responseBean.addError("fail");
93
-            }
93
+            Integer orgId = getOrgId(request);
94
+            Institution institution = new Institution();
95
+            BeanUtils.copyProperties(institutionDTO,institution);
96
+            institution.setOrgId(orgId);
97
+            institution.setCreateDate(LocalDateTime.now());
98
+            responseBean = iInstitutionService.saveInstitution(institution);
94 99
         }catch (Exception e){
95 100
             e.printStackTrace();
96 101
             logger.error("institutionAdd -=- {}",e.toString());
@@ -103,17 +108,13 @@ public class InstitutionController extends BaseController {
103 108
      * 根据id删除对象
104 109
      * @param id  实体ID
105 110
      */
106
-    @ApiOperation(value = "", notes = "")
111
+    @ApiOperation(value = "admin-组织机构列表删除", notes = "admin-组织机构列表删除")
107 112
     @ResponseBody
108 113
     @RequestMapping(value="/institution/{id}", method= RequestMethod.DELETE)
109 114
     public ResponseBean institutionDelete(@PathVariable String id, @RequestHeader("authorization") String token, HttpServletRequest request){
110 115
         ResponseBean responseBean = new ResponseBean();
111 116
         try {
112
-            if(iInstitutionService.removeById(id)){
113
-                responseBean.addSuccess("success");
114
-            }else {
115
-                responseBean.addError("fail");
116
-            }
117
+            responseBean = iInstitutionService.deleteByInstitutionId(id);
117 118
         }catch (Exception e){
118 119
             e.printStackTrace();
119 120
             logger.error("institutionDelete -=- {}",e.toString());
@@ -125,20 +126,21 @@ public class InstitutionController extends BaseController {
125 126
     /**
126 127
      * 修改对象
127 128
      * @param id  实体ID
128
-     * @param institution 实体对象
129
+     * @param institutionDTO 实体对象
129 130
      * @return
130 131
      */
131
-    @ApiOperation(value = "", notes = "")
132
+    @ApiOperation(value = "admin-组织机构列表修改", notes = "admin-组织机构列表修改")
132 133
     @RequestMapping(value="/institution/{id}",method= RequestMethod.PUT)
133 134
     public ResponseBean institutionUpdate(@PathVariable String id,
134
-                                          @RequestBody Institution institution, @RequestHeader("authorization") String token, HttpServletRequest request){
135
+                                          @RequestBody InstitutionDTO institutionDTO, @RequestHeader("authorization") String token, HttpServletRequest request){
135 136
         ResponseBean responseBean = new ResponseBean();
136 137
         try {
137
-            if (iInstitutionService.updateById(institution)){
138
-                responseBean.addSuccess(institution);
139
-            }else {
140
-                responseBean.addError("fail");
141
-            }
138
+            Integer orgId = getOrgId(request);
139
+            Institution institution = new Institution();
140
+            BeanUtils.copyProperties(institutionDTO,institution);
141
+            institution.setOrgId(orgId);
142
+            institution.setInstitutionId(id);
143
+             responseBean = iInstitutionService.updateInstitution(institution);
142 144
         }catch (Exception e){
143 145
             e.printStackTrace();
144 146
             logger.error("institutionUpdate -=- {}",e.toString());
@@ -151,7 +153,7 @@ public class InstitutionController extends BaseController {
151 153
      * 根据id查询对象
152 154
      * @param id  实体ID
153 155
      */
154
-    @ApiOperation(value = "", notes = "")
156
+    @ApiOperation(value = "admin-组织机构列表查询详细", notes = "组织机构列表查询详细")
155 157
     @RequestMapping(value="/institution/{id}",method= RequestMethod.GET)
156 158
     public ResponseBean institutionGet(@PathVariable String id, @RequestHeader("authorization") String token, HttpServletRequest request){
157 159
         ResponseBean responseBean = new ResponseBean();

+ 38
- 0
src/main/java/com/yunzhi/marketing/xlk/dto/InstitutionDTO.java Просмотреть файл

@@ -0,0 +1,38 @@
1
+package com.yunzhi.marketing.xlk.dto;
2
+
3
+import com.baomidou.mybatisplus.annotation.TableName;
4
+import lombok.Data;
5
+import lombok.EqualsAndHashCode;
6
+import lombok.experimental.Accessors;
7
+
8
+import javax.validation.constraints.NotBlank;
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 组织结构表 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2021-06-22
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+@TableName("xlk_institution")
24
+public class InstitutionDTO implements Serializable {
25
+
26
+    private static final long serialVersionUID = 1L;
27
+
28
+    /**
29
+     * 组织名称
30
+     */
31
+    private String institutionName;
32
+
33
+    /**
34
+     * 组织代码
35
+     */
36
+    @NotBlank(message = "组织代码不能为空")
37
+    private String institutionCode;
38
+}

+ 3
- 0
src/main/java/com/yunzhi/marketing/xlk/entity/Institution.java Просмотреть файл

@@ -1,6 +1,8 @@
1 1
 package com.yunzhi.marketing.xlk.entity;
2 2
 
3
+import com.baomidou.mybatisplus.annotation.IdType;
3 4
 import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
4 6
 import com.baomidou.mybatisplus.annotation.TableName;
5 7
 import lombok.Data;
6 8
 import lombok.EqualsAndHashCode;
@@ -28,6 +30,7 @@ public class Institution implements Serializable {
28 30
     /**
29 31
      * 组织结构id
30 32
      */
33
+    @TableId(type = IdType.UUID)
31 34
     private String institutionId;
32 35
 
33 36
     /**

+ 21
- 0
src/main/java/com/yunzhi/marketing/xlk/service/IInstitutionService.java Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 package com.yunzhi.marketing.xlk.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.yunzhi.marketing.base.ResponseBean;
4 5
 import com.yunzhi.marketing.xlk.entity.Institution;
5 6
 
6 7
 /**
@@ -13,4 +14,24 @@ import com.yunzhi.marketing.xlk.entity.Institution;
13 14
  */
14 15
 public interface IInstitutionService extends IService<Institution> {
15 16
 
17
+    /**
18
+     * 添加组织机构
19
+     * @param institution
20
+     * @return
21
+     */
22
+    ResponseBean saveInstitution(Institution institution);
23
+
24
+    /**
25
+     * 删除组织机构
26
+     * @param id
27
+     * @return
28
+     */
29
+    ResponseBean deleteByInstitutionId(String id);
30
+
31
+    /**
32
+     * 修改组织机构
33
+     * @param institution
34
+     * @return
35
+     */
36
+    ResponseBean updateInstitution(Institution institution);
16 37
 }

+ 142
- 0
src/main/java/com/yunzhi/marketing/xlk/service/impl/InstitutionServiceImpl.java Просмотреть файл

@@ -1,11 +1,17 @@
1 1
 package com.yunzhi.marketing.xlk.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
3 4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.yunzhi.marketing.base.ResponseBean;
6
+import com.yunzhi.marketing.common.StringUtils;
4 7
 import com.yunzhi.marketing.xlk.entity.Institution;
5 8
 import com.yunzhi.marketing.xlk.mapper.InstitutionMapper;
6 9
 import com.yunzhi.marketing.xlk.service.IInstitutionService;
10
+import org.springframework.beans.factory.annotation.Autowired;
7 11
 import org.springframework.stereotype.Service;
8 12
 
13
+import java.util.List;
14
+
9 15
 /**
10 16
  * <p>
11 17
  * 组织结构表  服务实现类
@@ -17,4 +23,140 @@ import org.springframework.stereotype.Service;
17 23
 @Service
18 24
 public class InstitutionServiceImpl extends ServiceImpl<InstitutionMapper, Institution> implements IInstitutionService {
19 25
 
26
+    @Autowired
27
+    private InstitutionMapper institutionMapper;
28
+    /**
29
+     * 添加组织机构
30
+     *
31
+     * @param institution
32
+     * @return
33
+     */
34
+    @Override
35
+    public ResponseBean saveInstitution(Institution institution) {
36
+        int institutionCodeLength = institution.getInstitutionCode().length();
37
+        if (institutionCodeLength != 2 && institutionCodeLength != 4 && institutionCodeLength != 6){
38
+            return ResponseBean.error("请输入合法长度的code", ResponseBean.ERROR_UNAVAILABLE);
39
+        }
40
+
41
+        // 根据code获取机构
42
+        LambdaQueryWrapper<Institution> queryWrapper = new LambdaQueryWrapper<>();
43
+        queryWrapper.eq(Institution::getInstitutionCode,institution.getInstitutionCode());
44
+        Institution childInstitution = institutionMapper.selectOne(queryWrapper);
45
+        if (null != childInstitution){
46
+            return ResponseBean.error("此组织机构code已存在", ResponseBean.ERROR_UNAVAILABLE);
47
+        }
48
+
49
+        // 判断组织机构长度
50
+        // 集团插入
51
+        if (institutionCodeLength == 2){
52
+            institution.setType(1);
53
+        }
54
+
55
+        // 子区域插入
56
+        if (institutionCodeLength == 4){
57
+            Institution blocInstitution = getChildInstitution(institution.getInstitutionCode(), 0, 2);
58
+            if (null == blocInstitution){
59
+                return ResponseBean.error("请输入合法的有层级的code", ResponseBean.ERROR_UNAVAILABLE);
60
+            }
61
+            institution.setType(2);
62
+        }
63
+
64
+        // 子区域插入
65
+        if (institutionCodeLength == 6){
66
+            Institution blocInstitution = getChildInstitution(institution.getInstitutionCode(), 0, 2);
67
+            if (null == blocInstitution){
68
+                return ResponseBean.error("请输入合法的有层级的code", ResponseBean.ERROR_UNAVAILABLE);
69
+            }
70
+
71
+            Institution cityInstitution = getChildInstitution(institution.getInstitutionCode(), 2, 4);
72
+            if (null == cityInstitution){
73
+                return ResponseBean.error("请输入合法的有层级的code", ResponseBean.ERROR_UNAVAILABLE);
74
+            }
75
+            institution.setType(3);
76
+        }
77
+        institutionMapper.insert(institution);
78
+
79
+        return ResponseBean.success(institution);
80
+    }
81
+
82
+    /**
83
+     * 删除组织机构
84
+     *
85
+     * @param id
86
+     * @return
87
+     */
88
+    @Override
89
+    public ResponseBean deleteByInstitutionId(String id) {
90
+        Institution institution = institutionMapper.selectById(id);
91
+        LambdaQueryWrapper<Institution> queryWrapper = new LambdaQueryWrapper<>();
92
+        queryWrapper.likeLeft(Institution::getInstitutionCode,institution.getInstitutionCode());
93
+        List<Institution> institutions = institutionMapper.selectList(queryWrapper);
94
+        if (institutions.size() > 1) {
95
+            return ResponseBean.error("请先删除子公司", ResponseBean.ERROR_UNAVAILABLE);
96
+        }
97
+        institutionMapper.deleteById(id);
98
+        return ResponseBean.success("删除成功");
99
+    }
100
+
101
+    /**
102
+     * 修改组织机构
103
+     *
104
+     * @param institution
105
+     * @return
106
+     */
107
+    @Override
108
+    public ResponseBean updateInstitution(Institution institution) {
109
+        int institutionCodeLength = institution.getInstitutionCode().length();
110
+        if (institutionCodeLength != 2 && institutionCodeLength != 4 && institutionCodeLength != 6){
111
+            return ResponseBean.error("请输入合法长度的code", ResponseBean.ERROR_UNAVAILABLE);
112
+        }
113
+
114
+        // 根据code获取机构
115
+        LambdaQueryWrapper<Institution> queryWrapper = new LambdaQueryWrapper<>();
116
+        queryWrapper.eq(Institution::getInstitutionCode,institution.getInstitutionCode());
117
+        queryWrapper.ne(Institution::getInstitutionId,institution.getInstitutionId());
118
+        Institution childInstitution = institutionMapper.selectOne(queryWrapper);
119
+        if (null != childInstitution){
120
+            return ResponseBean.error("此组织机构code已存在", ResponseBean.ERROR_UNAVAILABLE);
121
+        }
122
+
123
+        // 判断组织机构长度
124
+        // 集团插入
125
+        if (institutionCodeLength == 2){
126
+            institution.setType(1);
127
+        }
128
+
129
+        // 子区域插入
130
+        if (institutionCodeLength == 4){
131
+            Institution blocInstitution = getChildInstitution(institution.getInstitutionCode(), 0, 1);
132
+            if (null == blocInstitution){
133
+                return ResponseBean.error("请输入合法的有层级的code", ResponseBean.ERROR_UNAVAILABLE);
134
+            }
135
+            institution.setType(2);
136
+        }
137
+
138
+        // 子区域插入
139
+        if (institutionCodeLength == 6){
140
+            Institution blocInstitution = getChildInstitution(institution.getInstitutionCode(), 0, 1);
141
+            if (null == blocInstitution){
142
+                return ResponseBean.error("请输入合法的有层级的code", ResponseBean.ERROR_UNAVAILABLE);
143
+            }
144
+
145
+            Institution cityInstitution = getChildInstitution(institution.getInstitutionCode(), 2, 3);
146
+            if (null == cityInstitution){
147
+                return ResponseBean.error("请输入合法的有层级的code", ResponseBean.ERROR_UNAVAILABLE);
148
+            }
149
+            institution.setType(3);
150
+        }
151
+        institutionMapper.updateById(institution);
152
+
153
+        return ResponseBean.success(institution);
154
+    }
155
+
156
+    private Institution getChildInstitution(String institutionCode, int start, int end) {
157
+        String blocCode = institutionCode.substring(start, end);
158
+        LambdaQueryWrapper<Institution> blocQuery = new LambdaQueryWrapper<>();
159
+        blocQuery.eq(Institution::getInstitutionCode,blocCode);
160
+        return institutionMapper.selectOne(blocQuery);
161
+    }
20 162
 }

+ 1
- 1
src/main/resources/application-dev.yml Просмотреть файл

@@ -1,5 +1,5 @@
1 1
 server:
2
-  port: 8081
2
+  port: 9091
3 3
 spring:
4 4
   application:
5 5
     name: marketing-cloud