
四 密碼修改
1 需求分析
修改當前登陸用戶的登陸密碼
2 頁面原型

3 流程圖

4 編寫Controller
@ResponseBody@RequestMapping("updatePwd")public MessageModel updatePwd(HttpServletRequest request, String oldPassword, String newPassword, String confirmPassword){MessageModel messageModel=new MessageModel();String userId = UserLoginUtil.realseUserId(request);try{userService.updatePwd(userId,oldPassword,newPassword,confirmPassword);}catch (ParamsException e){e.printStackTrace();messageModel.setCode(e.getCode());messageModel.setMsg(e.getMsg());}catch (Exception e){e.printStackTrace();messageModel.setCode(CrmConstant.OPS_FAILED_DODE);messageModel.setMsg(CrmConstant.OPS_FAILED_MSG);}return messageModel;}
5 編寫Service
/*** 用戶修改密碼* @param userId* @param oldPassword* @param newPassword* @param confirmPassword*/public void updatePwd(String userId,String oldPassword,String newPassword,String confirmPassword){AssertUtil.isTrue(null==userId,"非法用戶");AssertUtil.isTrue(StringUtils.isBlank(newPassword),"新密碼不能為空");AssertUtil.isTrue(!newPassword.equals(confirmPassword),"兩次密碼輸入不一致");User user = userDao.queryUserById(userId);AssertUtil.isTrue(null==user,"用戶被凍結,不允許修改密碼");oldPassword = Md5Util.encode(oldPassword);AssertUtil.isTrue(!oldPassword.equals(user.getUserPwd()),"原始密碼錯誤");newPassword= Md5Util.encode(newPassword);AssertUtil.isTrue(userDao.updatePwd(userId,newPassword)<1,"操作失敗");}
6 編寫Dao
public User queryUserById(String id);public Integer updatePwd(@Param("id") String id, @Param("userPwd") String userPwd);
7 編寫Mapper
<sql id="user_columns">id , user_name as userName, user_pwd as userPwd,true_name as trueName,phone,email,is_valid as isValid,create_date as createDate,update_date as updateDate</sql><select id="queryUserById" parameterType="string" resultType="user">SELECT <include refid="user_columns"/>from t_user where id = #{id} and is_valid=1</select><update id="updatePwd">UPDATE t_user set user_pwd=#{userPwd}where id =#{id}</update>
8 前臺js
function modifyPassword() {$("#fm").form("submit",{url:ctx+"/user/updatePwd",onSubmit:function () {return $("#fm").form("validate");},success:function (data) {data=JSON.parse(data);if (data.code==200){$.messager.alert("來自crm系統","修改密碼成功,兩秒后推出系統","info");setTimeout(function () {$.removeCookie("userName");$.removeCookie("trueName");$.removeCookie("userId");window.location.href="index";},2000)}else{$.messager.alert("來自crm系統",data.msg,"info");}}})}
五 總結
了解項目分層
Controller:接收請求,向前臺返回數據
Service:在其中實現具體的業務邏輯
Dao/Mapper:與數據庫進行交互,負責增刪改查
Vo:數據庫與項目中實體類的映射
Model:向前臺返回我們所需要的自定義的類型
Utils:封裝我們需要的公共的方法