ImLibUserController.java 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316
  1. package com.ssj.sys.controller;
  2. import java.io.IOException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.Iterator;
  8. import java.util.LinkedHashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11. import javax.servlet.ServletOutputStream;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.apache.poi.ss.usermodel.Cell;
  16. import org.apache.poi.ss.usermodel.DateUtil;
  17. import org.apache.poi.ss.usermodel.Row;
  18. import org.apache.poi.ss.usermodel.Sheet;
  19. import org.apache.poi.ss.usermodel.Workbook;
  20. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.data.domain.Page;
  23. import org.springframework.data.domain.Sort.Direction;
  24. import org.springframework.stereotype.Controller;
  25. import org.springframework.ui.Model;
  26. import org.springframework.web.bind.annotation.PathVariable;
  27. import org.springframework.web.bind.annotation.RequestMapping;
  28. import org.springframework.web.bind.annotation.RequestParam;
  29. import org.springframework.web.bind.annotation.ResponseBody;
  30. import org.springframework.web.multipart.MultipartFile;
  31. import com.ssj.bean.common.framework.core.domain.Response;
  32. import com.ssj.bean.sys.imlibuser.TbClassStudent;
  33. import com.ssj.bean.sys.imlibuser.TbClassStudentTemp;
  34. import com.ssj.bean.sys.imlibuser.TbClassTeacherTemp;
  35. import com.ssj.bean.weixin.libmy.domain.LibVip;
  36. import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
  37. import com.ssj.bean.weixin.libmy.domain.TbLibManager;
  38. import com.ssj.bean.weixin.sales.domain.LibVipService;
  39. import com.ssj.bean.weixin.user.domain.User;
  40. import com.ssj.framework.basic.common.bean.SplitPage;
  41. import com.ssj.framework.basic.utils.DateHelper;
  42. import com.ssj.framework.core.common.controller.BaseController;
  43. import com.ssj.framework.core.util.Constant;
  44. import com.ssj.framework.core.util.ResponseConstant;
  45. import com.ssj.framework.core.util.ResponseEntity;
  46. import com.ssj.service.conch.common.service.ConchCommonService;
  47. import com.ssj.service.conch.parents.v2.service.ParentV2Service;
  48. import com.ssj.service.sys.easemob.service.EasemobService;
  49. import com.ssj.service.sys.imlibuser.service.TbClassService;
  50. import com.ssj.service.sys.imlibuser.service.TbClassStudentService;
  51. import com.ssj.service.sys.imlibuser.service.TbClassStudentTempService;
  52. import com.ssj.service.sys.imlibuser.service.TbClassTeacherService;
  53. import com.ssj.service.sys.imlibuser.service.TbClassTeacherTempService;
  54. import com.ssj.service.weixin.library.service.IBookManagerService;
  55. import com.ssj.service.weixin.library.service.ILibJoinConsumeService;
  56. import com.ssj.service.weixin.library.service.ILibJoinService;
  57. import com.ssj.service.weixin.library.service.ILibVipService;
  58. import com.ssj.service.weixin.sales.service.LibVipServiceService;
  59. import com.ssj.service.weixin.user.service.UserService;
  60. import com.ssj.sys.util.thirdparty.excel.CustomizeToExcel;
  61. import com.ssj.sys.util.thirdparty.excel.ExcelColumn;
  62. /**
  63. * 倒入老师和学员
  64. * 2019年10月29日10:55:14
  65. *
  66. */
  67. @RequestMapping("sys/imlibuser")
  68. @Controller
  69. public class ImLibUserController extends BaseController {
  70. @Autowired
  71. private TbClassStudentService tbLibImStudentService;
  72. @Autowired
  73. private TbClassStudentTempService tbLibImStudentTempService;
  74. @Autowired
  75. private TbClassTeacherService tbLibImTeacherService;
  76. @Autowired
  77. private TbClassTeacherTempService tbLibImTeacherTempService;
  78. @Autowired
  79. private ConchCommonService conchCommonService;
  80. @Autowired
  81. private ILibJoinService joinService;
  82. @Autowired
  83. private LibVipServiceService libVipServiceService;
  84. @Autowired
  85. private ILibVipService libVipService;
  86. @Autowired
  87. private IBookManagerService managerService;
  88. @Autowired
  89. private UserService userService;
  90. @Autowired
  91. private EasemobService easemobService;
  92. @Autowired
  93. private TbClassStudentService tbClassStudentService;
  94. @Autowired
  95. private TbClassTeacherService tbClassTeacherService;
  96. @Autowired
  97. private IBookManagerService bookManagerService;
  98. @Autowired
  99. private ILibJoinConsumeService joinConsumeService;
  100. /**
  101. * ----------------机构相关功能-----------------------
  102. */
  103. //机构首页
  104. @RequestMapping(value="/school/list")
  105. public String index(Model model,
  106. @RequestParam(required = false, defaultValue = "100") int pageSize,
  107. @RequestParam(required = false, defaultValue = "1") int pageNo){
  108. Map<String, Object> params = new HashMap<String, Object>();
  109. params.put("leagueNname", request.getParameter("leagueNname")==null?"":request.getParameter("leagueNname"));
  110. SplitPage sp = new SplitPage();
  111. sp.setAction(request.getRequestURI());
  112. sp.setPageNo(pageNo);
  113. sp.setPageSize(pageSize);
  114. sp.setParams(params);
  115. Page<Map<String,Object>> page = tbLibImStudentService.findLibImByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"create_time"}));
  116. sp.setRowCnt((int) page.getTotalElements());
  117. model.addAttribute("list", page.getContent());
  118. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  119. model.addAttribute("page", sp);
  120. model.addAttribute("search", params);
  121. return "sys/imlibuser/schoolList";
  122. }
  123. @RequestMapping(value="/school/exlist")
  124. @ResponseBody
  125. public void exportSchool( HttpServletRequest request, HttpServletResponse response) {
  126. ServletOutputStream os = null;
  127. try {
  128. String libName="校区列表_明细表";
  129. os = response.getOutputStream(); //获得输出流
  130. response.reset(); //清空输出流
  131. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  132. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  133. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  134. response.setCharacterEncoding("utf-8");
  135. Map<String, Object> params = new HashMap<String, Object>();
  136. params.put("leagueNname", request.getParameter("leagueNname")==null?"":request.getParameter("leagueNname"));
  137. SplitPage sp = new SplitPage();
  138. sp.setAction(request.getRequestURI());
  139. sp.setPageNo(1);
  140. sp.setPageSize(10000);
  141. sp.setParams(params);
  142. Page<Map<String,Object>> page = tbLibImStudentService.findLibImByPage(params, initPage(1, 10000, Direction.DESC, new String[]{"create_time"}));
  143. List<Map<String,Object>> list= page.getContent();
  144. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  145. myColumns3.add(new ExcelColumn("校区名称", "league_name", 20));
  146. myColumns3.add(new ExcelColumn("校区服务学币", "lib_service", 20));
  147. myColumns3.add(new ExcelColumn("平台服务学币", "platform_service", 20));
  148. myColumns3.add(new ExcelColumn("端口", "port_num", 20));
  149. myColumns3.add(new ExcelColumn("老师人数", "teacher_num", 20));
  150. myColumns3.add(new ExcelColumn("学生人数", "student_num", 20));
  151. CustomizeToExcel.downFile(myColumns3, list, os);
  152. }catch (IOException e) {
  153. logger.error("异常", e);
  154. }catch (Exception e1){
  155. logger.error("异常", e1);
  156. }finally{
  157. if(os != null){
  158. try {
  159. os.flush();
  160. os.close();
  161. } catch (IOException e) {
  162. logger.error("异常", e);
  163. }
  164. }
  165. }
  166. }
  167. /**
  168. * ----------------学生相关功能-----------------------
  169. */
  170. //学生导入
  171. @RequestMapping(value="/student/import")
  172. @ResponseBody
  173. public Response studentImport(Model model,@RequestParam("file") MultipartFile file) {
  174. Response response = new Response();
  175. try {
  176. List<Map<String,String>> datas=analysisExFile(file);
  177. if(datas!=null && datas.size()>0){
  178. List<TbClassStudentTemp> tbLibImStudentTemps=new ArrayList<TbClassStudentTemp>();
  179. TbClassStudentTemp tbLibImStudentTemp=null;
  180. boolean iserror=false;
  181. for (Map<String, String> map : datas) {
  182. tbLibImStudentTemp=new TbClassStudentTemp();
  183. tbLibImStudentTemp.setLeagueName(map.get("data_0"));
  184. tbLibImStudentTemp.setSchool(map.get("data_1"));
  185. tbLibImStudentTemp.setGrade(map.get("data_2"));
  186. tbLibImStudentTemp.setStudentName(map.get("data_3"));
  187. tbLibImStudentTemp.setParentName(map.get("data_4"));
  188. tbLibImStudentTemp.setParentRole(map.get("data_5"));
  189. tbLibImStudentTemp.setParentPhone(map.get("data_6"));
  190. tbLibImStudentTemp.setClassName(map.get("data_7"));
  191. if(map.containsKey("data_8")){
  192. tbLibImStudentTemp.setDerver(map.get("data_8"));
  193. }
  194. // tbLibImStudentTemp.setCorrectType(1);
  195. // if(map.containsKey("data_8")){
  196. // String correctType=map.getOrDefault("data_8","");
  197. // switch (correctType.trim()) {
  198. // case "平台":
  199. // tbLibImStudentTemp.setCorrectType(1);
  200. // break;
  201. // case "机构":
  202. // tbLibImStudentTemp.setCorrectType(2);
  203. // break;
  204. // case "家长":
  205. // tbLibImStudentTemp.setCorrectType(3);
  206. // break;
  207. // default:
  208. // tbLibImStudentTemp.setCorrectType(1);
  209. // break;
  210. // }
  211. // }
  212. // if(map.containsKey("data_9")){
  213. // String startTime=map.getOrDefault("data_9","");
  214. // if(StringUtils.isNotEmpty(startTime))
  215. // tbLibImStudentTemp.setStartTime(DateHelper.parseDate(map.get("data_9"), "yyyy/MM/dd HH:mm:ss"));
  216. // }
  217. // if(map.containsKey("data_10")){
  218. // String serviceNum=map.getOrDefault("data_10","");
  219. // if(StringUtils.isNotEmpty(serviceNum))
  220. // tbLibImStudentTemp.setServiceNum(Integer.parseInt(serviceNum.trim()));
  221. // }
  222. // tbLibImStudentTemp.setTakeType(2);
  223. // if(map.containsKey("data_11")){
  224. // String correctType=map.getOrDefault("data_11","");
  225. // switch (correctType.trim()) {
  226. // case "是":
  227. // tbLibImStudentTemp.setTakeType(1);
  228. // break;
  229. // default:
  230. // tbLibImStudentTemp.setTakeType(2);
  231. // break;
  232. // }
  233. // }
  234. tbLibImStudentTemps.add(tbLibImStudentTemp);
  235. if(StringUtils.isEmpty(tbLibImStudentTemp.getSchool())){
  236. response.failure("学校名称不能为空");
  237. iserror=true;
  238. break;
  239. }
  240. if(StringUtils.isEmpty(tbLibImStudentTemp.getGrade())){
  241. response.failure("年级不能为空");
  242. iserror=true;
  243. break;
  244. }
  245. if(StringUtils.isEmpty(tbLibImStudentTemp.getLeagueName())){
  246. response.failure("机构不能为空");
  247. iserror=true;
  248. break;
  249. }
  250. if(StringUtils.isEmpty(tbLibImStudentTemp.getStudentName())){
  251. response.failure("学生姓名不能为空");
  252. iserror=true;
  253. break;
  254. }
  255. if(StringUtils.isEmpty(tbLibImStudentTemp.getParentName())){
  256. response.failure("家长姓名不能为空");
  257. iserror=true;
  258. break;
  259. }
  260. if(StringUtils.isEmpty(tbLibImStudentTemp.getParentRole())){
  261. response.failure("家长角色不能为空");
  262. iserror=true;
  263. break;
  264. }
  265. if(StringUtils.isEmpty(tbLibImStudentTemp.getParentPhone()) || tbLibImStudentTemp.getParentPhone().length()!=11){
  266. response.failure("家长电话不正确");
  267. iserror=true;
  268. break;
  269. }
  270. // if(tbLibImStudentTemp.getStartTime()!=null && tbLibImStudentTemp.getServiceNum()==null){
  271. // response.failure("开始时间与服务月份,不能单一为空");
  272. // iserror=true;
  273. // break;
  274. // }
  275. // if(tbLibImStudentTemp.getStartTime()==null && tbLibImStudentTemp.getServiceNum()!=null){
  276. // response.failure("开始时间与服务月份,不能单一为空");
  277. // iserror=true;
  278. // break;
  279. // }
  280. }
  281. if(!iserror){
  282. int successNum=tbLibImStudentTempService.insertBatchTbClassStudent(tbLibImStudentTemps);
  283. if(successNum<0){
  284. response.failure("机构数据为空,请检查机构是否存在!");
  285. }else if(tbLibImStudentTemps.size()!=successNum) {
  286. response.failure("存在导入失败数据,请查看失败列表!");
  287. }else{
  288. response.success("成功");
  289. }
  290. }
  291. }
  292. } catch (Exception e) {
  293. logger.error("异常", e);
  294. response.failure("导入异常:"+e.getMessage());
  295. }
  296. return response;
  297. }
  298. //学生列表
  299. @RequestMapping(value="/student/list/{libId}")
  300. public String studentList(Model model,@PathVariable String libId,
  301. @RequestParam(required = false, defaultValue = "10") int pageSize,
  302. @RequestParam(required = false, defaultValue = "1") int pageNo) {
  303. Map<String, Object> params = new HashMap<String, Object>();
  304. params.put("libId", libId);
  305. params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
  306. SplitPage sp = new SplitPage();
  307. sp.setAction(request.getRequestURI());
  308. sp.setPageNo(pageNo);
  309. sp.setPageSize(pageSize);
  310. sp.setParams(params);
  311. Page<Map<String,Object>> page = tbLibImStudentService.findStudentByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"create_time"}));
  312. List<Map<String,Object>> list =page.getContent();
  313. for (Map<String, Object> map : list) {
  314. List<LibVipService> libVipServices=libVipServiceService.findValidService(map.getOrDefault("id","").toString(), "S003");
  315. if(libVipServices!=null && libVipServices.size()>=1){
  316. map.put("libVipService", libVipServices.get(0));
  317. }else{
  318. libVipServices=libVipServiceService.findValidService(map.getOrDefault("id","").toString(), "S999");
  319. if(libVipServices!=null && libVipServices.size()>=1){
  320. map.put("libVipService", libVipServices.get(0));
  321. }else{
  322. map.put("libVipService",new LibVipService());
  323. }
  324. }
  325. }
  326. sp.setRowCnt((int) page.getTotalElements());
  327. model.addAttribute("list", page.getContent());
  328. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  329. model.addAttribute("page", sp);
  330. model.addAttribute("search", params);
  331. TbLibJoin tbLibJoin=joinService.getById(libId);
  332. model.addAttribute("tbLibJoin", tbLibJoin);
  333. return "sys/imlibuser/studentList";
  334. }
  335. @RequestMapping(value="/student/exlist/{libId}")
  336. @ResponseBody
  337. public void exportStudent(@PathVariable String libId,HttpServletRequest request, HttpServletResponse response) {
  338. ServletOutputStream os = null;
  339. try {
  340. TbLibJoin libJoin=joinService.getById(libId);
  341. String libName=libJoin.getLeagueName()+"_学生列表";
  342. os = response.getOutputStream(); //获得输出流
  343. response.reset(); //清空输出流
  344. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  345. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  346. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  347. response.setCharacterEncoding("utf-8");
  348. Map<String, Object> params = new HashMap<String, Object>();
  349. params.put("libId", libId);
  350. params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
  351. SplitPage sp = new SplitPage();
  352. sp.setAction(request.getRequestURI());
  353. sp.setPageNo(1);
  354. sp.setPageSize(10000);
  355. sp.setParams(params);
  356. Page<Map<String,Object>> page = tbLibImStudentService.findStudentByPage(params, initPage(1, 10000, Direction.DESC, new String[]{"create_time"}));
  357. List<Map<String,Object>> list =page.getContent();
  358. for (Map<String, Object> map : list) {
  359. List<LibVipService> libVipServices=libVipServiceService.findValidService(map.getOrDefault("id","").toString(), "S003");
  360. if(libVipServices!=null && libVipServices.size()>=1){
  361. map.put("libVipService", libVipServices.get(0));
  362. }else{
  363. libVipServices=libVipServiceService.findValidService(map.getOrDefault("id","").toString(), "S999");
  364. if(libVipServices!=null && libVipServices.size()>=1){
  365. map.put("libVipService", libVipServices.get(0));
  366. }else{
  367. map.put("libVipService",new LibVipService());
  368. }
  369. }
  370. }
  371. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  372. myColumns3.add(new ExcelColumn("学生姓名", "child_name", 20));
  373. myColumns3.add(new ExcelColumn("学校", "school", 20));
  374. myColumns3.add(new ExcelColumn("年级", "grade", 20));
  375. myColumns3.add(new ExcelColumn("家长姓名", "parent_name", 20));
  376. myColumns3.add(new ExcelColumn("家长角色", "parent_role", 20));
  377. myColumns3.add(new ExcelColumn("家长电话", "phone", 20));
  378. myColumns3.add(new ExcelColumn("小塾号", "derver", 20));
  379. CustomizeToExcel.downFile(myColumns3, list, os);
  380. }catch (IOException e) {
  381. logger.error("异常", e);
  382. }catch (Exception e1){
  383. logger.error("异常", e1);
  384. }finally{
  385. if(os != null){
  386. try {
  387. os.flush();
  388. os.close();
  389. } catch (IOException e) {
  390. logger.error("异常", e);
  391. }
  392. }
  393. }
  394. }
  395. //添加学生
  396. @RequestMapping(value="/student/add/{libId}")
  397. public String studentAdd(Model model,@PathVariable String libId) {
  398. model.addAttribute("libId", libId);
  399. return "sys/imlibuser/studentAdd";
  400. }
  401. //添加学生服务
  402. @RequestMapping(value="/student/service/add/{libId}/{vipId}")
  403. public String studentServiceAdd(Model model,
  404. @PathVariable String libId,@PathVariable String vipId) {
  405. List<LibVipService> libVipServices=libVipServiceService.findValidService(vipId, "S003");
  406. List<LibVipService> libVipServices_S999=new ArrayList<LibVipService>();
  407. if(libVipServices==null || libVipServices.size()<=0) {
  408. libVipServices_S999=libVipServiceService.findValidService(vipId, "S999");
  409. }
  410. LibVip libVip=libVipService.getById(vipId);
  411. TbLibJoin libJoin=joinService.getById(libId);
  412. model.addAttribute("libVipServices", libVipServices);
  413. model.addAttribute("libVipServices_S999", libVipServices_S999);
  414. model.addAttribute("libVip", libVip);
  415. model.addAttribute("libJoin", libJoin);
  416. return "sys/imlibuser/studentServiceAdd";
  417. }
  418. //检查学生服务
  419. @RequestMapping(value="/student/service/check/{libId}/{vipId}")
  420. @ResponseBody
  421. public Response studentServiceCheck (Model model,
  422. @PathVariable String libId,@PathVariable String vipId,String startTime,Integer serviceNum) {
  423. Response response = new Response();
  424. Map<String,Object> data=new LinkedHashMap<String, Object>();
  425. Date sTime=DateHelper.parseDate(startTime, "yyyy-MM-dd HH:mm:ss");
  426. Date endTime=DateHelper.getMonthDate(sTime,serviceNum);
  427. List<LibVipService> libVipServices=libVipServiceService.findVipIdServiceByIntersectTime(vipId, "S003", sTime, endTime);
  428. List<LibVipService> libVipServices_S999=libVipServiceService.findVipIdServiceByIntersectTime(vipId, "S999", sTime, endTime);
  429. data.put("libVipServices", libVipServices);
  430. data.put("libVipServices_S999", libVipServices_S999);
  431. data.put("isService", libVipServices!=null && libVipServices.size()>0 ? true : false);
  432. data.put("isService_S999", libVipServices_S999!=null && libVipServices_S999.size()>0 ? true : false);
  433. response.success(data,"成功");
  434. return response;
  435. }
  436. //保存学生服务
  437. @RequestMapping(value="/student/service/save/{libId}/{vipId}")
  438. @ResponseBody
  439. public Response studentServiceSave(Model model,
  440. @PathVariable String libId,@PathVariable String vipId,String startTime,Integer correctType,Integer serviceNum,Integer takeType) {
  441. Response response = new Response();
  442. Date sTime=DateHelper.parseDate(startTime, "yyyy-MM-dd HH:mm:ss");
  443. TbClassStudentTemp tbLibImStudentTemp=new TbClassStudentTemp();
  444. tbLibImStudentTemp.setCorrectType(correctType);
  445. tbLibImStudentTemp.setStartTime(sTime);
  446. tbLibImStudentTemp.setCreateTime(new Date());
  447. tbLibImStudentTemp.setLibId(libId);
  448. tbLibImStudentTemp.setVipId(vipId);
  449. tbLibImStudentTemp.setTakeType(takeType);
  450. tbLibImStudentTemp.setServiceNum(serviceNum);
  451. tbLibImStudentTemp.setStatus(1);
  452. boolean is=tbLibImStudentTempService.insertTbClassStudentByService(tbLibImStudentTemp);
  453. if(!is){
  454. tbLibImStudentTemp.setErrorReason("服务添加失败!");
  455. tbLibImStudentTemp.setStatus(0);
  456. }
  457. tbLibImStudentTempService.save(tbLibImStudentTemp);
  458. response.success("成功");
  459. return response;
  460. }
  461. //添加学生
  462. @RequestMapping(value="/student/bind/{vipId}")
  463. public String studentBind(Model model,@PathVariable String vipId) {
  464. model.addAttribute("vipId", vipId);
  465. return "sys/imlibuser/studentBind";
  466. }
  467. //学生记录
  468. @RequestMapping(value="/student/record/{libId}/{vipId}")
  469. public String record(Model model,@PathVariable String libId,@PathVariable String vipId) {
  470. model.addAttribute("vipId", vipId);
  471. model.addAttribute("libId", libId);
  472. List<TbClassStudentTemp> tbLibImStudentTemps=tbLibImStudentTempService.findTbLibImStudentTempByVipId(libId, vipId);
  473. model.addAttribute("tbLibImStudentTemps", tbLibImStudentTemps);
  474. return "sys/imlibuser/studentRecord";
  475. }
  476. //添加学生
  477. @RequestMapping(value="/student/data/add/{libId}")
  478. @ResponseBody
  479. public Response studentDataAdd(Model model,@PathVariable String libId,
  480. TbClassStudentTemp tbLibImStudentTemp) {
  481. Response response = new Response();
  482. tbLibImStudentTemp.setLibId(libId);
  483. TbLibJoin tbLibJoin=joinService.getById(libId);
  484. int countVip=libVipService.countByLibId(libId);
  485. if(countVip>tbLibJoin.getLibService()) {
  486. response.failure("校区人数已达到上限不能新导入学生。");
  487. }else {
  488. int num=tbLibImStudentTempService.insertTbClassStudent(tbLibJoin,tbLibImStudentTemp);
  489. if(num>0){
  490. response.success("成功");
  491. }else{
  492. response.failure("添加失败,请查看失败列表...");
  493. }
  494. }
  495. return response;
  496. }
  497. @RequestMapping(value="/student/data/service/save/{libId}")
  498. @ResponseBody
  499. public Response studentServiceSave(Model model,@PathVariable String libId,
  500. String vipIds,Integer correctType,String startTime,Integer serviceNum,Integer takeType) {
  501. Response response = new Response();
  502. if(StringUtils.isNotEmpty(vipIds) && StringUtils.isNotEmpty(libId)){
  503. String[] vps=vipIds.split(";");
  504. for (String vipId : vps) {
  505. TbClassStudentTemp tbLibImStudentTemp=new TbClassStudentTemp();
  506. tbLibImStudentTemp.setLibId(libId);
  507. tbLibImStudentTemp.setVipId(vipId);
  508. tbLibImStudentTemp.setStartTime(DateHelper.parseDate(startTime, "yyyy-MM-dd HH:mm:ss"));
  509. tbLibImStudentTemp.setServiceNum(serviceNum);
  510. tbLibImStudentTemp.setStatus(1);
  511. tbLibImStudentTemp.setCreateTime(new Date());
  512. tbLibImStudentTemp.setCorrectType(correctType);
  513. tbLibImStudentTemp.setTakeType(takeType);
  514. tbLibImStudentTempService.insertTbClassStudentByService(tbLibImStudentTemp);
  515. tbLibImStudentTempService.save(tbLibImStudentTemp);
  516. }
  517. }
  518. response.success("成功");
  519. return response;
  520. }
  521. //删除学生,解除关联
  522. @RequestMapping(value="/student/data/del/{vipId}")
  523. @ResponseBody
  524. public Response studentDel(Model model,@PathVariable String vipId) {
  525. Response response = new Response();
  526. LibVip libVip=libVipService.getById(vipId);
  527. if(libVip!=null){
  528. if(StringUtils.isNotEmpty(libVip.getLibId())) {
  529. List<LibVipService> libVipServices=libVipServiceService.findVipIdServiceByLibId(libVip.getLibId(),vipId,"S003");
  530. if(libVipServices!=null && libVipServices.size()>0) {
  531. for (LibVipService libVipService : libVipServices) {
  532. libVipService.setStat(2);
  533. }
  534. libVipServiceService.save(libVipServices);
  535. }
  536. }
  537. TbClassStudent tbClassStudent=tbClassStudentService.findByLibIdAndVipId(libVip.getLibId(), vipId);
  538. if(tbClassStudent!=null) {
  539. tbClassStudentService.delete(tbClassStudent);
  540. }
  541. libVip.setLibId(null);
  542. libVipService.save(libVip);
  543. }
  544. response.success("成功");
  545. return response;
  546. }
  547. //解除关联小塾
  548. @RequestMapping(value="/student/data/del/derver/{vipId}")
  549. @ResponseBody
  550. public Response studentDerverDel(Model model,@PathVariable String vipId) {
  551. Response response = new Response();
  552. tbLibImStudentService.untyingTbClassTeacherByVipId(vipId);
  553. response.success("成功");
  554. return response;
  555. }
  556. //添加关联小塾
  557. @RequestMapping(value="/student/data/bind/derver/{vipId}")
  558. @ResponseBody
  559. public Response studentDerverDel(Model model,@PathVariable String vipId,String derver) {
  560. Response response = new Response();
  561. LibVip libVip=libVipService.getById(vipId);
  562. if(libVip!=null) {
  563. User user=userService.getById(libVip.getUserId());
  564. if (StringUtils.isBlank(user.getEasemobName())) {
  565. //如果家长没有环信id
  566. user.setEasemobName(userService.createUniqueEasemobName());
  567. userService.save(user);
  568. easemobService.createUserSingle(user.getEasemobName(), user.getUserName());
  569. }
  570. ResponseEntity responseEntity=conchCommonService.bindDerver(vipId, "", "", derver);
  571. if(ResponseConstant.CODE_999 .equals(responseEntity.getCode())){
  572. response.success(responseEntity.getMsg());
  573. }else{
  574. response.failure(responseEntity.getMsg());
  575. }
  576. }
  577. return response;
  578. }
  579. //学生添加失败列表
  580. @RequestMapping(value="/student/error/list")
  581. public String studentErrorList(Model model,
  582. @RequestParam(required = false, defaultValue = "100") int pageSize,
  583. @RequestParam(required = false, defaultValue = "1") int pageNo) {
  584. Map<String, Object> params = new HashMap<String, Object>();
  585. params.put("startTime", request.getParameter("startTime")==null?"":request.getParameter("startTime"));
  586. params.put("endTime", request.getParameter("endTime")==null?"":request.getParameter("endTime"));
  587. params.put("remarks", request.getParameter("remarks")==null?"":request.getParameter("remarks"));
  588. params.put("lookup", request.getParameter("lookup")==null?"":request.getParameter("lookup"));
  589. SplitPage sp = new SplitPage();
  590. sp.setAction(request.getRequestURI());
  591. sp.setPageNo(pageNo);
  592. sp.setPageSize(pageSize);
  593. sp.setParams(params);
  594. Page<Map<String,Object>> page = tbLibImStudentTempService.findStudentErrorByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"create_time"}));
  595. sp.setRowCnt((int) page.getTotalElements());
  596. model.addAttribute("list", page.getContent());
  597. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  598. model.addAttribute("page", sp);
  599. model.addAttribute("search", params);
  600. return "sys/imlibuser/studentErrorList";
  601. }
  602. /**
  603. * ----------------老师相关功能-----------------------
  604. */
  605. //老师导入
  606. @RequestMapping(value="/teacher/import")
  607. @ResponseBody
  608. public Response teacherImport(Model model,@RequestParam("file") MultipartFile file) {
  609. Response response = new Response();
  610. try {
  611. List<Map<String,String>> datas=analysisExFile(file);
  612. if(datas!=null && datas.size()>0){
  613. List<TbClassTeacherTemp> tbLibImTeacherTemps=new ArrayList<TbClassTeacherTemp>();
  614. TbClassTeacherTemp tbLibImTeacherTemp=null;
  615. boolean iserror=false;
  616. for (Map<String,String> map : datas) {
  617. tbLibImTeacherTemp=new TbClassTeacherTemp();
  618. tbLibImTeacherTemp.setLeagueName(map.get("data_0"));
  619. tbLibImTeacherTemp.setTeacherName(map.get("data_1"));
  620. tbLibImTeacherTemp.setTeacherPhone(map.get("data_2"));
  621. tbLibImTeacherTemp.setGrade(map.get("data_3"));
  622. tbLibImTeacherTemp.setClassName(map.get("data_4"));
  623. tbLibImTeacherTemp.setSubject(map.get("data_5"));
  624. tbLibImTeacherTemp.setIsCorrect(1);
  625. tbLibImTeacherTemps.add(tbLibImTeacherTemp);
  626. if(StringUtils.isEmpty(tbLibImTeacherTemp.getLeagueName())){
  627. response.failure("机构名称不能为空");
  628. iserror=true;
  629. break;
  630. }
  631. if(StringUtils.isEmpty(tbLibImTeacherTemp.getClassName())){
  632. response.failure("学校班级不能为空");
  633. iserror=true;
  634. break;
  635. }
  636. if(StringUtils.isEmpty(tbLibImTeacherTemp.getGrade())){
  637. response.failure("老师年级不能为空");
  638. iserror=true;
  639. break;
  640. }
  641. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherName())){
  642. response.failure("老师姓名不能为空");
  643. iserror=true;
  644. break;
  645. }
  646. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherPhone()) || tbLibImTeacherTemp.getTeacherPhone().length()!=11){
  647. response.failure("老师电话号码不正确");
  648. iserror=true;
  649. break;
  650. }
  651. }
  652. if(!iserror){
  653. Integer successNum=tbLibImTeacherTempService.insertBatchTbLibImTeacher(tbLibImTeacherTemps);
  654. if(successNum<0){
  655. response.failure("机构数据为空,请检查机构是否存在!");
  656. }else if(tbLibImTeacherTemps.size()!=successNum) {
  657. response.failure("存在导入失败数据,请查看失败列表!");
  658. }else{
  659. response.success("成功");
  660. }
  661. }
  662. }
  663. } catch (Exception e) {
  664. logger.error("异常", e);
  665. response.failure("导入异常:"+e.getMessage());
  666. }
  667. return response;
  668. }
  669. //校长导入
  670. @RequestMapping(value="/principal/import")
  671. @ResponseBody
  672. public Response principalImput(Model model,@RequestParam("file") MultipartFile file) {
  673. Response response = new Response();
  674. try {
  675. List<Map<String,String>> datas=analysisExFile(file);
  676. if(datas!=null && datas.size()>0){
  677. List<TbClassTeacherTemp> tbLibImTeacherTemps=new ArrayList<TbClassTeacherTemp>();
  678. TbClassTeacherTemp tbLibImTeacherTemp=null;
  679. boolean iserror=false;
  680. for (Map<String,String> map : datas) {
  681. tbLibImTeacherTemp=new TbClassTeacherTemp();
  682. tbLibImTeacherTemp.setLeagueName(map.get("data_0"));
  683. tbLibImTeacherTemp.setTeacherName(map.get("data_1"));
  684. tbLibImTeacherTemp.setTeacherPhone(map.get("data_2"));
  685. tbLibImTeacherTemps.add(tbLibImTeacherTemp);
  686. if(StringUtils.isEmpty(tbLibImTeacherTemp.getLeagueName())){
  687. response.failure("机构名称不能为空");
  688. iserror=true;
  689. break;
  690. }
  691. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherName())){
  692. response.failure("姓名不能为空");
  693. iserror=true;
  694. break;
  695. }
  696. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherPhone()) || tbLibImTeacherTemp.getTeacherPhone().length()!=11){
  697. response.failure("电话号码不正确");
  698. iserror=true;
  699. break;
  700. }
  701. }
  702. if(!iserror){
  703. Integer successNum=tbLibImTeacherTempService.insertBatchTbLibImPrincipal(tbLibImTeacherTemps);
  704. if(successNum<0){
  705. response.failure("机构数据为空,请检查机构是否存在!");
  706. }else if(tbLibImTeacherTemps.size()!=successNum) {
  707. response.failure("存在导入失败数据,请查看失败列表!");
  708. }else{
  709. response.success("成功");
  710. }
  711. }
  712. }
  713. } catch (Exception e) {
  714. logger.error("异常", e);
  715. response.failure("导入异常:"+e.getMessage());
  716. }
  717. return response;
  718. }
  719. //科目组长导入
  720. @RequestMapping(value="/leader/import")
  721. @ResponseBody
  722. public Response leaderImput(Model model,@RequestParam("file") MultipartFile file) {
  723. Response response = new Response();
  724. try {
  725. List<Map<String,String>> datas=analysisExFile(file);
  726. if(datas!=null && datas.size()>0){
  727. List<TbClassTeacherTemp> tbLibImTeacherTemps=new ArrayList<TbClassTeacherTemp>();
  728. TbClassTeacherTemp tbLibImTeacherTemp=null;
  729. boolean iserror=false;
  730. for (Map<String,String> map : datas) {
  731. tbLibImTeacherTemp=new TbClassTeacherTemp();
  732. tbLibImTeacherTemp.setLeagueName(map.get("data_0"));
  733. tbLibImTeacherTemp.setTeacherName(map.get("data_1"));
  734. tbLibImTeacherTemp.setTeacherPhone(map.get("data_2"));
  735. tbLibImTeacherTemp.setGrade(map.get("data_3"));
  736. tbLibImTeacherTemp.setSubject(map.get("data_4"));
  737. tbLibImTeacherTemps.add(tbLibImTeacherTemp);
  738. if(StringUtils.isEmpty(tbLibImTeacherTemp.getLeagueName())){
  739. response.failure("机构名称不能为空");
  740. iserror=true;
  741. break;
  742. }
  743. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherName())){
  744. response.failure("姓名不能为空");
  745. iserror=true;
  746. break;
  747. }
  748. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherPhone()) || tbLibImTeacherTemp.getTeacherPhone().length()!=11){
  749. response.failure("电话号码不正确");
  750. iserror=true;
  751. break;
  752. }
  753. }
  754. if(!iserror){
  755. Integer successNum=tbLibImTeacherTempService.insertBatchTbLibImLeader(tbLibImTeacherTemps);
  756. if(successNum<0){
  757. response.failure("机构数据为空,请检查机构是否存在!");
  758. }else if(tbLibImTeacherTemps.size()!=successNum) {
  759. response.failure("存在导入失败数据,请查看失败列表!");
  760. }else{
  761. response.success("成功");
  762. }
  763. }
  764. }
  765. } catch (Exception e) {
  766. logger.error("异常", e);
  767. response.failure("导入异常:"+e.getMessage());
  768. }
  769. return response;
  770. }
  771. //班主任导入
  772. @RequestMapping(value="/headmaster/import")
  773. @ResponseBody
  774. public Response headmasterImput(Model model,@RequestParam("file") MultipartFile file) {
  775. Response response = new Response();
  776. try {
  777. List<Map<String,String>> datas=analysisExFile(file);
  778. if(datas!=null && datas.size()>0){
  779. List<TbClassTeacherTemp> tbLibImTeacherTemps=new ArrayList<TbClassTeacherTemp>();
  780. TbClassTeacherTemp tbLibImTeacherTemp=null;
  781. boolean iserror=false;
  782. for (Map<String,String> map : datas) {
  783. tbLibImTeacherTemp=new TbClassTeacherTemp();
  784. tbLibImTeacherTemp.setLeagueName(map.get("data_0"));
  785. tbLibImTeacherTemp.setTeacherName(map.get("data_1"));
  786. tbLibImTeacherTemp.setTeacherPhone(map.get("data_2"));
  787. tbLibImTeacherTemp.setGrade(map.get("data_3"));
  788. tbLibImTeacherTemp.setSubject(map.get("data_4"));
  789. tbLibImTeacherTemps.add(tbLibImTeacherTemp);
  790. if(StringUtils.isEmpty(tbLibImTeacherTemp.getLeagueName())){
  791. response.failure("校区名称不能为空");
  792. iserror=true;
  793. break;
  794. }
  795. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherName())){
  796. response.failure("姓名不能为空");
  797. iserror=true;
  798. break;
  799. }
  800. if(StringUtils.isEmpty(tbLibImTeacherTemp.getTeacherPhone()) || tbLibImTeacherTemp.getTeacherPhone().length()!=11){
  801. response.failure("电话号码不正确");
  802. iserror=true;
  803. break;
  804. }
  805. if(StringUtils.isEmpty(tbLibImTeacherTemp.getGrade())){
  806. response.failure("年级名称不能为空");
  807. iserror=true;
  808. break;
  809. }
  810. if(StringUtils.isEmpty(tbLibImTeacherTemp.getSubject())){
  811. response.failure("班级名称不能为空");
  812. iserror=true;
  813. break;
  814. }
  815. }
  816. if(!iserror){
  817. Integer successNum=tbLibImTeacherTempService.insertBatchTbLibImHeadmaster(tbLibImTeacherTemps);
  818. if(successNum<0){
  819. response.failure("机构数据为空,请检查机构是否存在!");
  820. }else if(tbLibImTeacherTemps.size()!=successNum) {
  821. response.failure("存在导入失败数据,请查看失败列表!");
  822. }else{
  823. response.success("成功");
  824. }
  825. }
  826. }
  827. } catch (Exception e) {
  828. logger.error("异常", e);
  829. response.failure("导入异常:"+e.getMessage());
  830. }
  831. return response;
  832. }
  833. //老师列表
  834. @RequestMapping(value="/teacher/list/{libId}/{type}")
  835. public String teacherList(Model model,@PathVariable String libId,@PathVariable String type,
  836. @RequestParam(required = false, defaultValue = "100") int pageSize,
  837. @RequestParam(required = false, defaultValue = "1") int pageNo) {
  838. Map<String, Object> params = new HashMap<String, Object>();
  839. params.put("libId", libId);
  840. params.put("type", type);
  841. params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
  842. SplitPage sp = new SplitPage();
  843. sp.setAction(request.getRequestURI());
  844. sp.setPageNo(pageNo);
  845. sp.setPageSize(pageSize);
  846. sp.setParams(params);
  847. Page<Map<String,Object>> page = tbLibImTeacherService.findTeacherByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"create_time"}));
  848. sp.setRowCnt((int) page.getTotalElements());
  849. model.addAttribute("list", page.getContent());
  850. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  851. model.addAttribute("page", sp);
  852. model.addAttribute("search", params);
  853. TbLibJoin tbLibJoin=joinService.getById(libId);
  854. model.addAttribute("tbLibJoin", tbLibJoin);
  855. return "sys/imlibuser/teacherList";
  856. }
  857. //老师列表
  858. @RequestMapping(value="/headmaster/list/{libId}/{type}")
  859. public String headmasterList(Model model,@PathVariable String libId,@PathVariable String type,
  860. @RequestParam(required = false, defaultValue = "100") int pageSize,
  861. @RequestParam(required = false, defaultValue = "1") int pageNo) {
  862. Map<String, Object> params = new HashMap<String, Object>();
  863. params.put("libId", libId);
  864. params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
  865. params.put("type", type);
  866. SplitPage sp = new SplitPage();
  867. sp.setAction(request.getRequestURI());
  868. sp.setPageNo(pageNo);
  869. sp.setPageSize(pageSize);
  870. sp.setParams(params);
  871. Page<Map<String,Object>> page = tbLibImTeacherService.findHeadmasterByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"create_time"}));
  872. sp.setRowCnt((int) page.getTotalElements());
  873. model.addAttribute("list", page.getContent());
  874. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  875. model.addAttribute("page", sp);
  876. model.addAttribute("search", params);
  877. TbLibJoin tbLibJoin=joinService.getById(libId);
  878. model.addAttribute("tbLibJoin", tbLibJoin);
  879. return "sys/imlibuser/headmasterList";
  880. }
  881. @RequestMapping(value="/teacher/exlist/{libId}")
  882. @ResponseBody
  883. public void exportTeacher(@PathVariable String libId,HttpServletRequest request, HttpServletResponse response) {
  884. ServletOutputStream os = null;
  885. try {
  886. TbLibJoin libJoin=joinService.getById(libId);
  887. String libName=libJoin.getLeagueName()+"_老师列表";
  888. os = response.getOutputStream(); //获得输出流
  889. response.reset(); //清空输出流
  890. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  891. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  892. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  893. response.setCharacterEncoding("utf-8");
  894. Map<String, Object> params = new HashMap<String, Object>();
  895. params.put("libId", libId);
  896. params.put("name", request.getParameter("name")==null?"":request.getParameter("name"));
  897. SplitPage sp = new SplitPage();
  898. sp.setAction(request.getRequestURI());
  899. sp.setPageNo(1);
  900. sp.setPageSize(10000);
  901. sp.setParams(params);
  902. Page<Map<String,Object>> page = tbLibImTeacherService.findTeacherByPage(params, initPage(1, 10000, Direction.DESC, new String[]{"create_time"}));
  903. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  904. myColumns3.add(new ExcelColumn("老师姓名", "name", 20));
  905. myColumns3.add(new ExcelColumn("所受科目", "course_name", 20));
  906. myColumns3.add(new ExcelColumn("老师电话", "telephone", 20));
  907. List<Map<String, Object>> list=page.getContent();
  908. CustomizeToExcel.downFile(myColumns3, list, os);
  909. }catch (IOException e) {
  910. logger.error("异常", e);
  911. }catch (Exception e1){
  912. logger.error("异常", e1);
  913. }finally{
  914. if(os != null){
  915. try {
  916. os.flush();
  917. os.close();
  918. } catch (IOException e) {
  919. logger.error("异常", e);
  920. }
  921. }
  922. }
  923. }
  924. private void getById(String libId) {
  925. // TODO Auto-generated method stub
  926. }
  927. //添加老师
  928. @RequestMapping(value="/teacher/add/{libId}")
  929. public String teacherAdd(Model model,@PathVariable String libId) {
  930. model.addAttribute("libId", libId);
  931. return "sys/imlibuser/teacherAdd";
  932. }
  933. //添加老师
  934. @RequestMapping(value="/teacher/data/add/{libId}")
  935. @ResponseBody
  936. public Response teacherDataAdd(Model model,@PathVariable String libId,
  937. String teacherName,String subject,String teacherPhone,String school,String grade,Integer isCorrect) {
  938. Response response = new Response();
  939. TbClassTeacherTemp tbLibImTeacherTemp=new TbClassTeacherTemp();
  940. tbLibImTeacherTemp.setLibId(libId);
  941. tbLibImTeacherTemp.setTeacherName(teacherName);
  942. tbLibImTeacherTemp.setSubject(subject);
  943. tbLibImTeacherTemp.setTeacherPhone(teacherPhone);
  944. tbLibImTeacherTemp.setSchool(school);
  945. tbLibImTeacherTemp.setGrade(grade);
  946. tbLibImTeacherTemp.setIsCorrect(isCorrect);
  947. TbLibJoin libJoin=joinService.getById(libId);
  948. int is=tbLibImTeacherTempService.insertTbLibImTeacher(libJoin, tbLibImTeacherTemp);
  949. if(is>0) {
  950. response.success("成功");
  951. }else {
  952. response.failure("添加失败,请查看失败列表...");
  953. }
  954. return response;
  955. }
  956. //更改老师批改状态
  957. @RequestMapping(value="/teacher/data/iscorrect/save/{libId}/{teacherId}")
  958. @ResponseBody
  959. public Response teacherDataAdd(Model model,@PathVariable String libId,@PathVariable String teacherId,Integer isCorrect) {
  960. Response response = new Response();
  961. //无效type=15的老师
  962. if(isCorrect==0) {
  963. TbLibManager tbLibManager=managerService.findAllByUserIdAndTypeAndState(teacherId, Constant.LIB_TEACHER_TYPE,1);
  964. if(tbLibManager!=null) {
  965. tbLibManager.setIsCorrect(0);
  966. managerService.save(tbLibManager);
  967. }
  968. }else if(isCorrect==1) {
  969. TbLibManager tbLibManager=managerService.findAllByUserIdAndTypeAndState(teacherId, Constant.LIB_TEACHER_TYPE,1);
  970. if(tbLibManager==null){//有老师user,生成type=15的老师
  971. tbLibManager=new TbLibManager();
  972. tbLibManager.setUserId(teacherId);
  973. tbLibManager.setType(Constant.LIB_TEACHER_TYPE);
  974. tbLibManager.setCreateTime(new Date());
  975. tbLibManager.setLibId(teacherId);
  976. tbLibManager.setIsCorrect(1);
  977. tbLibManager.setState(1);
  978. tbLibManager=managerService.save(tbLibManager);
  979. }else {
  980. tbLibManager.setIsCorrect(1);
  981. managerService.save(tbLibManager);
  982. }
  983. }
  984. response.success("成功");
  985. return response;
  986. }
  987. //删除老师,解除关联
  988. @RequestMapping(value="/teacher/data/del/{libId}/{teacherId}")
  989. @ResponseBody
  990. public Response teacherDel(Model model,@PathVariable String libId,@PathVariable String teacherId) {
  991. Response response = new Response();
  992. try {
  993. bookManagerService.saveTbLibManagerListStatus(libId,teacherId, new int[]{Constant.LIB_TEACHER_TYPE,
  994. Constant.ORG_TEACHER_TYPE, Constant.TEACHER_TYPE}, 2);
  995. tbClassTeacherService.saveTbClassTeacherStatusByLibId(libId, teacherId, 0);
  996. response.success("删除成功");
  997. } catch (Exception e) {
  998. response.failure("删除失败");
  999. }
  1000. return response;
  1001. }
  1002. //老师添加失败列表
  1003. @RequestMapping(value="/teacher/error/list")
  1004. public String teacherErrorList(Model model,
  1005. @RequestParam(required = false, defaultValue = "100") int pageSize,
  1006. @RequestParam(required = false, defaultValue = "1") int pageNo) {
  1007. Map<String, Object> params = new HashMap<String, Object>();
  1008. params.put("startTime", request.getParameter("startTime")==null?"":request.getParameter("startTime"));
  1009. params.put("endTime", request.getParameter("endTime")==null?"":request.getParameter("endTime"));
  1010. params.put("remarks", request.getParameter("remarks")==null?"":request.getParameter("remarks"));
  1011. params.put("lookup", request.getParameter("lookup")==null?"":request.getParameter("lookup"));
  1012. SplitPage sp = new SplitPage();
  1013. sp.setAction(request.getRequestURI());
  1014. sp.setPageNo(pageNo);
  1015. sp.setPageSize(pageSize);
  1016. sp.setParams(params);
  1017. Page<Map<String,Object>> page = tbLibImTeacherTempService.findTeacherErrorByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"create_time"}));
  1018. sp.setRowCnt((int) page.getTotalElements());
  1019. model.addAttribute("list", page.getContent());
  1020. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  1021. model.addAttribute("page", sp);
  1022. model.addAttribute("search", params);
  1023. return "sys/imlibuser/teacherErrorList";
  1024. }
  1025. /**
  1026. * ----------------班级相关功能-----------------------
  1027. */
  1028. //
  1029. @RequestMapping(value="/join/get/{libId}")
  1030. @ResponseBody
  1031. public Response libIdjoin(Model model,@PathVariable String libId) {
  1032. Response response = new Response();
  1033. Map<String,Object> data=new LinkedHashMap<String, Object>();
  1034. TbLibJoin tbLibJoin=joinService.getById(libId);
  1035. data.put("join", tbLibJoin);
  1036. response.success(data, "查询成功");
  1037. return response;
  1038. }
  1039. @RequestMapping(value="/join/update/{libId}")
  1040. @ResponseBody
  1041. public Response libIdjoin(Model model,@PathVariable String libId,Integer type,Integer num) {
  1042. Response response = new Response();
  1043. if(num<=0) {
  1044. response.success("增加的学币不能小于1");
  1045. return response;
  1046. }
  1047. TbLibJoin tbLibJoin=joinService.getById(libId);
  1048. if(tbLibJoin!=null) {
  1049. if(type==1) {
  1050. tbLibJoin.setLibService(tbLibJoin.getLibService()+num);
  1051. joinService.save(tbLibJoin);
  1052. joinConsumeService.rechargeTbLibJoinConsume(libId, num, 0);
  1053. }else if(type==2) {
  1054. tbLibJoin.setPlatformService(tbLibJoin.getPlatformService()+num);
  1055. joinService.save(tbLibJoin);
  1056. joinConsumeService.rechargeTbLibJoinConsume(libId, 0, num);
  1057. }
  1058. }
  1059. response.success("查询成功");
  1060. return response;
  1061. }
  1062. /**
  1063. * ----------------解析文档相关功能-----------------------
  1064. */
  1065. public static List<Map<String,String>> analysisExFile(MultipartFile file) throws Exception {
  1066. List<Map<String,String>> datas=new ArrayList<Map<String,String>>();
  1067. Map<String,String> map=null;
  1068. @SuppressWarnings("resource")
  1069. Workbook wb = new XSSFWorkbook(file.getInputStream());
  1070. Sheet sheet = wb.getSheetAt(0);
  1071. Row row = null;
  1072. Cell cell = null;
  1073. for (Iterator<Row> it = sheet.rowIterator(); it.hasNext();) {
  1074. map=new LinkedHashMap<String, String>();
  1075. row = it.next();
  1076. if (row == null) {
  1077. break;
  1078. }
  1079. if(row.getRowNum()<=0){
  1080. continue;
  1081. }
  1082. if(StringUtils.isEmpty(getValue(row.getCell(0)))){
  1083. continue;
  1084. }
  1085. for (Iterator<Cell> cit =row.cellIterator(); cit.hasNext();) {
  1086. cell = cit.next();
  1087. if (cell == null) {
  1088. break;
  1089. }
  1090. if(StringUtils.isEmpty(getValue(cell))){
  1091. continue;
  1092. }
  1093. map.put("data_"+cell.getColumnIndex(), getValue(cell));
  1094. }
  1095. datas.add(map);
  1096. }
  1097. return datas;
  1098. }
  1099. public static String getValue(Cell cell){
  1100. if(cell==null) {
  1101. return "";
  1102. }
  1103. if (Cell.CELL_TYPE_NUMERIC == cell.getCellType()){
  1104. if(DateUtil.isCellDateFormatted(cell)){
  1105. SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //设置转成的时间格式
  1106. Date date = cell.getDateCellValue();//取得的是date类型
  1107. String datestr = sdf.format(date);//这里是转成String类型了,要哪种按个人需求
  1108. return datestr;
  1109. }
  1110. }
  1111. cell.setCellType(Cell.CELL_TYPE_STRING);
  1112. return cell.getStringCellValue()!=null ? String.valueOf(cell.getStringCellValue()):"";
  1113. }
  1114. }