fuxingfan 4 年之前
父節點
當前提交
21163f0c1f

+ 1
- 0
src/main/java/com/yunzhi/marketing/interceptor/AccessInterceptor.java 查看文件

77
             "/api/fadd/",//所有的法大大回调放过
77
             "/api/fadd/",//所有的法大大回调放过
78
             "/api/third",
78
             "/api/third",
79
             "/api/third/redirect/",
79
             "/api/third/redirect/",
80
+            "/file/",
80
             "/api/official/" // 官网接口
81
             "/api/official/" // 官网接口
81
     };
82
     };
82
 
83
 

+ 26
- 24
src/main/java/com/yunzhi/marketing/xlk/controller/InstitutionController.java 查看文件

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

+ 38
- 0
src/main/java/com/yunzhi/marketing/xlk/dto/InstitutionDTO.java 查看文件

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

+ 21
- 0
src/main/java/com/yunzhi/marketing/xlk/service/IInstitutionService.java 查看文件

1
 package com.yunzhi.marketing.xlk.service;
1
 package com.yunzhi.marketing.xlk.service;
2
 
2
 
3
 import com.baomidou.mybatisplus.extension.service.IService;
3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.yunzhi.marketing.base.ResponseBean;
4
 import com.yunzhi.marketing.xlk.entity.Institution;
5
 import com.yunzhi.marketing.xlk.entity.Institution;
5
 
6
 
6
 /**
7
 /**
13
  */
14
  */
14
 public interface IInstitutionService extends IService<Institution> {
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
 package com.yunzhi.marketing.xlk.service.impl;
1
 package com.yunzhi.marketing.xlk.service.impl;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
3
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.yunzhi.marketing.base.ResponseBean;
6
+import com.yunzhi.marketing.common.StringUtils;
4
 import com.yunzhi.marketing.xlk.entity.Institution;
7
 import com.yunzhi.marketing.xlk.entity.Institution;
5
 import com.yunzhi.marketing.xlk.mapper.InstitutionMapper;
8
 import com.yunzhi.marketing.xlk.mapper.InstitutionMapper;
6
 import com.yunzhi.marketing.xlk.service.IInstitutionService;
9
 import com.yunzhi.marketing.xlk.service.IInstitutionService;
10
+import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.stereotype.Service;
11
 import org.springframework.stereotype.Service;
8
 
12
 
13
+import java.util.List;
14
+
9
 /**
15
 /**
10
  * <p>
16
  * <p>
11
  * 组织结构表  服务实现类
17
  * 组织结构表  服务实现类
17
 @Service
23
 @Service
18
 public class InstitutionServiceImpl extends ServiceImpl<InstitutionMapper, Institution> implements IInstitutionService {
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
 server:
1
 server:
2
-  port: 8081
2
+  port: 9091
3
 spring:
3
 spring:
4
   application:
4
   application:
5
     name: marketing-cloud
5
     name: marketing-cloud