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
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()); |
|
} |
|
} |
|
|
|
}
|
|
|