You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

145 lines
6.0 KiB

package com.fr.plugin.cpic.web.controller;
import com.fr.decision.authority.data.User;
import com.fr.decision.service.DecisionService;
import com.fr.decision.webservice.Response;
import com.fr.decision.webservice.annotation.LoginStatusChecker;
import com.fr.decision.webservice.bean.entry.EntryBean;
import com.fr.decision.webservice.utils.ControllerFactory;
import com.fr.decision.webservice.v10.user.UserService;
import com.fr.plugin.cpic.db.bean.CpicEntryBean;
import com.fr.plugin.cpic.db.bean.CpicHomeBean;
import com.fr.plugin.cpic.db.service.CpicEntryService;
import com.fr.plugin.cpic.db.service.CpicHomeService;
import com.fr.plugin.cpic.utils.ConvertUtil;
import com.fr.plugin.cpic.web.bean.TreeItemBean;
import com.fr.stable.web.Device;
import com.fr.third.org.apache.commons.collections4.CollectionUtils;
import com.fr.third.springframework.stereotype.Controller;
import com.fr.third.springframework.web.bind.annotation.RequestBody;
import com.fr.third.springframework.web.bind.annotation.RequestMapping;
import com.fr.third.springframework.web.bind.annotation.RequestMethod;
import com.fr.third.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 目录
*/
@Controller
@LoginStatusChecker(required = false)
@RequestMapping(value = "/cpic")
public class CpicEntryController {
@RequestMapping(value = "/home/entrys", method = RequestMethod.GET)
@ResponseBody
public Response getAllEntry(HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
String homeId = request.getParameter("homeId");
// 获取全部目录和报表
// String userId = UserService.getInstance().getAdminUserIdList().get(0);
String userId = DecisionService.getInstance().authority().userService().getAdminUserIdList().get(0);
List<EntryBean> entryBeanList = ControllerFactory.getInstance().getEntryController(userId).getEntryTree(userId, Device.PC);
// 获取门户勾选的目录
List<CpicEntryBean> cpicEntryBeanList = CpicEntryService.findList(homeId);
// 生成树结构数据
List<TreeItemBean> treeBean = ConvertUtil.toTree(entryBeanList, cpicEntryBeanList);
return Response.ok(treeBean);
} catch (Exception e) {
return Response.error("-1", "error:" + e.getMessage());
}
}
@RequestMapping(value = "/home/entrychecked", method = RequestMethod.GET)
@ResponseBody
public Response getChecked(HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
String homeId = request.getParameter("homeId");
// 获取门户勾选的目录
List<CpicEntryBean> cpicEntryBeanList = CpicEntryService.findList(homeId);
// 生成树结构数据
List<String> entryIdList = cpicEntryBeanList.stream().map(CpicEntryBean::getEntryId).collect(Collectors.toList());
return Response.ok(entryIdList);
} catch (Exception e) {
return Response.error("-1", "error:" + e.getMessage());
}
}
@RequestMapping(value = "/home/entrys", method = RequestMethod.POST)
@ResponseBody
public Response saveOrUpdate(HttpServletRequest request, HttpServletResponse response, @RequestBody List<TreeItemBean> treeBean) throws Exception {
try {
// 校验输入
// if (null == treeBean || CollectionUtils.isEmpty(treeBean)) {
// return Response.success();
// }
String homeId = request.getParameter("homeId");
// 查询home信息
CpicHomeBean home = CpicHomeService.findById(homeId);
if (null == home) {
return Response.success();
}
// 获取现有保存的数据
List<CpicEntryBean> cpicEntryBeanList = CpicEntryService.findList(homeId);
// treeBean转换
List<CpicEntryBean> checkedEntry = ConvertUtil.itemsToEntrys(treeBean);
// 获取新增和更新列表
List<CpicEntryBean> updateList = new ArrayList<>();
List<CpicEntryBean> addList = new ArrayList<>();
for (CpicEntryBean item : checkedEntry) {
CpicEntryBean temp = cpicEntryBeanList.stream().filter(entry -> entry.getEntryId().equals(item.getEntryId())).findFirst().orElse(null);
if (null != temp) {
temp.setEntryName(item.getEntryName());
updateList.add(temp);
} else {
item.setHomeId(home.getId());
item.setHomeName(home.getName());
addList.add(item);
}
}
// 获取删除列表
List<CpicEntryBean> delList = new ArrayList<>();
for (CpicEntryBean item : cpicEntryBeanList) {
CpicEntryBean temp = checkedEntry.stream().filter(entry -> entry.getEntryId().equals(item.getEntryId())).findFirst().orElse(null);
if (null == temp) {
delList.add(item);
}
}
// 更新
if (CollectionUtils.isNotEmpty(updateList)) {
for (CpicEntryBean entry : updateList) {
CpicEntryService.saveOrUpdate(entry);
}
}
// 新增
if (CollectionUtils.isNotEmpty(addList)) {
for (CpicEntryBean entry : addList) {
CpicEntryService.saveOrUpdate(entry);
}
}
// 删除
if (CollectionUtils.isNotEmpty(delList)) {
for (CpicEntryBean entry : delList) {
CpicEntryService.realDel(entry.getId());
}
}
return Response.success();
} catch (Exception e) {
return Response.error("-1", "error:" + e.getMessage());
}
}
}