【fix sonar】VxeMockController文件
This commit is contained in:
+37
-21
@@ -16,6 +16,8 @@ import com.jero.common.system.query.QueryCondition;
|
|||||||
import com.jero.common.system.query.QueryGenerator;
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
import com.jero.modules.demo.mock.vxe.entity.MockEntity;
|
import com.jero.modules.demo.mock.vxe.entity.MockEntity;
|
||||||
import com.jero.modules.demo.mock.vxe.websocket.VXESocket;
|
import com.jero.modules.demo.mock.vxe.websocket.VXESocket;
|
||||||
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -38,7 +40,7 @@ public class VxeMockController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/change1")
|
@GetMapping("/change1")
|
||||||
public Result mockChange1(@RequestParam("id") String id, @RequestParam("status") String status) {
|
public Result<T> mockChange1(@RequestParam("id") String id, @RequestParam("status") String status) {
|
||||||
/* id 为 行的id(rowId),只要获取到rowId,那么只需要调用 VXESocket.sendMessageToAll() 即可 */
|
/* id 为 行的id(rowId),只要获取到rowId,那么只需要调用 VXESocket.sendMessageToAll() 即可 */
|
||||||
|
|
||||||
// 封装行数据
|
// 封装行数据
|
||||||
@@ -61,7 +63,7 @@ public class VxeMockController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/change2")
|
@GetMapping("/change2")
|
||||||
public Result mockChange2(@RequestParam("id") String id, @RequestParam("tug_status") String tug_status) {
|
public Result<T> mockChange2(@RequestParam("id") String id, @RequestParam("tug_status") String tug_status) {
|
||||||
/* id 为 行的id(rowId),只要获取到rowId,那么只需要调用 VXESocket.sendMessageToAll() 即可 */
|
/* id 为 行的id(rowId),只要获取到rowId,那么只需要调用 VXESocket.sendMessageToAll() 即可 */
|
||||||
|
|
||||||
// 封装行数据
|
// 封装行数据
|
||||||
@@ -85,7 +87,7 @@ public class VxeMockController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/change3")
|
@GetMapping("/change3")
|
||||||
public Result mockChange3(@RequestParam("id") String id, @RequestParam("progress") String progress) {
|
public Result<T> mockChange3(@RequestParam("id") String id, @RequestParam("progress") String progress) {
|
||||||
/* id 为 行的id(rowId),只要获取到rowId,那么只需要调用 VXESocket.sendMessageToAll() 即可 */
|
/* id 为 行的id(rowId),只要获取到rowId,那么只需要调用 VXESocket.sendMessageToAll() 即可 */
|
||||||
|
|
||||||
// 封装行数据
|
// 封装行数据
|
||||||
@@ -121,7 +123,7 @@ public class VxeMockController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/change4")
|
@GetMapping("/change4")
|
||||||
public Result mockChange4(@RequestParam("status") String status) {
|
public Result<T> mockChange4(@RequestParam("status") String status) {
|
||||||
// 封装socket数据
|
// 封装socket数据
|
||||||
JSONObject socketData = new JSONObject();
|
JSONObject socketData = new JSONObject();
|
||||||
// 这里的 key 是前端注册时使用的key,必须保持一致
|
// 这里的 key 是前端注册时使用的key,必须保持一致
|
||||||
@@ -143,7 +145,7 @@ public class VxeMockController {
|
|||||||
* @param rowData 行数据,实际使用时可以替换成一个实体类
|
* @param rowData 行数据,实际使用时可以替换成一个实体类
|
||||||
*/
|
*/
|
||||||
@PostMapping ("/immediateSaveRow")
|
@PostMapping ("/immediateSaveRow")
|
||||||
public Result mockImmediateSaveRow(@RequestBody JSONObject rowData) throws Exception {
|
public Result<T> mockImmediateSaveRow(@RequestBody JSONObject rowData) throws InterruptedException {
|
||||||
log.info("即时保存.rowData:" + rowData.toJSONString());
|
log.info("即时保存.rowData:" + rowData.toJSONString());
|
||||||
// 延时1.5秒,模拟网慢堵塞真实感
|
// 延时1.5秒,模拟网慢堵塞真实感
|
||||||
Thread.sleep(500);
|
Thread.sleep(500);
|
||||||
@@ -156,7 +158,7 @@ public class VxeMockController {
|
|||||||
* @param tableData 表格数据(实际使用时可以替换成一个List实体类)
|
* @param tableData 表格数据(实际使用时可以替换成一个List实体类)
|
||||||
*/
|
*/
|
||||||
@PostMapping("/immediateSaveAll")
|
@PostMapping("/immediateSaveAll")
|
||||||
public Result mockImmediateSaveAll(@RequestBody JSONArray tableData) throws Exception {
|
public Result<T> mockImmediateSaveAll(@RequestBody JSONArray tableData) throws InterruptedException {
|
||||||
// 【注】:
|
// 【注】:
|
||||||
// 1、tableData里包含该页所有的数据
|
// 1、tableData里包含该页所有的数据
|
||||||
// 2、如果你实现了“即时保存”,那么除了新增的数据,其他的都是已经保存过的了,
|
// 2、如果你实现了“即时保存”,那么除了新增的数据,其他的都是已经保存过的了,
|
||||||
@@ -179,7 +181,7 @@ public class VxeMockController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getData")
|
@GetMapping("/getData")
|
||||||
public Result getMockData(
|
public Result<IPage<JSONObject>> getMockData(
|
||||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
// 父级id,根据父级id查询子级,如果为空则查询顶级
|
// 父级id,根据父级id查询子级,如果为空则查询顶级
|
||||||
@@ -205,7 +207,7 @@ public class VxeMockController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getDdjhData")
|
@GetMapping("/getDdjhData")
|
||||||
public Result getMockDdjhData(
|
public Result<IPage<JSONObject>> getMockDdjhData(
|
||||||
// SpringMVC 会自动将参数注入到实体里
|
// SpringMVC 会自动将参数注入到实体里
|
||||||
MockEntity mockEntity,
|
MockEntity mockEntity,
|
||||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@@ -223,8 +225,8 @@ public class VxeMockController {
|
|||||||
Map<String, String[]> parameterMap = request.getParameterMap();
|
Map<String, String[]> parameterMap = request.getParameterMap();
|
||||||
// 遍历输出到控制台
|
// 遍历输出到控制台
|
||||||
log.info("\ngetDdjhData - 普通查询条件:");
|
log.info("\ngetDdjhData - 普通查询条件:");
|
||||||
for (String key : parameterMap.keySet()) {
|
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
|
||||||
log.info("-- " + key + ": " + JSON.toJSONString(parameterMap.get(key)));
|
log.info("-- " + entry.getKey() + ": " + JSON.toJSONString(entry.getValue()));
|
||||||
}
|
}
|
||||||
// 输出高级查询
|
// 输出高级查询
|
||||||
try {
|
try {
|
||||||
@@ -270,13 +272,20 @@ public class VxeMockController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
IPage<JSONObject> page = this.queryDataPage(dataList, parentId, pageNo, pageSize);
|
IPage<JSONObject> page = this.queryDataPage(dataList, parentId, pageNo, pageSize);
|
||||||
|
List<JSONObject> records = getJsonObjects(dataList, page);
|
||||||
|
page.setRecords(records);
|
||||||
|
return Result.OK(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private List<JSONObject> getJsonObjects(JSONArray dataList, IPage<JSONObject> page) {
|
||||||
// 逐行查询子表数据,用于计算拖轮状态
|
// 逐行查询子表数据,用于计算拖轮状态
|
||||||
List<JSONObject> records = page.getRecords();
|
List<JSONObject> records = page.getRecords();
|
||||||
for (JSONObject record : records) {
|
for (JSONObject obj : records) {
|
||||||
Map<String, Integer> tugStatusMap = new HashMap<>();
|
Map<String, Integer> tugStatusMap = new HashMap<>();
|
||||||
String id = record.getString("id");
|
String id = obj.getString("id");
|
||||||
// 查询出主表的拖轮
|
// 查询出主表的拖轮
|
||||||
String tugMain = record.getString("tug");
|
String tugMain = obj.getString("tug");
|
||||||
// 判断是否有值
|
// 判断是否有值
|
||||||
if (StringUtils.isNotBlank(tugMain)) {
|
if (StringUtils.isNotBlank(tugMain)) {
|
||||||
// 拖轮根据分号分割
|
// 拖轮根据分号分割
|
||||||
@@ -284,9 +293,24 @@ public class VxeMockController {
|
|||||||
// 查询子表数据
|
// 查询子表数据
|
||||||
List<JSONObject> subRecords = this.queryDataPage(dataList, id, null, null).getRecords();
|
List<JSONObject> subRecords = this.queryDataPage(dataList, id, null, null).getRecords();
|
||||||
// 遍历子表和拖轮数据,找出进行计算反推拖轮状态
|
// 遍历子表和拖轮数据,找出进行计算反推拖轮状态
|
||||||
|
doForSubRecords(tugStatusMap, tugs, subRecords);
|
||||||
|
}
|
||||||
|
// 新加一个字段用于保存拖轮状态,不要直接覆盖原来的,这个字段可以不保存到数据库里
|
||||||
|
obj.put("tug_status", tugStatusMap);
|
||||||
|
}
|
||||||
|
return records;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doForSubRecords(Map<String, Integer> tugStatusMap, String[] tugs, List<JSONObject> subRecords) {
|
||||||
for (JSONObject subData : subRecords) {
|
for (JSONObject subData : subRecords) {
|
||||||
String subTug = subData.getString("tug");
|
String subTug = subData.getString("tug");
|
||||||
if (StringUtils.isNotBlank(subTug)) {
|
if (StringUtils.isNotBlank(subTug)) {
|
||||||
|
doForTugs(tugStatusMap, tugs, subData, subTug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doForTugs(Map<String, Integer> tugStatusMap, String[] tugs, JSONObject subData, String subTug) {
|
||||||
for (String tug : tugs) {
|
for (String tug : tugs) {
|
||||||
if (tug.equals(subTug)) {
|
if (tug.equals(subTug)) {
|
||||||
// 计算拖轮状态逻辑
|
// 计算拖轮状态逻辑
|
||||||
@@ -320,14 +344,6 @@ public class VxeMockController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
// 新加一个字段用于保存拖轮状态,不要直接覆盖原来的,这个字段可以不保存到数据库里
|
|
||||||
record.put("tug_status", tugStatusMap);
|
|
||||||
}
|
|
||||||
page.setRecords(records);
|
|
||||||
return Result.OK(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 模拟查询数据,可以根据父ID查询,可以分页
|
* 模拟查询数据,可以根据父ID查询,可以分页
|
||||||
|
|||||||
Reference in New Issue
Block a user