package com.bowintek.practice.controller; import com.alibaba.fastjson.JSONObject; import com.bowintek.practice.filter.exception.BaseResponse; import com.bowintek.practice.filter.exception.RespGenerstor; import com.bowintek.practice.model.SrSubject; import com.bowintek.practice.model.SrSubjectfield; import com.bowintek.practice.services.service.AccountService; import com.bowintek.practice.services.service.SubjectService; import com.bowintek.practice.services.service.UserService; import com.bowintek.practice.util.DateUtils; import com.bowintek.practice.util.ExcelHelper; import com.bowintek.practice.util.JsonMapper; import com.bowintek.practice.util.MapUtils; import com.bowintek.practice.vo.PositionModel; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @RestController @RequestMapping(value = "/api/subject") public class SubjectController { @Autowired private SubjectService subjectService; @Autowired private JsonMapper jsonMapper; @Autowired private UserService userService; @Autowired private AccountService accountService; @Autowired private MapUtils mapUtils; @Autowired private DateUtils dateUtils; @ResponseBody @GetMapping("/getList") public BaseResponse> getList(@RequestParam("page") int page, @RequestParam("rows") int rows, String subjectName, String tabName, String tabCode) throws Exception { PageInfo result = subjectService.getList(page, rows, subjectName, tabName, tabCode, null); return RespGenerstor.success(result); } @ResponseBody @PostMapping("/saveSubject") public BaseResponse saveSubject(@RequestBody JSONObject reqMap) { int count = 0; try { SrSubject dataModel = reqMap.getObject("dataModel", SrSubject.class); List fieldList = reqMap.getJSONArray("fieldList").toJavaList(SrSubjectfield.class); count = subjectService.saveSubject(dataModel, fieldList, accountService.getLoginUserID()); } catch (Exception e) { return RespGenerstor.fail("-1", "程序异常:" + e.getMessage()); } return RespGenerstor.success(count); } @ResponseBody @GetMapping("/getSubject") public BaseResponse getSubject(String subjectId) { SrSubject model = subjectService.getSubject(subjectId); return RespGenerstor.success(model); } @ResponseBody @GetMapping("/getFieldList") public BaseResponse> getFieldList(String subjectId) throws Exception { List result = subjectService.getFieldList(subjectId); return RespGenerstor.success(result); } @ResponseBody @PostMapping("/delete") public BaseResponse delete(@RequestBody List idList) { Integer result = subjectService.delete(idList); if (result <= 0) { return RespGenerstor.fail("1003", "数据已经被使用"); } return RespGenerstor.success(1); } @ResponseBody @GetMapping("/exportSubject") public void exportSubject(HttpServletResponse response, @RequestParam(required = false) List idList, String subjectName, String tabName, String tabCode) throws Exception { List dataList = subjectService.getList(1, 9999, subjectName, tabName, tabCode, idList).getList(); ExcelHelper excelHelper = new ExcelHelper(); ExcelHelper.ExcelData data = excelHelper.new ExcelData(); data.setTitles(Arrays.asList(new String[]{"主题名称", "表编码", "表名称", "描述", "创建时间", "创建人", "是否有外键字段"})); List> rowData = new ArrayList(); for (SrSubject item : dataList) { List row = new ArrayList(); row.add(item.getSubjectName()); row.add(item.getTabCode()); row.add(item.getTabName()); row.add(item.getTabDesc()); row.add(dateUtils.dateToStr(item.getCreateTime())); row.add(item.getCreatedName()); row.add(item.getIsReferences() == 1 ? "是" : "否"); rowData.add(row); } data.setRows(rowData); excelHelper.exportExcel(response, data); } }