package cn.ksource.web.controller.uc; import cn.ksource.beans.CUSTOMER_CONTACTS; import cn.ksource.beans.DUTY_PLAN; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.*; import cn.ksource.core.web.SysInfo; import cn.ksource.core.web.WebUtil; import cn.ksource.web.Constants; import cn.ksource.web.SysConstants; import cn.ksource.web.facade.uc.configure.UcConfigureFacade; import cn.ksource.web.facade.uc.login.UcFacade; import cn.ksource.web.facade.uc.order.UcCiRemindFacade; import cn.ksource.web.facade.uc.order.UcHealthFacade; import cn.ksource.web.facade.uc.ucsearch.UcSearchFacade; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 用户中心--主页管理控制器 * @note: * @version * @author sxj * @date July 15, 2016 10:35:44 AM */ @Controller @RequestMapping("/uc") public class UcController { @Resource(name="ucFacade") private UcFacade ucFacade; @Resource private UcCiRemindFacade ucCiRemindFacade; @Resource private UcHealthFacade ucHealthFacade; @Resource private UcConfigureFacade ucConfigureFacade; @Resource private UcSearchFacade ucSearchFacade; /** * 跳转到用户中心首页 * @param request * @return */ @RequestMapping("home.html") public ModelAndView toIndex(HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView("/uc/home"); //客户基本信息 String customer_Id = WebUtil.getWebLoginUserCusId(request); Map pro = ucFacade.getCusMsgByCusId(customer_Id); modelAndView.addObject("cusMsg", pro); //取出客户上月满意度得分 String score = ucFacade.getCusSatisByCusId(customer_Id); modelAndView.addObject("score", score); //取出驻场人员 int usercount = ucFacade.getZcUserByCusId(customer_Id); modelAndView.addObject("usercount", usercount); //获取角色对应的人数 //服务台 int fwt = ucFacade.getUserByRole(Constants.ROLE_SERVICE); //运维人员 int yw = ucFacade.getUserByRole(Constants.ROLE_OPERATION); //一线 int yx = ucFacade.getUserByRole(Constants.ROLE_FLINE); //二线 int ex = ucFacade.getUserByRole(Constants.ROLE_SLINE); //三线 int sx = ucFacade.getUserByRole(Constants.ROLE_TLINE); modelAndView.addObject("fwt", fwt); modelAndView.addObject("yw", yw); modelAndView.addObject("yx", yx); modelAndView.addObject("ex", ex); modelAndView.addObject("sx", sx); //业务次数 int ciadd = 0 ; int incident = 0; int question = 0; int zcyw = 0; int remind = 0; int health = 0; List ordernum = ucFacade.getOrderNumByCusId(customer_Id); for(Map order:ordernum){ if(ConvertUtil.obj2Integer(order.get("BUSINESSTYPE")) == 6){ remind = ConvertUtil.obj2Integer(order.get("NUM")); }else if(ConvertUtil.obj2Integer(order.get("BUSINESSTYPE")) == 7){ health = ConvertUtil.obj2Integer(order.get("NUM")); }else if(ConvertUtil.obj2Integer(order.get("BUSINESSTYPE")) == 8){ incident = ConvertUtil.obj2Integer(order.get("NUM")); }else if(ConvertUtil.obj2Integer(order.get("BUSINESSTYPE")) == 9){ question = ConvertUtil.obj2Integer(order.get("NUM")); }else if(ConvertUtil.obj2Integer(order.get("BUSINESSTYPE")) == 10){ zcyw = ConvertUtil.obj2Integer(order.get("NUM")); } } modelAndView.addObject("incident", incident); modelAndView.addObject("question", question); modelAndView.addObject("zcyw", zcyw); modelAndView.addObject("remind", remind); modelAndView.addObject("health", health); //日常巡检次数 int zcxjcount = ucFacade.getZcxjCount(customer_Id); modelAndView.addObject("zcxjcount", zcxjcount); //工单信息 List orderlist = ucFacade.getOrderListByCusId(customer_Id,3); modelAndView.addObject("orderlist", orderlist); PageInfo info = new PageInfo(); Map param = ParamsMapUtil.getParameterMap(request); param.put("cusId", customer_Id); //例行维护 info = ucCiRemindFacade.queryRemindOrderList(info,param); List remindlist = info.getDatas(); Map remind1 = new HashMap(); Map remind2 = new HashMap(); if(remindlist.size() > 2){ remind1 = (Map)remindlist.get(0); remind2 = (Map)remindlist.get(1); }else if(remindlist.size() == 1){ remind1 = (Map)remindlist.get(0); } modelAndView.addObject("remind1", remind1); modelAndView.addObject("remind2", remind2); //健康检查 param.put("customer_Id", customer_Id); param.put("businessType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_HEALTH+""); PageInfo info1 = ucHealthFacade.queryHealthOrderList(info,param); List healthlist = info1.getDatas(); Map health1 = new HashMap(); Map health2 = new HashMap(); if(healthlist.size() > 2){ health1 = (Map)healthlist.get(0); health2 = (Map)healthlist.get(1); }else if(healthlist.size() == 1){ health1 = (Map)healthlist.get(0); } modelAndView.addObject("health1", health1); modelAndView.addObject("health2", health2); ciadd = ucConfigureFacade.queryCiListCount(param); modelAndView.addObject("ciadd", ciadd); param.put("userId" ,WebUtil.getWebLoginUserId(request)); int know = ucSearchFacade.getsearchKnowCount(param); modelAndView.addObject("know", know); return modelAndView; } /** * 用户退出登录 * @param request * @param response * @return */ @RequestMapping("userout.html") public ModelAndView onLogOut(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); session.removeAttribute(SysConstants.WEBSITE_LOGIN_INFO_KEY); session.invalidate(); return new ModelAndView("redirect:/user/login.html"); } /** * 修改初始化密码 */ @RequestMapping("changeInitPwd.html") public ModelAndView changeInitPwd(HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView("/uc/msg/changeInitPwd"); return modelAndView; } /** * 修改密码 */ @RequestMapping(value="resetpassword.html",method=RequestMethod.POST) public ModelAndView resetpasswordSubmit(HttpServletResponse response,HttpServletRequest request) { String newPassword = request.getParameter("password"); String userId = WebUtil.getWebLoginUserId(request); String result = ucFacade.updateUserPwd(userId,newPassword); Map msgMap = JsonUtil.json2Map(result); if (!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(msgMap.get("msg")))) { return WebUtil.sysInfoPage(request,ConvertUtil.obj2StrBlank(msgMap.get("msg")),"",SysInfo.Error,""); } return WebUtil.sysInfoPage(request,"操作成功!", "", SysInfo.Success,"/uc/home.html"); } /** * 个人中心第三方认证 * @param request * @param response * @return */ @RequestMapping(value="ucuserBind.html") public ModelAndView getUserBind(HttpServletRequest request,HttpServletResponse response){ ModelAndView view = new ModelAndView("/uc/msg/ucuserBind"); String userId = WebUtil.getWebLoginUserId(request); Map user = new CUSTOMER_CONTACTS(userId).getBeanMapById(); String msg = "您已完成了"; if(!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(user.get("ISEMAIL")))){ if(ConvertUtil.obj2Integer(user.get("ISEMAIL")) == 2){ msg = msg + "Email、"; } } if(!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(user.get("ISPHONE")))){ if(ConvertUtil.obj2Integer(user.get("ISPHONE")) == 2){ msg = msg + "手机号、"; } } msg = msg.substring(0, msg.length()-1)+"的绑定!"; view.addObject("msg", msg); view.addObject("user", user); return view; } @RequestMapping("ucemailBind.html") public ModelAndView getEmailBind(HttpServletRequest request,HttpServletResponse response){ ModelAndView view = new ModelAndView("/uc/msg/ucemailBind"); String userId = WebUtil.getWebLoginUserId(request); CUSTOMER_CONTACTS user = new CUSTOMER_CONTACTS(userId).getInstanceById(); view.addObject("email",user.getEmail()); return view; } /** * email验证 * @param request * @param response */ @RequestMapping("ucemail.html") public void Emailyanzheng(HttpServletRequest request,HttpServletResponse response){ String result = new String(); String email = request.getParameter("email"); if(StringUtil.notEmpty(email)) { if(StringUtil.isEmail(email)) { String random = StringUtil.randomNumber(6); request.getSession().setAttribute("random", random); String title = "用户中心邮箱验证"; String content = "亲爱的客户!您于"+DateUtil.getToday("yyyy年MM月dd日")+"申请了用户中心邮箱验证,验证码是"+random+""; try { EmailUtil.sendEmail(new String[]{email}, title,content, null); result = "1"; } catch (Exception e) { result = "验证失败"; } } else { result = "请输入正确格式的邮箱"; } } else { result = "请输入邮箱"; } WebUtil.write(response, result); } /** * 比对邮箱验证码 */ @RequestMapping("uccompareRandom.html") public void compareRandom(HttpServletRequest request,HttpServletResponse response) { String result = new String(); String email = request.getParameter("email"); String userId = WebUtil.getWebLoginUserId(request); String requestRandom = request.getParameter("yzm"); String sessionRandom = (String)request.getSession().getAttribute("random"); boolean b = ucFacade.isEmail(userId, email); if(b){ if(StringUtil.notEmpty(requestRandom)) { if(StringUtil.notEmpty(sessionRandom)) { if(requestRandom.trim().equals(sessionRandom)) { //更新用户邮箱信息 result = ucFacade.updateUserEmail(userId,email); request.getSession().removeAttribute("random"); WebUtil.getWebLoginUser(request).setIsEmail("2"); } else { result = "验证码输入不正确"; } } else { result = "验证码已失效"; } } else { result = "验证码不能为空"; } }else{ result = "该邮箱已绑定过!"; } WebUtil.write(response, result); } /** * 详细资料 * @param request * @param response * @return */ @RequestMapping("ucmyDetail.html") public ModelAndView myDetail(HttpServletRequest request,HttpServletResponse response){ ModelAndView view = new ModelAndView("/uc/msg/ucmyDetail"); String id = WebUtil.getWebLoginUserId(request); Map loginUser = new CUSTOMER_CONTACTS(id).getBeanMapById(); view.addObject("user", loginUser); return view; } @RequestMapping("ucuserDetail.html") public ModelAndView userDetail(HttpServletRequest request,HttpServletResponse response){ ModelAndView view = new ModelAndView("/uc/msg/ucuserDetail"); String id = WebUtil.getWebLoginUserId(request); Map loginUser = new CUSTOMER_CONTACTS(id).getBeanMapById(); view.addObject("user", loginUser); return view; } @RequestMapping("ucsaveAccount.html") public ModelAndView save(HttpServletRequest request,HttpServletResponse response){ String name = request.getParameter("zsxm"); String phone = request.getParameter("sjhm"); String email = request.getParameter("email"); String userId = WebUtil.getWebLoginUserId(request); new CUSTOMER_CONTACTS(userId) .setContact_name(name) .setMobile(phone) .setEmail(email).update(); return WebUtil.sysInfoPage(request,"操作成功!", "", SysInfo.Success,"/uc/ucmyDetail.html"); } @RequestMapping("ucphoneBind.html") public ModelAndView phoneBind(HttpServletRequest request,HttpServletResponse response){ ModelAndView view = new ModelAndView("/uc/msg/ucphoneBind"); String userId = WebUtil.getWebLoginUserId(request); CUSTOMER_CONTACTS user = new CUSTOMER_CONTACTS(userId).getInstanceById(); view.addObject("phone",user.getMobile()); return view; } /** * 发送手机验证码 */ @RequestMapping(value="ucsendValid.html",method=RequestMethod.POST) public void sendValid(HttpServletRequest request,HttpServletResponse response) { String result = new String(); Map msgMap = new HashMap(); String mobile = request.getParameter("phone"); if(StringUtil.notEmpty(mobile)) { if(StringUtil.isValidMobileNum(mobile)) { String random = StringUtil.randomNumber(6); request.getSession().setAttribute("sjRandom", random); String message = "【"+Constants.company_name+"】亲爱的用户!您于"+DateUtil.getToday("yy年MM月dd日")+"申请了"+Constants.company_name+"用户中心手机号验证,验证码是"+random+"。"; try { result = SMSUtil.sendSMS(message,mobile ); msgMap = JsonUtil.json2Map(result); if(!result.equals("0")) { result = "绑定失败"; } } catch (Exception e) { result = "绑定失败"; } } else { result = "请输入正确格式的手机号码"; } } else { result = "请输入手机号码"; } WebUtil.write(response, ConvertUtil.obj2StrBlank(msgMap.get("msg"))); } /** * 手机绑定 */ @RequestMapping("uccompareMobileRandom.html") public void compareMobileRandom(HttpServletRequest request,HttpServletResponse response) { String result = new String(); String mobile = request.getParameter("phone"); String userId = WebUtil.getWebLoginUserId(request); String requestRandom = request.getParameter("yzm"); String sessionRandom = (String)request.getSession().getAttribute("sjRandom"); boolean b = ucFacade.isPhone(userId, mobile); if(b){ if(StringUtil.notEmpty(requestRandom)) { if(StringUtil.notEmpty(sessionRandom)) { if(requestRandom.trim().equals(sessionRandom)) { //更新用户手机绑定信息 result = ucFacade.updateUserMobile(userId,mobile); request.getSession().removeAttribute("sjRandom"); WebUtil.getWebLoginUser(request).setIsPhone("2"); } else { result = "验证码输入不正确"; } } else { result = "验证码已失效"; } } else { result = "验证码不能为空"; } }else{ result = "该手机号码已绑定过!"; } WebUtil.write(response, result); } /** * qq绑定回调页面 * @param request * @param response * @return */ @RequestMapping("ucqquserCallBack.html") public ModelAndView getCallBack(HttpServletRequest request,HttpServletResponse response){ ModelAndView view = new ModelAndView("/uc/msg/ucqquserCallBack"); return view; } /** * 回调页面调用方法,判断是否是第一次绑定 * @param request * @param response */ @RequestMapping("get_user_info.html") public void getuserinfo(HttpServletRequest request,HttpServletResponse response){ String openid = request.getParameter("openid"); CUSTOMER_CONTACTS sc = new CUSTOMER_CONTACTS(); sc.setQq_open_id(openid); CUSTOMER_CONTACTS user = sc.queryForBean(); if(user==null){ WebUtil.write(response, "1"); }else{ WebUtil.write(response, "2"); } } /** *绑定qq * @param request * @param response * @return */ @RequestMapping("qqUserLogin.html") public void qqUserLogin(HttpServletRequest request,HttpServletResponse response){ String openId = request.getParameter("openId"); String userId = WebUtil.getWebLoginUserId(request); new CUSTOMER_CONTACTS(userId).setQq_open_id(openId).update(); WebUtil.write(response, "1"); } /** * 取消微信绑定 * @param request * @param response */ @RequestMapping("cancelWechat.html") public void cancelWechat(HttpServletRequest request,HttpServletResponse response){ String userId = WebUtil.getWebLoginUserId(request); new CUSTOMER_CONTACTS(userId) .setWechat_open_id(null).update(); WebUtil.write(response, "1"); } /** * 跳转到修改密码 */ @RequestMapping("ucrepassword.html") public ModelAndView toRepassword() { ModelAndView modelAndView = new ModelAndView("/uc/msg/ucrepassword"); return modelAndView; } /** * 检验密码是否正确 */ @RequestMapping("checkpwd.html") public void checkpwd(HttpServletRequest request,HttpServletResponse response){ String userId = WebUtil.getWebLoginUserId(request); String pwd = request.getParameter("oldPassword"); int count = ucFacade.getUserByPwd(userId,pwd); if(count > 0){ WebUtil.write(response, "1"); }else{ WebUtil.write(response, "0"); } } /** * 修改密码 */ @RequestMapping(value="uctoRepassword.html",method=RequestMethod.POST) public ModelAndView toRepasswordSubmit(HttpServletResponse response,HttpServletRequest request) { String oldPassword = request.getParameter("oldPassword"); String newPassword = request.getParameter("newPassword"); String userId = WebUtil.getWebLoginUserId(request); String result = ucFacade.updateUserOldPwd(userId,oldPassword,newPassword); return WebUtil.sysInfoPage(request,"操作成功!", "", SysInfo.Success,"/uc/ucmyDetail.html"); } /** * 工单详细信息 */ @RequestMapping(value="orderInfo.html") public ModelAndView orderInfo(HttpServletRequest request) { String orderType = request.getParameter("orderType"); ModelAndView modelAndView = null; String orderId = request.getParameter("orderId"); String flowId = request.getParameter("flowId"); if(StringUtil.notEmpty(orderId)) { if(StringUtil.notEmpty(orderType)){ if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT.toString())) { modelAndView = new ModelAndView("redirect:/uc/ucincident/ucincidentDetail.html?orderId="+orderId+"&flowId="+flowId); } else if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION.toString())) { modelAndView = new ModelAndView("redirect:/uc/ucquestion/ucquestionDetail.html?orderId="+orderId+"&flowId="+flowId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL.toString())) { modelAndView = new ModelAndView("redirect:/uc/uczcyw/uczcywDetail.html?orderId="+orderId+"&flowId="+flowId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND.toString())) {//例行维护 modelAndView = new ModelAndView("redirect:/uc/ucciremind/ucciRemindDetail.html?orderId="+orderId+"&flowId="+flowId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_HEALTH.toString())) {//健康检查 modelAndView = new ModelAndView("redirect:/uc/uchealth/uchealthDetail.html?orderId="+orderId+"&flowId="+flowId); } } } return modelAndView; } /** * 一键报修 * @param request * @param response * @author chenlong */ @RequestMapping(value="subRepair.html",method=RequestMethod.POST) public void subRepair(HttpServletRequest request,HttpServletResponse response){ Map params = ParamsMapUtil.getParameterMap(request); String cusId = WebUtil.getWebLoginUserCusId(request); params.put("cusId", cusId); String userId = WebUtil.getWebLoginUser(request).getUserId(); String userName = WebUtil.getWebLoginUser(request).getUserName(); params.put("userId", userId); params.put("userName", userName); ucFacade.doSubRepair(params); WebUtil.write(response, "1"); } /** * 一键报修 * @param request * @return */ @RequestMapping("yjbx.html") public ModelAndView yjbx(HttpServletRequest request){ ModelAndView view=new ModelAndView("/uc/yjbx"); return view; } /** * 保存一件报修 * @param dutyPlan * @param request * @return */ @RequestMapping("saveYjbx.html") public ModelAndView saveYjbx(DUTY_PLAN dutyPlan,HttpServletRequest request){ String cusId = WebUtil.getWebLoginUserCusId(request); String userId = WebUtil.getWebLoginUser(request).getUserId(); CUSTOMER_CONTACTS user = new CUSTOMER_CONTACTS(userId).getInstanceById(); Map params = ParamsMapUtil.getParameterMap(request); params.put("cusId", cusId); params.put("userId", userId); params.put("userName", user.getContact_name()); params.put("lx_phone", user.getContacts_type()); ucFacade.doSubRepair(params); return WebUtil.sysInfoPage(request, "操作成功!", "window.top.hideDialog('0');", SysInfo.Success,""); } }