UserController.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. package com.zhcs.dt.controller.system.user;
  2. import java.io.PrintWriter;
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import javax.annotation.Resource;
  11. import javax.servlet.http.HttpServletResponse;
  12. import net.sf.json.JSONArray;
  13. import net.sf.json.JSONObject;
  14. import org.apache.shiro.crypto.hash.SimpleHash;
  15. import org.springframework.beans.propertyeditors.CustomDateEditor;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.web.bind.WebDataBinder;
  18. import org.springframework.web.bind.annotation.InitBinder;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RequestParam;
  21. import org.springframework.web.bind.annotation.ResponseBody;
  22. import org.springframework.web.multipart.MultipartFile;
  23. import org.springframework.web.servlet.ModelAndView;
  24. import com.zhcs.dt.controller.base.BaseController;
  25. import com.zhcs.dt.controller.system.login.Des;
  26. import com.zhcs.dt.entity.Page;
  27. import com.zhcs.dt.entity.system.Role;
  28. import com.zhcs.dt.service.system.fhlog.FHlogManager;
  29. import com.zhcs.dt.service.system.menu.MenuManager;
  30. import com.zhcs.dt.service.system.role.RoleManager;
  31. import com.zhcs.dt.service.system.user.UserManager;
  32. import com.zhcs.dt.util.AppUtil;
  33. import com.zhcs.dt.util.Const;
  34. import com.zhcs.dt.util.FileDownload;
  35. import com.zhcs.dt.util.FileUpload;
  36. import com.zhcs.dt.util.GetPinyin;
  37. import com.zhcs.dt.util.Jurisdiction;
  38. import com.zhcs.dt.util.ObjectExcelRead;
  39. import com.zhcs.dt.util.ObjectExcelView;
  40. import com.zhcs.dt.util.PageData;
  41. import com.zhcs.dt.util.PathUtil;
  42. import com.zhcs.dt.util.Tools;
  43. /**
  44. * 类名称:UserController
  45. * 创建人:FH fh313596790qq(青苔)
  46. * 更新时间:2015年11月3日
  47. * @version
  48. */
  49. @Controller
  50. @RequestMapping(value="/user")
  51. public class UserController extends BaseController {
  52. String menuUrl = "user/listUsers.do"; //菜单地址(权限用)
  53. @Resource(name="userService")
  54. private UserManager userService;
  55. @Resource(name="roleService")
  56. private RoleManager roleService;
  57. @Resource(name="menuService")
  58. private MenuManager menuService;
  59. @Resource(name="fhlogService")
  60. private FHlogManager FHLOG;
  61. /**显示用户列表
  62. * @param page
  63. * @return
  64. * @throws Exception
  65. */
  66. @RequestMapping(value="/listUsers")
  67. public ModelAndView listUsers(Page page)throws Exception{
  68. ModelAndView mv = this.getModelAndView();
  69. PageData pd = new PageData();
  70. pd = this.getPageData();
  71. String keywords = pd.getString("keywords"); //关键词检索条件
  72. if(null != keywords && !"".equals(keywords)){
  73. pd.put("keywords", keywords.trim());
  74. }
  75. String lastLoginStart = pd.getString("lastLoginStart"); //开始时间
  76. String lastLoginEnd = pd.getString("lastLoginEnd"); //结束时间
  77. if(lastLoginStart != null && !"".equals(lastLoginStart)){
  78. pd.put("lastLoginStart", lastLoginStart+" 00:00:00");
  79. }
  80. if(lastLoginEnd != null && !"".equals(lastLoginEnd)){
  81. pd.put("lastLoginEnd", lastLoginEnd+" 00:00:00");
  82. }
  83. page.setPd(pd);
  84. List<PageData> userList = userService.listUsers(page); //列出用户列表
  85. pd.put("ROLE_ID", "1");
  86. List<Role> roleList = roleService.listAllRolesByPId(pd);//列出所有系统用户角色
  87. mv.setViewName("system/user/user_list");
  88. mv.addObject("userList", userList);
  89. mv.addObject("roleList", roleList);
  90. mv.addObject("pd", pd);
  91. mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  92. return mv;
  93. }
  94. /**删除用户
  95. * @param out
  96. * @throws Exception
  97. */
  98. @RequestMapping(value="/deleteU")
  99. public void deleteU(PrintWriter out) throws Exception{
  100. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  101. logBefore(logger, Jurisdiction.getUsername()+"删除user");
  102. PageData pd = new PageData();
  103. pd = this.getPageData();
  104. userService.deleteU(pd);
  105. FHLOG.save(Jurisdiction.getUsername(), "删除系统用户:"+pd);
  106. out.write("success");
  107. out.close();
  108. }
  109. /**去新增用户页面
  110. * @return
  111. * @throws Exception
  112. */
  113. @RequestMapping(value="/goAddU")
  114. public ModelAndView goAddU()throws Exception{
  115. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  116. ModelAndView mv = this.getModelAndView();
  117. PageData pd = new PageData();
  118. pd = this.getPageData();
  119. pd.put("ROLE_ID", "1");
  120. List<Role> roleList = roleService.listAllRolesByPId(pd);//列出所有系统用户角色
  121. List<String> companyList = userService.listAllCompany();//列出所有公司
  122. mv.setViewName("system/user/user_edit");
  123. mv.addObject("msg", "saveU");
  124. mv.addObject("pd", pd);
  125. mv.addObject("roleList", roleList);
  126. mv.addObject("companyList", companyList);
  127. mv.addObject("jsoncompany", JSONArray.fromObject(companyList));
  128. return mv;
  129. }
  130. /**保存用户
  131. * @return
  132. * @throws Exception
  133. */
  134. @RequestMapping(value="/saveU")
  135. public ModelAndView saveU() throws Exception{
  136. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  137. logBefore(logger, Jurisdiction.getUsername()+"新增user");
  138. ModelAndView mv = this.getModelAndView();
  139. PageData pd = new PageData();
  140. pd = this.getPageData();
  141. pd.put("USER_ID", this.get32UUID()); //ID 主键
  142. pd.put("LAST_LOGIN", ""); //最后登录时间
  143. pd.put("IP", ""); //IP
  144. pd.put("STATUS", "0"); //状态
  145. pd.put("SKIN", "no-skin"); //用户默认皮肤
  146. pd.put("RIGHTS", "");
  147. pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("USERNAME"), pd.getString("PASSWORD")).toString()); //密码加密
  148. if(null == userService.findByUsername(pd)){ //判断用户名是否存在
  149. userService.saveU(pd); //执行保存
  150. FHLOG.save(Jurisdiction.getUsername(), "新增系统用户:"+pd.getString("USERNAME"));
  151. mv.addObject("msg","success");
  152. }else{
  153. mv.addObject("msg","failed");
  154. }
  155. mv.setViewName("save_result");
  156. return mv;
  157. }
  158. /**判断用户名是否存在
  159. * @return
  160. */
  161. @RequestMapping(value="/hasU")
  162. @ResponseBody
  163. public Object hasU(){
  164. Map<String,String> map = new HashMap<String,String>();
  165. String errInfo = "success";
  166. PageData pd = new PageData();
  167. try{
  168. pd = this.getPageData();
  169. if(userService.findByUsername(pd) != null){
  170. errInfo = "error";
  171. }
  172. } catch(Exception e){
  173. logger.error(e.toString(), e);
  174. }
  175. map.put("result", errInfo); //返回结果
  176. return AppUtil.returnObject(new PageData(), map);
  177. }
  178. /**判断邮箱是否存在
  179. * @return
  180. */
  181. @RequestMapping(value="/hasE")
  182. @ResponseBody
  183. public Object hasE(){
  184. Map<String,String> map = new HashMap<String,String>();
  185. String errInfo = "success";
  186. PageData pd = new PageData();
  187. try{
  188. pd = this.getPageData();
  189. if(userService.findByUE(pd) != null){
  190. errInfo = "error";
  191. }
  192. } catch(Exception e){
  193. logger.error(e.toString(), e);
  194. }
  195. map.put("result", errInfo); //返回结果
  196. return AppUtil.returnObject(new PageData(), map);
  197. }
  198. /**判断编码是否存在
  199. * @return
  200. */
  201. @RequestMapping(value="/hasN")
  202. @ResponseBody
  203. public Object hasN(){
  204. Map<String,String> map = new HashMap<String,String>();
  205. String errInfo = "success";
  206. PageData pd = new PageData();
  207. try{
  208. pd = this.getPageData();
  209. if(userService.findByUN(pd) != null){
  210. errInfo = "error";
  211. }
  212. } catch(Exception e){
  213. logger.error(e.toString(), e);
  214. }
  215. map.put("result", errInfo); //返回结果
  216. return AppUtil.returnObject(new PageData(), map);
  217. }
  218. /**去修改用户页面(系统用户列表修改)
  219. * @return
  220. * @throws Exception
  221. */
  222. @RequestMapping(value="/goEditU")
  223. public ModelAndView goEditU() throws Exception{
  224. if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  225. ModelAndView mv = this.getModelAndView();
  226. PageData pd = new PageData();
  227. pd = this.getPageData();
  228. if("1".equals(pd.getString("USER_ID"))){return null;} //不能修改admin用户
  229. pd.put("ROLE_ID", "1");
  230. List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色
  231. mv.addObject("fx", "user");
  232. pd = userService.findById(pd); //根据ID读取
  233. List<Role> froleList = new ArrayList<Role>(); //存放副职角色
  234. String ROLE_IDS = pd.getString("ROLE_IDS"); //副职角色ID
  235. String companyName = pd.getString("COMPANY");
  236. if(companyName != null){
  237. List<String> roadList = userService.getAllRoadName(companyName); //列出公司下所有路段
  238. if(pd.getString("ROAD") != null){
  239. String[] roadNames = pd.getString("ROAD").split(","); //获取该用户所有路段信息
  240. List<String> selectRoadList = new ArrayList<String>();
  241. for(String roadName : roadNames){
  242. selectRoadList.add(roadName.trim());
  243. }
  244. mv.addObject("selectRoadList", selectRoadList);
  245. }
  246. mv.addObject("roadList", roadList);
  247. }
  248. if(Tools.notEmpty(ROLE_IDS)){
  249. String arryROLE_ID[] = ROLE_IDS.split(",fh,");
  250. for(int i=0;i<roleList.size();i++){
  251. Role role = roleList.get(i);
  252. String roleId = role.getROLE_ID();
  253. for(int n=0;n<arryROLE_ID.length;n++){
  254. if(arryROLE_ID[n].equals(roleId)){
  255. role.setRIGHTS("1"); //此时的目的是为了修改用户信息上,能看到副职角色都有哪些
  256. break;
  257. }
  258. }
  259. froleList.add(role);
  260. }
  261. }else{
  262. froleList = roleList;
  263. }
  264. List<String> companyList = userService.listAllCompany(); //列出所有公司名
  265. mv.setViewName("system/user/user_edit");
  266. mv.addObject("msg", "editU");
  267. mv.addObject("pd", pd);
  268. mv.addObject("roleList", roleList);
  269. mv.addObject("froleList", froleList);
  270. mv.addObject("companyList", companyList);
  271. return mv;
  272. }
  273. /**去修改用户页面(个人修改)
  274. * @return
  275. * @throws Exception
  276. */
  277. @RequestMapping(value="/goEditMyU")
  278. public ModelAndView goEditMyU() throws Exception{
  279. ModelAndView mv = this.getModelAndView();
  280. PageData pd = new PageData();
  281. pd = this.getPageData();
  282. mv.addObject("fx", "head");
  283. pd.put("ROLE_ID", "1");
  284. List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色
  285. pd.put("USERNAME", Jurisdiction.getUsername());
  286. pd = userService.findByUsername(pd); //根据用户名读取
  287. mv.setViewName("system/user/user_edit");
  288. mv.addObject("msg", "editU");
  289. mv.addObject("pd", pd);
  290. mv.addObject("roleList", roleList);
  291. return mv;
  292. }
  293. /**查看用户
  294. * @return
  295. * @throws Exception
  296. */
  297. @RequestMapping(value="/view")
  298. public ModelAndView view() throws Exception{
  299. ModelAndView mv = this.getModelAndView();
  300. PageData pd = new PageData();
  301. pd = this.getPageData();
  302. String USERNAME = pd.getString("USERNAME");
  303. if("admin".equals(USERNAME)){return null;} //不能查看admin用户
  304. pd.put("ROLE_ID", "1");
  305. List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色
  306. pd = userService.findByUsername(pd); //根据ID读取
  307. if(null == pd){
  308. PageData rpd = new PageData();
  309. rpd.put("RNUMBER", USERNAME); //用户名查不到数据时就把数据当作角色的编码去查询角色表(工作流的待办人物,查看代办人资料时用到)
  310. rpd = roleService.getRoleByRnumber(rpd);
  311. mv.addObject("rpd", rpd);
  312. }
  313. mv.setViewName("system/user/user_view");
  314. mv.addObject("msg", "editU");
  315. mv.addObject("pd", pd);
  316. mv.addObject("roleList", roleList);
  317. return mv;
  318. }
  319. /**去修改用户页面(在线管理页面打开)
  320. * @return
  321. * @throws Exception
  322. */
  323. @RequestMapping(value="/goEditUfromOnline")
  324. public ModelAndView goEditUfromOnline() throws Exception{
  325. ModelAndView mv = this.getModelAndView();
  326. PageData pd = new PageData();
  327. pd = this.getPageData();
  328. if("admin".equals(pd.getString("USERNAME"))){return null;} //不能查看admin用户
  329. pd.put("ROLE_ID", "1");
  330. List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色
  331. pd = userService.findByUsername(pd); //根据ID读取
  332. List<Role> froleList = new ArrayList<Role>(); //存放副职角色
  333. String ROLE_IDS = pd.getString("ROLE_IDS"); //副职角色ID
  334. if(Tools.notEmpty(ROLE_IDS)){
  335. String arryROLE_ID[] = ROLE_IDS.split(",fh,");
  336. for(int i=0;i<roleList.size();i++){
  337. Role role = roleList.get(i);
  338. String roleId = role.getROLE_ID();
  339. for(int n=0;n<arryROLE_ID.length;n++){
  340. if(arryROLE_ID[n].equals(roleId)){
  341. role.setRIGHTS("1"); //此时的目的是为了修改用户信息上,能看到副职角色都有哪些
  342. break;
  343. }
  344. }
  345. froleList.add(role);
  346. }
  347. }else{
  348. froleList = roleList;
  349. }
  350. mv.setViewName("system/user/user_edit");
  351. mv.addObject("msg", "editU");
  352. mv.addObject("pd", pd);
  353. mv.addObject("roleList", roleList);
  354. mv.addObject("froleList", froleList);
  355. return mv;
  356. }
  357. /**
  358. * 修改用户
  359. */
  360. @RequestMapping(value="/editU")
  361. public ModelAndView editU() throws Exception{
  362. logBefore(logger, Jurisdiction.getUsername()+"修改ser");
  363. ModelAndView mv = this.getModelAndView();
  364. PageData pd = new PageData();
  365. pd = this.getPageData();
  366. if(!Jurisdiction.getUsername().equals(pd.getString("USERNAME"))){ //如果当前登录用户修改用户资料提交的用户名非本人
  367. if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限 判断当前操作者有无用户管理查看权限
  368. if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限判断当前操作者有无用户管理修改权限
  369. if("admin".equals(pd.getString("USERNAME")) && !"admin".equals(Jurisdiction.getUsername())){return null;} //非admin用户不能修改admin
  370. }else{ //如果当前登录用户修改用户资料提交的用户名是本人,则不能修改本人的角色ID
  371. pd.put("ROLE_ID", userService.findByUsername(pd).getString("ROLE_ID")); //对角色ID还原本人角色ID
  372. pd.put("ROLE_IDS", userService.findByUsername(pd).getString("ROLE_IDS")); //对角色ID还原本人副职角色ID
  373. }
  374. Role roleInfo = roleService.getRoleById(pd.getString("ROLE_ID"));
  375. if(roleInfo.getROLE_NAME().equalsIgnoreCase("控股集团管理员")){
  376. pd.put("COMPANY_NAME", "");
  377. pd.put("ROAD_NAME", "");
  378. }
  379. if(pd.getString("PASSWORD") != null && !"".equals(pd.getString("PASSWORD"))){
  380. pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("USERNAME"), pd.getString("PASSWORD")).toString());
  381. }
  382. userService.editU(pd); //执行修改
  383. FHLOG.save(Jurisdiction.getUsername(), "修改系统用户:"+pd.getString("USERNAME"));
  384. mv.addObject("msg","success");
  385. mv.setViewName("save_result");
  386. return mv;
  387. }
  388. public static void main(String[] args) {
  389. String password = "1";
  390. String username = "admin";
  391. String aaa=new SimpleHash("SHA-1", username, password).toString();
  392. System.out.println(aaa);
  393. }
  394. /**
  395. * 批量删除
  396. * @throws Exception
  397. */
  398. @RequestMapping(value="/deleteAllU")
  399. @ResponseBody
  400. public Object deleteAllU() throws Exception {
  401. if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  402. logBefore(logger, Jurisdiction.getUsername()+"批量删除user");
  403. FHLOG.save(Jurisdiction.getUsername(), "批量删除user");
  404. PageData pd = new PageData();
  405. Map<String,Object> map = new HashMap<String,Object>();
  406. pd = this.getPageData();
  407. List<PageData> pdList = new ArrayList<PageData>();
  408. String USER_IDS = pd.getString("USER_IDS");
  409. if(null != USER_IDS && !"".equals(USER_IDS)){
  410. String ArrayUSER_IDS[] = USER_IDS.split(",");
  411. userService.deleteAllU(ArrayUSER_IDS);
  412. pd.put("msg", "ok");
  413. }else{
  414. pd.put("msg", "no");
  415. }
  416. pdList.add(pd);
  417. map.put("list", pdList);
  418. return AppUtil.returnObject(pd, map);
  419. }
  420. /**导出用户信息到EXCEL
  421. * @return
  422. * @throws Exception
  423. */
  424. @RequestMapping(value="/excel")
  425. public ModelAndView exportExcel() throws Exception{
  426. FHLOG.save(Jurisdiction.getUsername(), "导出用户信息到EXCEL");
  427. ModelAndView mv = this.getModelAndView();
  428. PageData pd = new PageData();
  429. pd = this.getPageData();
  430. try{
  431. if(Jurisdiction.buttonJurisdiction(menuUrl, "cha")){
  432. String keywords = pd.getString("keywords"); //关键词检索条件
  433. if(null != keywords && !"".equals(keywords)){
  434. pd.put("keywords", keywords.trim());
  435. }
  436. String lastLoginStart = pd.getString("lastLoginStart"); //开始时间
  437. String lastLoginEnd = pd.getString("lastLoginEnd"); //结束时间
  438. if(lastLoginStart != null && !"".equals(lastLoginStart)){
  439. pd.put("lastLoginStart", lastLoginStart+" 00:00:00");
  440. }
  441. if(lastLoginEnd != null && !"".equals(lastLoginEnd)){
  442. pd.put("lastLoginEnd", lastLoginEnd+" 00:00:00");
  443. }
  444. Map<String,Object> dataMap = new HashMap<String,Object>();
  445. List<String> titles = new ArrayList<String>();
  446. titles.add("用户名"); //1
  447. titles.add("编号"); //2
  448. titles.add("姓名"); //3
  449. titles.add("职位"); //4
  450. titles.add("手机"); //5
  451. titles.add("邮箱"); //6
  452. titles.add("最近登录"); //7
  453. titles.add("上次登录IP"); //8
  454. dataMap.put("titles", titles);
  455. List<PageData> userList = userService.listAllUser(pd);
  456. List<PageData> varList = new ArrayList<PageData>();
  457. for(int i=0;i<userList.size();i++){
  458. PageData vpd = new PageData();
  459. vpd.put("var1", userList.get(i).getString("USERNAME")); //1
  460. vpd.put("var2", userList.get(i).getString("NUMBER")); //2
  461. vpd.put("var3", userList.get(i).getString("NAME")); //3
  462. vpd.put("var4", userList.get(i).getString("ROLE_NAME")); //4
  463. vpd.put("var5", userList.get(i).getString("PHONE")); //5
  464. vpd.put("var6", userList.get(i).getString("EMAIL")); //6
  465. vpd.put("var7", userList.get(i).getString("LAST_LOGIN")); //7
  466. vpd.put("var8", userList.get(i).getString("IP")); //8
  467. varList.add(vpd);
  468. }
  469. dataMap.put("varList", varList);
  470. ObjectExcelView erv = new ObjectExcelView(); //执行excel操作
  471. mv = new ModelAndView(erv,dataMap);
  472. }
  473. } catch(Exception e){
  474. logger.error(e.toString(), e);
  475. }
  476. return mv;
  477. }
  478. /**打开上传EXCEL页面
  479. * @return
  480. * @throws Exception
  481. */
  482. @RequestMapping(value="/goUploadExcel")
  483. public ModelAndView goUploadExcel()throws Exception{
  484. ModelAndView mv = this.getModelAndView();
  485. mv.setViewName("system/user/uploadexcel");
  486. return mv;
  487. }
  488. /**下载模版
  489. * @param response
  490. * @throws Exception
  491. */
  492. @RequestMapping(value="/downExcel")
  493. public void downExcel(HttpServletResponse response)throws Exception{
  494. FileDownload.fileDownload(response, PathUtil.getClasspath() + Const.FILEPATHFILE + "Users.xls", "Users.xls");
  495. }
  496. /**从EXCEL导入到数据库
  497. * @param file
  498. * @return
  499. * @throws Exception
  500. */
  501. @RequestMapping(value="/readExcel")
  502. public ModelAndView readExcel(
  503. @RequestParam(value="excel",required=false) MultipartFile file
  504. ) throws Exception{
  505. FHLOG.save(Jurisdiction.getUsername(), "从EXCEL导入到数据库");
  506. ModelAndView mv = this.getModelAndView();
  507. PageData pd = new PageData();
  508. if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;}
  509. if (null != file && !file.isEmpty()) {
  510. String filePath = PathUtil.getClasspath() + Const.FILEPATHFILE; //文件上传路径
  511. String fileName = FileUpload.fileUp(file, filePath, "userexcel"); //执行上传
  512. List<PageData> listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 2, 0, 0); //执行读EXCEL操作,读出的数据导入List 2:从第3行开始;0:从第A列开始;0:第0个sheet
  513. /*存入数据库操作======================================*/
  514. pd.put("RIGHTS", ""); //权限
  515. pd.put("LAST_LOGIN", ""); //最后登录时间
  516. pd.put("IP", ""); //IP
  517. pd.put("STATUS", "0"); //状态
  518. pd.put("SKIN", "no-skin"); //默认皮肤
  519. pd.put("ROLE_ID", "1");
  520. List<Role> roleList = roleService.listAllRolesByPId(pd);//列出所有系统用户角色
  521. pd.put("ROLE_ID", roleList.get(0).getROLE_ID()); //设置角色ID为随便第一个
  522. /**
  523. * var0 :编号
  524. * var1 :姓名
  525. * var2 :手机
  526. * var3 :邮箱
  527. * var4 :备注
  528. */
  529. for(int i=0;i<listPd.size();i++){
  530. pd.put("USER_ID", this.get32UUID()); //ID
  531. pd.put("NAME", listPd.get(i).getString("var1")); //姓名
  532. String USERNAME = GetPinyin.getPingYin(listPd.get(i).getString("var1")); //根据姓名汉字生成全拼
  533. pd.put("USERNAME", USERNAME);
  534. if(userService.findByUsername(pd) != null){ //判断用户名是否重复
  535. USERNAME = GetPinyin.getPingYin(listPd.get(i).getString("var1"))+Tools.getRandomNum();
  536. pd.put("USERNAME", USERNAME);
  537. }
  538. pd.put("BZ", listPd.get(i).getString("var4")); //备注
  539. if(Tools.checkEmail(listPd.get(i).getString("var3"))){ //邮箱格式不对就跳过
  540. pd.put("EMAIL", listPd.get(i).getString("var3"));
  541. if(userService.findByUE(pd) != null){ //邮箱已存在就跳过
  542. continue;
  543. }
  544. }else{
  545. continue;
  546. }
  547. pd.put("NUMBER", listPd.get(i).getString("var0")); //编号已存在就跳过
  548. pd.put("PHONE", listPd.get(i).getString("var2")); //手机号
  549. pd.put("PASSWORD", new SimpleHash("SHA-1", USERNAME, "123").toString()); //默认密码123
  550. if(userService.findByUN(pd) != null){
  551. continue;
  552. }
  553. userService.saveU(pd);
  554. }
  555. /*存入数据库操作======================================*/
  556. mv.addObject("msg","success");
  557. }
  558. mv.setViewName("save_result");
  559. return mv;
  560. }
  561. /**显示用户列表(弹窗选择用)
  562. * @param page
  563. * @return
  564. * @throws Exception
  565. */
  566. @RequestMapping(value="/listUsersForWindow")
  567. public ModelAndView listUsersForWindow(Page page)throws Exception{
  568. ModelAndView mv = this.getModelAndView();
  569. PageData pd = new PageData();
  570. pd = this.getPageData();
  571. String keywords = pd.getString("keywords"); //关键词检索条件
  572. if(null != keywords && !"".equals(keywords)){
  573. pd.put("keywords", keywords.trim());
  574. }
  575. String lastLoginStart = pd.getString("lastLoginStart"); //开始时间
  576. String lastLoginEnd = pd.getString("lastLoginEnd"); //结束时间
  577. if(lastLoginStart != null && !"".equals(lastLoginStart)){
  578. pd.put("lastLoginStart", lastLoginStart+" 00:00:00");
  579. }
  580. if(lastLoginEnd != null && !"".equals(lastLoginEnd)){
  581. pd.put("lastLoginEnd", lastLoginEnd+" 00:00:00");
  582. }
  583. page.setPd(pd);
  584. List<PageData> userList = userService.listUsersBystaff(page); //列出用户列表(弹窗选择用)
  585. pd.put("ROLE_ID", "1");
  586. List<Role> roleList = roleService.listAllRolesByPId(pd);//列出所有系统用户角色
  587. mv.setViewName("system/user/window_user_list");
  588. mv.addObject("userList", userList);
  589. mv.addObject("roleList", roleList);
  590. mv.addObject("pd", pd);
  591. return mv;
  592. }
  593. /**通过用户的公司查询可选路段
  594. * @return
  595. */
  596. @RequestMapping(value="/getRoadName")
  597. @ResponseBody
  598. public Object getRoadName(){
  599. Map<String,String> map = new HashMap<String,String>();
  600. String errInfo = "success";
  601. PageData pd = new PageData();
  602. List<String> roadList = null;
  603. try{
  604. pd = this.getPageData();
  605. roadList = userService.getAllRoadName(pd.getString("COMPANY"));
  606. //net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(roadList);
  607. map.put("roadList", roadList.toString().replace("[", "").replace("]", "")); //返回结果
  608. if(roadList.size() == 0){
  609. errInfo = "error";
  610. }
  611. } catch(Exception e){
  612. logger.error(e.toString(), e);
  613. }
  614. map.put("result", errInfo); //返回结果
  615. return AppUtil.returnObject(new PageData(), map);
  616. }
  617. @InitBinder
  618. public void initBinder(WebDataBinder binder){
  619. DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  620. binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
  621. }
  622. }