010ad16d2a4191e391d0b0591f6f1e9159e02af9.svn-base 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. package org.jeecg.modules.system.controller;
  2. import java.io.IOException;
  3. import java.io.UnsupportedEncodingException;
  4. import java.net.URLDecoder;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. import java.util.Map;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import org.apache.shiro.SecurityUtils;
  11. import org.jeecg.common.api.vo.Result;
  12. import org.jeecg.common.system.query.QueryGenerator;
  13. import org.jeecg.common.system.vo.LoginUser;
  14. import org.jeecg.common.util.oConvertUtils;
  15. import org.jeecg.modules.system.entity.SysUserAgent;
  16. import org.jeecg.modules.system.service.ISysUserAgentService;
  17. import org.jeecgframework.poi.excel.ExcelImportUtil;
  18. import org.jeecgframework.poi.excel.def.NormalExcelConstants;
  19. import org.jeecgframework.poi.excel.entity.ExportParams;
  20. import org.jeecgframework.poi.excel.entity.ImportParams;
  21. import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.beans.factory.annotation.Value;
  24. import org.springframework.web.bind.annotation.PostMapping;
  25. import org.springframework.web.bind.annotation.GetMapping;
  26. import org.springframework.web.bind.annotation.PostMapping;
  27. import org.springframework.web.bind.annotation.PostMapping;
  28. import org.springframework.web.bind.annotation.RequestBody;
  29. import org.springframework.web.bind.annotation.RequestMapping;
  30. import org.springframework.web.bind.annotation.RequestMethod;
  31. import org.springframework.web.bind.annotation.RequestParam;
  32. import org.springframework.web.bind.annotation.RestController;
  33. import org.springframework.web.multipart.MultipartFile;
  34. import org.springframework.web.multipart.MultipartHttpServletRequest;
  35. import org.springframework.web.servlet.ModelAndView;
  36. import com.alibaba.fastjson.JSON;
  37. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  38. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  39. import com.baomidou.mybatisplus.core.metadata.IPage;
  40. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  41. import lombok.extern.slf4j.Slf4j;
  42. /**
  43. * @Title: Controller
  44. * @Description: 用户代理人设置
  45. * @Author: jeecg-boot
  46. * @Date: 2019-04-17
  47. * @Version: V1.0
  48. */
  49. @RestController
  50. @RequestMapping("/sys/sysUserAgent")
  51. @Slf4j
  52. public class SysUserAgentController {
  53. @Autowired
  54. private ISysUserAgentService sysUserAgentService;
  55. @Value("${jeecg.path.upload}")
  56. private String upLoadPath;
  57. /**
  58. * 分页列表查询
  59. * @param sysUserAgent
  60. * @param pageNo
  61. * @param pageSize
  62. * @param req
  63. * @return
  64. */
  65. @GetMapping(value = "/list")
  66. public Result<IPage<SysUserAgent>> queryPageList(SysUserAgent sysUserAgent,
  67. @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
  68. @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
  69. HttpServletRequest req) {
  70. Result<IPage<SysUserAgent>> result = new Result<IPage<SysUserAgent>>();
  71. QueryWrapper<SysUserAgent> queryWrapper = QueryGenerator.initQueryWrapper(sysUserAgent, req.getParameterMap());
  72. Page<SysUserAgent> page = new Page<SysUserAgent>(pageNo, pageSize);
  73. IPage<SysUserAgent> pageList = sysUserAgentService.page(page, queryWrapper);
  74. result.setSuccess(true);
  75. result.setResult(pageList);
  76. return result;
  77. }
  78. /**
  79. * 添加
  80. * @param sysUserAgent
  81. * @return
  82. */
  83. @PostMapping(value = "/add")
  84. public Result<SysUserAgent> add(@RequestBody SysUserAgent sysUserAgent) {
  85. Result<SysUserAgent> result = new Result<SysUserAgent>();
  86. try {
  87. sysUserAgentService.save(sysUserAgent);
  88. result.success("代理人设置成功!");
  89. } catch (Exception e) {
  90. log.error(e.getMessage(),e);
  91. result.error500("操作失败");
  92. }
  93. return result;
  94. }
  95. /**
  96. * 编辑
  97. * @param sysUserAgent
  98. * @return
  99. */
  100. @PostMapping(value = "/edit")
  101. public Result<SysUserAgent> edit(@RequestBody SysUserAgent sysUserAgent) {
  102. Result<SysUserAgent> result = new Result<SysUserAgent>();
  103. SysUserAgent sysUserAgentEntity = sysUserAgentService.getById(sysUserAgent.getId());
  104. if(sysUserAgentEntity==null) {
  105. result.error500("未找到对应实体");
  106. }else {
  107. boolean ok = sysUserAgentService.updateById(sysUserAgent);
  108. //TODO 返回false说明什么?
  109. if(ok) {
  110. result.success("代理人设置成功!");
  111. }
  112. }
  113. return result;
  114. }
  115. /**
  116. * 通过id删除
  117. * @param id
  118. * @return
  119. */
  120. @PostMapping(value = "/delete")
  121. public Result<SysUserAgent> delete(@RequestParam(name="id",required=true) String id) {
  122. Result<SysUserAgent> result = new Result<SysUserAgent>();
  123. SysUserAgent sysUserAgent = sysUserAgentService.getById(id);
  124. if(sysUserAgent==null) {
  125. result.error500("未找到对应实体");
  126. }else {
  127. boolean ok = sysUserAgentService.removeById(id);
  128. if(ok) {
  129. result.success("删除成功!");
  130. }
  131. }
  132. return result;
  133. }
  134. /**
  135. * 批量删除
  136. * @param ids
  137. * @return
  138. */
  139. @PostMapping(value = "/deleteBatch")
  140. public Result<SysUserAgent> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
  141. Result<SysUserAgent> result = new Result<SysUserAgent>();
  142. if(ids==null || "".equals(ids.trim())) {
  143. result.error500("参数不识别!");
  144. }else {
  145. this.sysUserAgentService.removeByIds(Arrays.asList(ids.split(",")));
  146. result.success("删除成功!");
  147. }
  148. return result;
  149. }
  150. /**
  151. * 通过id查询
  152. * @param id
  153. * @return
  154. */
  155. @GetMapping(value = "/queryById")
  156. public Result<SysUserAgent> queryById(@RequestParam(name="id",required=true) String id) {
  157. Result<SysUserAgent> result = new Result<SysUserAgent>();
  158. SysUserAgent sysUserAgent = sysUserAgentService.getById(id);
  159. if(sysUserAgent==null) {
  160. result.error500("未找到对应实体");
  161. }else {
  162. result.setResult(sysUserAgent);
  163. result.setSuccess(true);
  164. }
  165. return result;
  166. }
  167. /**
  168. * 通过userName查询
  169. * @param userName
  170. * @return
  171. */
  172. @GetMapping(value = "/queryByUserName")
  173. public Result<SysUserAgent> queryByUserName(@RequestParam(name="userName",required=true) String userName) {
  174. Result<SysUserAgent> result = new Result<SysUserAgent>();
  175. LambdaQueryWrapper<SysUserAgent> queryWrapper = new LambdaQueryWrapper<SysUserAgent>();
  176. queryWrapper.eq(SysUserAgent::getUserName, userName);
  177. SysUserAgent sysUserAgent = sysUserAgentService.getOne(queryWrapper);
  178. if(sysUserAgent==null) {
  179. result.error500("未找到对应实体");
  180. }else {
  181. result.setResult(sysUserAgent);
  182. result.setSuccess(true);
  183. }
  184. return result;
  185. }
  186. /**
  187. * 导出excel
  188. *
  189. * @param sysUserAgent
  190. * @param request
  191. */
  192. @RequestMapping(value = "/exportXls")
  193. public ModelAndView exportXls(SysUserAgent sysUserAgent,HttpServletRequest request) {
  194. // Step.1 组装查询条件
  195. QueryWrapper<SysUserAgent> queryWrapper = QueryGenerator.initQueryWrapper(sysUserAgent, request.getParameterMap());
  196. //Step.2 AutoPoi 导出Excel
  197. ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
  198. List<SysUserAgent> pageList = sysUserAgentService.list(queryWrapper);
  199. //导出文件名称
  200. mv.addObject(NormalExcelConstants.FILE_NAME, "用户代理人设置列表");
  201. mv.addObject(NormalExcelConstants.CLASS, SysUserAgent.class);
  202. LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
  203. ExportParams exportParams = new ExportParams("用户代理人设置列表数据", "导出人:"+user.getRealname(), "导出信息");
  204. exportParams.setImageBasePath(upLoadPath);
  205. mv.addObject(NormalExcelConstants.PARAMS, exportParams);
  206. mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
  207. return mv;
  208. }
  209. /**
  210. * 通过excel导入数据
  211. *
  212. * @param request
  213. * @param response
  214. * @return
  215. */
  216. @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  217. public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
  218. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  219. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  220. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  221. MultipartFile file = entity.getValue();// 获取上传文件对象
  222. ImportParams params = new ImportParams();
  223. params.setTitleRows(2);
  224. params.setHeadRows(1);
  225. params.setNeedSave(true);
  226. try {
  227. List<SysUserAgent> listSysUserAgents = ExcelImportUtil.importExcel(file.getInputStream(), SysUserAgent.class, params);
  228. for (SysUserAgent sysUserAgentExcel : listSysUserAgents) {
  229. sysUserAgentService.save(sysUserAgentExcel);
  230. }
  231. return Result.ok("文件导入成功!数据行数:" + listSysUserAgents.size());
  232. } catch (Exception e) {
  233. log.error(e.getMessage(),e);
  234. return Result.error("文件导入失败!");
  235. } finally {
  236. try {
  237. file.getInputStream().close();
  238. } catch (IOException e) {
  239. e.printStackTrace();
  240. }
  241. }
  242. }
  243. return Result.error("文件导入失败!");
  244. }
  245. }