package com.highdatas.mdm.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.highdatas.mdm.entity.SysViewLogic;
import com.highdatas.mdm.entity.SysViewLogicmap;
import com.highdatas.mdm.pojo.CodeMsg;
import com.highdatas.mdm.pojo.Result;
import com.highdatas.mdm.service.ISysViewLogicService;
import com.highdatas.mdm.service.ISysViewLogicmapService;
import com.highdatas.mdm.util.Constant;
import com.highdatas.mdm.util.DbUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* 前端控制器
*
*
* @author kimi
* @since 2020-04-22
*/
@RestController
@RequestMapping("/sysView/logic")
public class SysViewLogicController {
@Autowired
ISysViewLogicService logicService;
@Autowired
ISysViewLogicmapService logicmapService;
/**
*
* @description: 获取视图逻辑转换列表
* @return: 逻辑转换列表
*
*/
@RequestMapping(value = "/all", method = RequestMethod.GET)
public Result getList() {
//获取可有的列表
List aciveLogic = logicService.selectList(new EntityWrapper().eq("active", true));
return Result.success(aciveLogic);
}
/**
*
* @description: 获取视图已经使用的逻辑列表
* @param parentId 视图id
* @return: 视图已经使用的逻辑列表
*
*/
@RequestMapping(value = "/allmap/{parentId}", method = RequestMethod.GET)
public Result allmap(@PathVariable String parentId) {
//视图已经使用的逻辑列表
List aciveLogic = logicmapService.selectList(new EntityWrapper().eq(Constant.PARENT_ID, parentId));
return Result.success(aciveLogic);
}
/**
*
* @description: 更新视图已经使用的逻辑列表
* @param parentId 视图id
* @return: 是否更新成功已经使用的逻辑列表
*
*/
@RequestMapping(value = "/updateMaps/{parentId}", method = RequestMethod.POST)
public Result updateMaps(@PathVariable String parentId, @RequestBody List logicmaps) {
//删除原来的mapping关系
boolean delete = logicmapService.delete(new EntityWrapper().eq(Constant.PARENT_ID, parentId));
boolean insert = false;
//循环创建新的字段和逻辑的mapping关系
for (SysViewLogicmap logicmap : logicmaps) {
insert = logicmap.setId(DbUtils.getUUID()).setParentId(parentId).insert();
if (!insert) {
return Result.error(CodeMsg.INSERT_ERROR);
}
}
return Result.success(null);
}
/**
*
* @description: 添加视图已经使用的逻辑
* @return: 是否添加成功
*
*/
@RequestMapping(value = "/addmap", method = RequestMethod.POST)
public Result addmap(@RequestBody SysViewLogicmap logicmap) {
//添加一条逻辑转换关系
boolean insert = logicmap.setId(DbUtils.getUUID()).insert();
if (insert) {
return Result.success(insert);
} else {
return Result.error(CodeMsg.INSERT_ERROR);
}
}
/**
*
* @description: 删除视图已经使用的逻辑
* @param id mapping 关系的id
* @return: 是否删除成功
*
*/
@RequestMapping(value = "/deletemap/{id}", method = RequestMethod.POST)
public Result deletemap(@PathVariable String id) {
//通过id 删除mapping关系
boolean delete = logicmapService.deleteById(id);
if (delete) {
return Result.success(CodeMsg.DELETE_SUCCESS);
} else {
return Result.success(CodeMsg.DELETE_ERROR);
}
}
/**
*
* @description: 更新视图已经使用的逻辑
* @return: 是否更新成功
*
*/
@RequestMapping(value = "/updatemap", method = RequestMethod.POST)
public Result updatemap(@RequestBody SysViewLogicmap logicmap) {
String id = logicmap.getId();
//判断id是否存在
if (StringUtils.isEmpty(id)) {
return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
}
//更新记录
boolean insert = logicmap.updateById();
if (insert) {
return Result.success(insert);
} else {
return Result.error(CodeMsg.INSERT_ERROR);
}
}
/**
*
* @description: 添加系统中可以使用的逻辑转换类型
* @return: 是否添加成功
*
*/
@RequestMapping(value = "/add", method = RequestMethod.POST)
public Result add(@RequestBody SysViewLogic logic) {
//添加记录
boolean insert = logic.setId(DbUtils.getUUID()).insert();
if (insert) {
return Result.success(insert);
} else {
return Result.error(CodeMsg.INSERT_ERROR);
}
}
/**
*
* @description: 更新系统中可以使用的逻辑转换类型
* @return: 是否更新成功
*
*/
@RequestMapping(value = "/update", method = RequestMethod.POST)
public Result update(@RequestBody SysViewLogic logic) {
String id = logic.getId();
//判断id是否存在
if (StringUtils.isEmpty(id)) {
return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
}
//更新记录
boolean b = logic.updateById();
if (b) {
return Result.success(logic);
} else {
return Result.error(CodeMsg.UPDATE_ERROR);
}
}
}