傅行帆 преди 3 години
родител
ревизия
9c8e27f422

+ 26
- 1
src/main/java/com/yunzhi/marketing/controller/TaBuildingController.java Целия файл

@@ -1,6 +1,7 @@
1 1
 package com.yunzhi.marketing.controller;
2 2
 
3 3
 
4
+import com.alibaba.fastjson.JSONObject;
4 5
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 6
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 7
 import com.yunzhi.marketing.base.BaseController;
@@ -18,6 +19,7 @@ import com.yunzhi.marketing.service.ITaBuildingService;
18 19
 import com.yunzhi.marketing.service.ITaPersonBuildingService;
19 20
 import com.yunzhi.marketing.service.ITaPersonService;
20 21
 import com.yunzhi.marketing.service.ITaSaveService;
22
+import com.yunzhi.marketing.xlk.service.ISceneLogService;
21 23
 import io.swagger.annotations.Api;
22 24
 import io.swagger.annotations.ApiImplicitParam;
23 25
 import io.swagger.annotations.ApiImplicitParams;
@@ -63,6 +65,9 @@ public class TaBuildingController extends BaseController {
63 65
     @Autowired
64 66
     ITaPersonBuildingService taPersonBuildingService;
65 67
 
68
+    @Autowired
69
+    private ISceneLogService iSceneLogService;
70
+
66 71
 
67 72
     /**
68 73
      * 楼盘详情
@@ -161,7 +166,27 @@ public class TaBuildingController extends BaseController {
161 166
     })
162 167
     @PutMapping("/admin/building/update")
163 168
     public ResponseBean buildingUpdate(@RequestBody String parameter, HttpServletRequest request) {
164
-        return taBuildingService.buildingUpdate(parameter, getOrgId(request));
169
+        ResponseBean responseBean = taBuildingService.buildingUpdate(parameter, getOrgId(request));
170
+        JSONObject object = JSONObject.parseObject(parameter);
171
+        TaBuilding building = object.toJavaObject(TaBuilding.class);
172
+        iSceneLogService.saveLogs(getUserId(request),"building",building.getBuildingId());
173
+        return responseBean;
174
+    }
175
+
176
+    /**
177
+     * 获取项目更新日志
178
+     */
179
+    @ApiOperation(value = "获取项目更新日志", notes = "获取项目更新日志")
180
+    @ApiImplicitParams({
181
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "query", name = "pageNum", value = "第几页"),
182
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "query", name = "pageSize", value = "一页多少行"),
183
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "query", name = "buildingId", value = "项目id"),
184
+    })
185
+    @GetMapping("/admin/building/logs")
186
+    public ResponseBean buildingUpdate(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
187
+                                       @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
188
+                                       @RequestParam(value = "buildingId", required = false) String buildingId, HttpServletRequest request) {
189
+        return iSceneLogService.getBuildingLogs(pageNum,pageSize,buildingId, getTaPersonBuildingListByUserId(request), getInstitutionIds(request));
165 190
     }
166 191
 
167 192
     /**

+ 153
- 0
src/main/java/com/yunzhi/marketing/xlk/controller/SceneLogController.java Целия файл

@@ -0,0 +1,153 @@
1
+package com.yunzhi.marketing.xlk.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.yunzhi.marketing.base.BaseController;
7
+import com.yunzhi.marketing.base.ResponseBean;
8
+import com.yunzhi.marketing.xlk.entity.SceneLog;
9
+import com.yunzhi.marketing.xlk.service.ISceneLogService;
10
+import io.swagger.annotations.Api;
11
+import io.swagger.annotations.ApiOperation;
12
+import org.slf4j.Logger;
13
+import org.slf4j.LoggerFactory;
14
+import org.springframework.beans.factory.annotation.Autowired;
15
+import org.springframework.web.bind.annotation.*;
16
+
17
+import javax.servlet.http.HttpServletRequest;
18
+
19
+/**
20
+ * <p>
21
+    * 业务日志记录表  前端控制器
22
+    * </p>
23
+ *
24
+ * @author jobob
25
+ * @since 2021-10-08
26
+ */
27
+@RestController
28
+@RequestMapping("/api")
29
+@Api(value = "", tags = "xlk-")
30
+public class SceneLogController extends BaseController {
31
+
32
+    private final Logger logger = LoggerFactory.getLogger(SceneLogController.class);
33
+
34
+    @Autowired
35
+    public ISceneLogService iSceneLogService;
36
+
37
+
38
+    /**
39
+     * 分页查询列表
40
+     * @param pageNum
41
+     * @param pageSize
42
+     * @return
43
+     */
44
+    @ApiOperation(value = "", notes = "")
45
+    @RequestMapping(value="/sceneLog",method= RequestMethod.GET)
46
+    public ResponseBean sceneLogList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                     @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
48
+                                     @RequestHeader("authorization") String token, HttpServletRequest request){
49
+        ResponseBean responseBean = new ResponseBean();
50
+        try {
51
+            //使用分页插件
52
+		    IPage<SceneLog> pg = new Page<>(pageNum, pageSize);
53
+            LambdaQueryWrapper<SceneLog> queryWrapper = new LambdaQueryWrapper<>();
54
+
55
+            IPage<SceneLog> result = iSceneLogService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("sceneLogList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param sceneLog 实体对象
68
+     * @return
69
+     */
70
+    @ApiOperation(value = "", notes = "")
71
+    @RequestMapping(value="/sceneLog",method= RequestMethod.POST)
72
+    public ResponseBean sceneLogAdd(@RequestBody SceneLog sceneLog, @RequestHeader("authorization") String token, HttpServletRequest request){
73
+        ResponseBean responseBean = new ResponseBean();
74
+        try {
75
+            if (iSceneLogService.save(sceneLog)){
76
+                responseBean.addSuccess(sceneLog);
77
+            }else {
78
+                responseBean.addError("fail");
79
+            }
80
+        }catch (Exception e){
81
+            e.printStackTrace();
82
+            logger.error("sceneLogAdd -=- {}",e.toString());
83
+            responseBean.addError(e.getMessage());
84
+        }
85
+        return responseBean;
86
+    }
87
+
88
+    /**
89
+     * 根据id删除对象
90
+     * @param id  实体ID
91
+     */
92
+    @ApiOperation(value = "", notes = "")
93
+    @ResponseBody
94
+    @RequestMapping(value="/sceneLog/{id}", method= RequestMethod.DELETE)
95
+    public ResponseBean sceneLogDelete(@PathVariable String id, @RequestHeader("authorization") String token, HttpServletRequest request){
96
+        ResponseBean responseBean = new ResponseBean();
97
+        try {
98
+            if(iSceneLogService.removeById(id)){
99
+                responseBean.addSuccess("success");
100
+            }else {
101
+                responseBean.addError("fail");
102
+            }
103
+        }catch (Exception e){
104
+            e.printStackTrace();
105
+            logger.error("sceneLogDelete -=- {}",e.toString());
106
+            responseBean.addError(e.getMessage());
107
+        }
108
+        return responseBean;
109
+    }
110
+
111
+    /**
112
+     * 修改对象
113
+     * @param id  实体ID
114
+     * @param sceneLog 实体对象
115
+     * @return
116
+     */
117
+    @ApiOperation(value = "", notes = "")
118
+    @RequestMapping(value="/sceneLog/{id}",method= RequestMethod.PUT)
119
+    public ResponseBean sceneLogUpdate(@PathVariable String id,
120
+                                       @RequestBody SceneLog sceneLog, @RequestHeader("authorization") String token, HttpServletRequest request){
121
+        ResponseBean responseBean = new ResponseBean();
122
+        try {
123
+            if (iSceneLogService.updateById(sceneLog)){
124
+                responseBean.addSuccess(sceneLog);
125
+            }else {
126
+                responseBean.addError("fail");
127
+            }
128
+        }catch (Exception e){
129
+            e.printStackTrace();
130
+            logger.error("sceneLogUpdate -=- {}",e.toString());
131
+            responseBean.addError(e.getMessage());
132
+        }
133
+        return responseBean;
134
+    }
135
+
136
+    /**
137
+     * 根据id查询对象
138
+     * @param id  实体ID
139
+     */
140
+    @ApiOperation(value = "", notes = "")
141
+    @RequestMapping(value="/sceneLog/{id}",method= RequestMethod.GET)
142
+    public ResponseBean sceneLogGet(@PathVariable String id, @RequestHeader("authorization") String token, HttpServletRequest request){
143
+        ResponseBean responseBean = new ResponseBean();
144
+        try {
145
+            responseBean.addSuccess(iSceneLogService.getById(id));
146
+        }catch (Exception e){
147
+            e.printStackTrace();
148
+            logger.error("sceneLogDelete -=- {}",e.toString());
149
+            responseBean.addError(e.getMessage());
150
+        }
151
+        return responseBean;
152
+    }
153
+}

+ 66
- 0
src/main/java/com/yunzhi/marketing/xlk/entity/SceneLog.java Целия файл

@@ -0,0 +1,66 @@
1
+package com.yunzhi.marketing.xlk.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import com.baomidou.mybatisplus.annotation.TableName;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+import java.io.Serializable;
11
+import java.time.LocalDateTime;
12
+
13
+/**
14
+ * <p>
15
+ * 业务日志记录表 
16
+ * </p>
17
+ *
18
+ * @author jobob
19
+ * @since 2021-10-08
20
+ */
21
+@Data
22
+@EqualsAndHashCode(callSuper = false)
23
+@Accessors(chain = true)
24
+@TableName("xlk_scene_log")
25
+public class SceneLog implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    /**
30
+     * 组织结构id
31
+     */
32
+    @TableId(type = IdType.UUID)
33
+    private String id;
34
+
35
+    /**
36
+     * 日志类型
37
+     */
38
+    private String type;
39
+
40
+    /**
41
+     * 日志主键
42
+     */
43
+    private String uuid;
44
+
45
+    /**
46
+     * 更新人
47
+     */
48
+    private String updateId;
49
+
50
+    /**
51
+     * 更新人姓名
52
+     */
53
+    private String updateName;
54
+
55
+    /**
56
+     * 更新时间
57
+     */
58
+    private LocalDateTime updateTime;
59
+
60
+    /**
61
+     * 更新内容
62
+     */
63
+    private String content;
64
+
65
+
66
+}

+ 26
- 0
src/main/java/com/yunzhi/marketing/xlk/mapper/SceneLogMapper.java Целия файл

@@ -0,0 +1,26 @@
1
+package com.yunzhi.marketing.xlk.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.yunzhi.marketing.entity.TaBuilding;
6
+import com.yunzhi.marketing.entity.TaPersonBuilding;
7
+import com.yunzhi.marketing.xlk.entity.SceneLog;
8
+import com.yunzhi.marketing.xlk.vo.BuildingLogVO;
9
+import org.apache.ibatis.annotations.Mapper;
10
+import org.apache.ibatis.annotations.Param;
11
+
12
+import java.util.List;
13
+
14
+/**
15
+ * <p>
16
+ * 业务日志记录表  Mapper 接口
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2021-10-08
21
+ */
22
+@Mapper
23
+public interface SceneLogMapper extends BaseMapper<SceneLog> {
24
+
25
+    List<BuildingLogVO> getBuildingLogs(Page<BuildingLogVO> page, @Param("buildingId") String buildingId, @Param("personBuildingList") List<TaPersonBuilding> taPersonBuildingList, @Param("institutionIds") List<String> institutionIds);
26
+}

+ 23
- 0
src/main/java/com/yunzhi/marketing/xlk/service/ISceneLogService.java Целия файл

@@ -0,0 +1,23 @@
1
+package com.yunzhi.marketing.xlk.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.yunzhi.marketing.base.ResponseBean;
5
+import com.yunzhi.marketing.entity.TaPersonBuilding;
6
+import com.yunzhi.marketing.xlk.entity.SceneLog;
7
+
8
+import java.util.List;
9
+
10
+/**
11
+ * <p>
12
+ * 业务日志记录表  服务类
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2021-10-08
17
+ */
18
+public interface ISceneLogService extends IService<SceneLog> {
19
+
20
+    void saveLogs(Integer userId, String type, String uuid);
21
+
22
+    ResponseBean getBuildingLogs(Integer pageNum, Integer pageSize, String buildingId, List<TaPersonBuilding> taPersonBuildingListByUserId, List<String> institutionIds);
23
+}

+ 52
- 0
src/main/java/com/yunzhi/marketing/xlk/service/impl/SceneLogServiceImpl.java Целия файл

@@ -0,0 +1,52 @@
1
+package com.yunzhi.marketing.xlk.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.yunzhi.marketing.base.ResponseBean;
6
+import com.yunzhi.marketing.center.taUser.entity.TaUser;
7
+import com.yunzhi.marketing.center.taUser.mapper.TaUserMapper;
8
+import com.yunzhi.marketing.entity.TaBuilding;
9
+import com.yunzhi.marketing.entity.TaPersonBuilding;
10
+import com.yunzhi.marketing.xlk.entity.SceneLog;
11
+import com.yunzhi.marketing.xlk.mapper.SceneLogMapper;
12
+import com.yunzhi.marketing.xlk.service.ISceneLogService;
13
+import com.yunzhi.marketing.xlk.vo.BuildingLogVO;
14
+import org.springframework.beans.factory.annotation.Autowired;
15
+import org.springframework.stereotype.Service;
16
+
17
+import java.time.LocalDateTime;
18
+import java.util.List;
19
+
20
+/**
21
+ * <p>
22
+ * 业务日志记录表  服务实现类
23
+ * </p>
24
+ *
25
+ * @author jobob
26
+ * @since 2021-10-08
27
+ */
28
+@Service
29
+public class SceneLogServiceImpl extends ServiceImpl<SceneLogMapper, SceneLog> implements ISceneLogService {
30
+
31
+    @Autowired
32
+    private TaUserMapper taUserMapper;
33
+
34
+    @Override
35
+    public void saveLogs(Integer userId, String type, String uuid) {
36
+        TaUser taUser = taUserMapper.selectById(userId);
37
+        SceneLog sceneLog = new SceneLog();
38
+        sceneLog.setType(type);
39
+        sceneLog.setUuid(uuid);
40
+        sceneLog.setUpdateId(String.valueOf(userId));
41
+        sceneLog.setUpdateName(taUser.getUserName());
42
+        sceneLog.setUpdateTime(LocalDateTime.now());
43
+        this.baseMapper.insert(sceneLog);
44
+    }
45
+
46
+    @Override
47
+    public ResponseBean getBuildingLogs(Integer pageNum, Integer pageSize, String buildingId, List<TaPersonBuilding> taPersonBuildingList, List<String> InstitutionIds) {
48
+        Page<BuildingLogVO> page = new Page<>(pageNum, pageSize);
49
+        List<BuildingLogVO> buildings = this.baseMapper.getBuildingLogs(page, buildingId, taPersonBuildingList, InstitutionIds);
50
+        return ResponseBean.success(page);
51
+    }
52
+}

+ 41
- 0
src/main/java/com/yunzhi/marketing/xlk/vo/BuildingLogVO.java Целия файл

@@ -0,0 +1,41 @@
1
+package com.yunzhi.marketing.xlk.vo;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+
7
+import java.time.LocalDateTime;
8
+
9
+@Data
10
+public class BuildingLogVO {
11
+
12
+    /**
13
+     * 组织结构id
14
+     */
15
+    private String id;
16
+
17
+    /**
18
+     * 更新人
19
+     */
20
+    private String updateId;
21
+
22
+    /**
23
+     * 更新人姓名
24
+     */
25
+    private String updateName;
26
+
27
+    /**
28
+     * 更新时间
29
+     */
30
+    private LocalDateTime updateTime;
31
+
32
+    /**
33
+     * 楼盘名称
34
+     */
35
+    private String buildingName;
36
+
37
+    /**
38
+     * 楼盘id
39
+     */
40
+    private String buildingId;
41
+}

+ 35
- 0
src/main/resources/mapper/xlk/SceneLogMapper.xml Целия файл

@@ -0,0 +1,35 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.yunzhi.marketing.xlk.mapper.SceneLogMapper">
4
+
5
+    <select id="getBuildingLogs" resultType="com.yunzhi.marketing.xlk.vo.BuildingLogVO">
6
+        SELECT
7
+            t.id,
8
+            t.update_id,
9
+            t.update_name,
10
+            t.update_time,
11
+            b.building_id,
12
+            b.building_name
13
+        FROM
14
+            xlk_scene_log t
15
+            LEFT JOIN ta_building b ON t.uuid = b.building_id
16
+            AND t.type = "building"
17
+        WHERE
18
+            1 = 1
19
+        <if test="buildingId != null and buildingId != ''">
20
+            and b.building_id = #{buildingId}
21
+        </if>
22
+        <if test="institutionIds != null and institutionIds.size > 0">
23
+            AND b.institution_id in
24
+            <foreach collection="institutionIds" item="item" open="(" close=")" separator=",">
25
+                #{item}
26
+            </foreach>
27
+        </if>
28
+        <if test="personBuildingList != null and personBuildingList.size > 0">
29
+            AND b.building_id in
30
+            <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
31
+                #{personBuilding.buildingId}
32
+            </foreach>
33
+        </if>
34
+    </select>
35
+</mapper>