Java tutorial
/* * Copyright 2015-2102 RonCoo(http://www.roncoo.com) Group. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.roncoo.pay.permission.controller; import java.util.Date; import java.util.List; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.roncoo.pay.common.core.dwz.DwzAjax; import com.roncoo.pay.common.core.enums.PublicStatusEnum; import com.roncoo.pay.common.core.page.PageBean; import com.roncoo.pay.common.core.page.PageParam; import com.roncoo.pay.controller.common.BaseController; import com.roncoo.pay.permission.entity.PmsOperator; import com.roncoo.pay.permission.entity.PmsOperatorRole; import com.roncoo.pay.permission.enums.OperatorTypeEnum; import com.roncoo.pay.permission.service.PmsOperatorRoleService; import com.roncoo.pay.permission.service.PmsOperatorService; import com.roncoo.pay.permission.service.PmsRoleService; import com.roncoo.pay.permission.utils.PasswordHelper; import com.roncoo.pay.permission.utils.ValidateUtils; /** * ?????? * * www.roncoo.com * * @authorshenjialong */ @Controller @RequestMapping("/pms/operator") public class PmsOperatorController extends BaseController { private static Log log = LogFactory.getLog(PmsOperatorController.class); @Autowired private PmsOperatorService pmsOperatorService; @Autowired private PmsRoleService pmsRoleService; @Autowired private PmsOperatorRoleService pmsOperatorRoleService; /** * ???????. * * @return listPmsOperator or operateError . * */ @RequiresPermissions("pms:operator:view") @RequestMapping("/list") public String listPmsOperator(HttpServletRequest req, PageParam pageParam, PmsOperator operator, Model model) { try { PageBean pageBean = pmsOperatorService.listPage(pageParam, operator); model.addAttribute(pageBean); model.addAttribute("OperatorStatusEnum", PublicStatusEnum.toMap()); model.addAttribute("OperatorTypeEnum", OperatorTypeEnum.toMap()); return "pms/pmsOperatorList"; } catch (Exception e) { log.error("== listPmsOperator exception:", e); return operateError("??", model); } } /** * ?. * * @return . */ @RequiresPermissions("pms:operator:view") @RequestMapping("/viewUI") public String viewPmsOperatorUI(HttpServletRequest req, Long id, Model model) { try { PmsOperator pmsOperator = pmsOperatorService.getDataById(id); if (pmsOperator == null) { return operateError("???", model); } // ???? if (OperatorTypeEnum.USER.name().equals(this.getPmsOperator().getType()) && OperatorTypeEnum.ADMIN.name().equals(pmsOperator.getType())) { return operateError("???", model); } // model.addAttribute("rolesList", pmsRoleService.listAllRole()); // ID List<PmsOperatorRole> lisPmsOperatorRoles = pmsOperatorRoleService.listOperatorRoleByOperatorId(id); StringBuffer owenedRoleIdBuffer = new StringBuffer(""); for (PmsOperatorRole pmsOperatorRole : lisPmsOperatorRoles) { owenedRoleIdBuffer.append(pmsOperatorRole.getRoleId()); owenedRoleIdBuffer.append(","); } String owenedRoleIds = owenedRoleIdBuffer.toString(); if (StringUtils.isNotBlank(owenedRoleIds) && owenedRoleIds.length() > 0) { owenedRoleIds = owenedRoleIds.substring(0, owenedRoleIds.length() - 1); } model.addAttribute("pmsOperator", pmsOperator); model.addAttribute("owenedRoleIds", owenedRoleIds); return "/pms/pmsOperatorView"; } catch (Exception e) { log.error("== viewPmsOperatorUI exception:", e); return operateError("??", model); } } /** * ?? . * * @return addPmsOperatorUI or operateError . */ @RequiresPermissions("pms:operator:add") @RequestMapping("/addUI") public String addPmsOperatorUI(HttpServletRequest req, Model model) { try { model.addAttribute("rolesList", pmsRoleService.listAllRole()); model.addAttribute("OperatorStatusEnumList", PublicStatusEnum.toList()); return "/pms/pmsOperatorAdd"; } catch (Exception e) { log.error("== addPmsOperatorUI exception:", e); return operateError("??", model); } } /** * ?? * */ @RequiresPermissions("pms:operator:add") @RequestMapping("/add") public String addPmsOperator(HttpServletRequest req, PmsOperator pmsOperator, @RequestParam("selectVal") String selectVal, Model model, DwzAjax dwz) { try { pmsOperator.setType(OperatorTypeEnum.USER.name()); // // "0":'?',"1":'?'?? String roleOperatorStr = getRoleOperatorStr(selectVal); // ?? String validateMsg = validatePmsOperator(pmsOperator, roleOperatorStr); if (StringUtils.isNotBlank(validateMsg)) { return operateError(validateMsg, model); // ? } // ???? PmsOperator loginNameCheck = pmsOperatorService.findOperatorByLoginName(pmsOperator.getLoginName()); if (loginNameCheck != null) { return operateError("???" + pmsOperator.getLoginName() + "", model); } PasswordHelper.encryptPassword(pmsOperator); pmsOperator.setCreater(getPmsOperator().getLoginName()); pmsOperator.setCreateTime(new Date()); pmsOperatorService.saveOperator(pmsOperator, roleOperatorStr); return operateSuccess(model, dwz); } catch (Exception e) { log.error("== addPmsOperator exception:", e); return operateError("???", model); } } /** * ???? * * @param email * @return ?? */ public static boolean emailFormat(String email) { // boolean tag = true; String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; boolean result = Pattern.matches(check, email); return result; } /** * ????? * * @param loginPwd * @return ?? */ public static boolean loginPwdFormat(String loginPwd) { return loginPwd.matches(".*?[^a-zA-Z\\d]+.*?") && loginPwd.matches(".*?[a-zA-Z]+.*?") && loginPwd.matches(".*?[\\d]+.*?"); } /** * ??????? * * @param loginPwd * @return ?? */ public static boolean realNameFormat(String realName) { return realName.matches("[^\\x00-\\xff]+"); } /** * Pms???. * * @param PmsOperator * ??. * @param roleOperatorStr * ?ID. * @return */ private String validatePmsOperator(PmsOperator operator, String roleOperatorStr) { String msg = ""; // ????? msg += ValidateUtils.lengthValidate("??", operator.getRealName(), true, 2, 15); msg += ValidateUtils.lengthValidate("??", operator.getLoginName(), true, 3, 50); /* * String specialChar = "`!@#$%^&*()_+\\/"; if * (operator.getLoginName().contains(specialChar)) { msg += * "????"; } */ // if (!realNameFormat(operator.getRealName())) { // msg += "????"; // } // if (!emailFormat(operator.getLoginName())) { // msg += "?????"; // } // ? // String loginPwd = operator.getLoginPwd(); // String loginPwdMsg = ValidateUtils.lengthValidate("?", loginPwd, true, 6, 50); // /* // * if (StringUtils.isBlank(loginPwdMsg) && // * !ValidateUtils.isAlphanumeric(loginPwd)) { loginPwdMsg += // * "???"; } // */ // msg += loginPwdMsg; // ?? String mobileNo = operator.getMobileNo(); String mobileNoMsg = ValidateUtils.lengthValidate("?", mobileNo, true, 0, 12); if (StringUtils.isBlank(mobileNoMsg) && !ValidateUtils.isMobile(mobileNo)) { mobileNoMsg += "???"; } msg += mobileNoMsg; // ? String status = operator.getStatus(); if (status == null) { msg += "?"; } else if (!PublicStatusEnum.ACTIVE.name().equals(status) || PublicStatusEnum.UNACTIVE.name().equals(status)) { msg += "??"; } msg += ValidateUtils.lengthValidate("??", operator.getRemark(), true, 3, 100); // ????? if (StringUtils.isBlank(roleOperatorStr) && operator.getId() == null) { msg += "???"; } return msg; } /** * ? * * @return * */ @RequestMapping("/delete") public String deleteOperatorStatus(HttpServletRequest req, Long id, Model model, DwzAjax dwz) { pmsOperatorService.deleteOperatorById(id); return this.operateSuccess(model, dwz); } /** * ?? * * @return PmsOperatorEdit or operateError . */ @RequiresPermissions("pms:operator:edit") @RequestMapping("/editUI") public String editPmsOperatorUI(HttpServletRequest req, Long id, Model model) { try { PmsOperator pmsOperator = pmsOperatorService.getDataById(id); if (pmsOperator == null) { return operateError("???", model); } // ???? if (OperatorTypeEnum.USER.name().equals(this.getPmsOperator().getType()) && OperatorTypeEnum.ADMIN.name().equals(pmsOperator.getType())) { return operateError("???", model); } // model.addAttribute("rolesList", pmsRoleService.listAllRole()); // ID List<PmsOperatorRole> lisPmsOperatorRoles = pmsOperatorRoleService.listOperatorRoleByOperatorId(id); StringBuffer owenedRoleIdBuffer = new StringBuffer(""); for (PmsOperatorRole pmsOperatorRole : lisPmsOperatorRoles) { owenedRoleIdBuffer.append(pmsOperatorRole.getRoleId()); owenedRoleIdBuffer.append(","); } String owenedRoleIds = owenedRoleIdBuffer.toString(); if (StringUtils.isNotBlank(owenedRoleIds) && owenedRoleIds.length() > 0) { owenedRoleIds = owenedRoleIds.substring(0, owenedRoleIds.length() - 1); } model.addAttribute("owenedRoleIds", owenedRoleIds); model.addAttribute("OperatorStatusEnum", PublicStatusEnum.toMap()); model.addAttribute("OperatorTypeEnum", OperatorTypeEnum.toMap()); model.addAttribute("pmsOperator", pmsOperator); return "pms/pmsOperatorEdit"; } catch (Exception e) { log.error("== editPmsOperatorUI exception:", e); return operateError("??", model); } } /** * ???? * * @return operateSuccess or operateError . */ @RequiresPermissions("pms:operator:edit") @RequestMapping("/edit") public String editPmsOperator(HttpServletRequest req, PmsOperator operator, String selectVal, Model model, DwzAjax dwz) { try { Long id = operator.getId(); PmsOperator pmsOperator = pmsOperatorService.getDataById(id); if (pmsOperator == null) { return operateError("????", model); } // ???? if ("USER".equals(this.getPmsOperator().getType()) && "ADMIN".equals(pmsOperator.getType())) { return operateError("???", model); } pmsOperator.setRemark(operator.getRemark()); pmsOperator.setMobileNo(operator.getMobileNo()); pmsOperator.setRealName(operator.getRealName()); // ?? // pmsOperator.setStatus(getInteger("status")); String roleOperatorStr = getRoleOperatorStr(selectVal); // ?? String validateMsg = validatePmsOperator(pmsOperator, roleOperatorStr); if (StringUtils.isNotBlank(validateMsg)) { return operateError(validateMsg, model); // ? } pmsOperatorService.updateOperator(pmsOperator, roleOperatorStr); return operateSuccess(model, dwz); } catch (Exception e) { log.error("== editPmsOperator exception:", e); return operateError("??", model); } } /** * ?ID?. * * @return operateSuccess or operateError . */ @RequiresPermissions("pms:operator:changestatus") @RequestMapping("/changeStatus") public String changeOperatorStatus(HttpServletRequest req, PmsOperator operator, Model model, DwzAjax dwz) { try { Long operatorId = operator.getId(); PmsOperator pmsOperator = pmsOperatorService.getDataById(operatorId); if (pmsOperator == null) { return operateError("????", model); } if (this.getPmsOperator().getId() == operatorId) { return operateError("??", model); } // ???? if ("USER".equals(this.getPmsOperator().getType()) && "ADMIN".equals(pmsOperator.getType())) { return operateError("???", model); } // 2014-01-02,? // pmsPermissionBiz.deleteOperator(id); // ?? if (pmsOperator.getStatus().equals(PublicStatusEnum.ACTIVE.name())) { if ("ADMIN".equals(pmsOperator.getType())) { return operateError("?" + pmsOperator.getLoginName() + "??", model); } pmsOperator.setStatus(PublicStatusEnum.UNACTIVE.name()); pmsOperatorService.updateData(pmsOperator); } else { pmsOperator.setStatus(PublicStatusEnum.ACTIVE.name()); pmsOperatorService.updateData(pmsOperator); } return operateSuccess(model, dwz); } catch (Exception e) { log.error("== changeOperatorStatus exception:", e); return operateError("?:" + e.getMessage(), model); } } /*** * ???????? . * * @return */ @RequiresPermissions("pms:operator:resetpwd") @RequestMapping("/resetPwdUI") public String resetOperatorPwdUI(HttpServletRequest req, Long id, Model model) { PmsOperator operator = pmsOperatorService.getDataById(id); if (operator == null) { return operateError("????", model); } // ???? if ("USER".equals(this.getPmsOperator().getType()) && "ADMIN".equals(operator.getType())) { return operateError("???", model); } model.addAttribute("operator", operator); return "pms/pmsOperatorResetPwd"; } /** * ???. * * @return */ @RequiresPermissions("pms:operator:resetpwd") @RequestMapping("/resetPwd") public String resetOperatorPwd(HttpServletRequest req, Long id, String newPwd, String newPwd2, Model model, DwzAjax dwz) { try { PmsOperator operator = pmsOperatorService.getDataById(id); if (operator == null) { return operateError("??????", model); } // ???? if ("USER".equals(this.getPmsOperator().getType()) && "ADMIN".equals(operator.getType())) { return operateError("???", model); } String validateMsg = validatePassword(newPwd, newPwd2); if (StringUtils.isNotBlank(validateMsg)) { return operateError(validateMsg, model); // ? } operator.setLoginPwd(newPwd); PasswordHelper.encryptPassword(operator); pmsOperatorService.updateData(operator); return operateSuccess(model, dwz); } catch (Exception e) { log.error("== resetOperatorPwd exception:", e); return operateError("??:" + e.getMessage(), model); } } /** * ??ID * * @return */ private String getRoleOperatorStr(String selectVal) throws Exception { String roleStr = selectVal; if (StringUtils.isNotBlank(roleStr) && roleStr.length() > 0) { roleStr = roleStr.substring(0, roleStr.length() - 1); } return roleStr; } /*** * ??? * * @param newPwd * @param newPwd2 * @return */ private String validatePassword(String newPwd, String newPwd2) { String msg = ""; // ????? if (StringUtils.isBlank(newPwd)) { msg += "??"; } else if (newPwd.length() < 6) { msg += "??6?"; } if (!newPwd.equals(newPwd2)) { msg += "??"; } return msg; } }