gitlab修改用戶密碼_CRM用戶模塊(用戶密碼修改)

1f19b80c94745fef298cb78a375e51de.png

四 密碼修改

1 需求分析

修改當前登陸用戶的登陸密碼

2 頁面原型

cce2daca9089009264b7009d1f0e1500.png


3 流程圖

3ca27cfdb55ed8d62dda29e3d0b76804.png

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:封裝我們需要的公共的方法

喜歡就關注嗨碼歌吧!

每天都有新的技術與你分享哦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452951.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452951.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452951.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ICMP協議簡介

ICMP是Internet Control Message Protocol&#xff0c;因特網控制報文協議。它是TCP/IP協議族的一個子協議&#xff0c;用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由器是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據&…

vue之vuex

vuex負責vue的數據管理和共享&#xff0c;適用于大型項目 安裝vuex npm install vuex --save; 運用vuex 主要有五大金剛&#xff1a; export default new Vuex.Store({//$store為了讓外部可以引用state,//數據存儲mutations,//行為動作actions,//異步改變state狀態,也就是提交m…

項目管理中的特殊———例外管理

概念 例外管理由管理學引入領導學&#xff0c;也就是指領導人應將主要精力和時間用來處理首次出現的、模糊隨機、十分重要需要立即處理的非程序化問題。而對于決策對象反復出現的&#xff0c;決策者已有固定的或例行的程序來處理的問題&#xff0c;即常例&#xff0c;由于在職業…

mysql 5.6.23 源碼包安裝報錯_CentOS6.5_64bit下編譯安裝MySQL-5.6.23

標簽&#xff1a;************************************************************CentOS6.5_64bit下編譯安裝MySQL-5.6.23**************************************************************一、關閉防火墻chkconfig iptables offservice iptables stop二、下載mysql源碼包&…

third day- 01--文件操作

1 1、請分別介紹文件操作中不同的打開方式之間的區別&#xff1a;2 3 模式 含義4 r 文本只讀模式5 rb 二進制模式  #這種方法&#xff0c;是用來傳輸或存儲&#xff0c;不給人看的。6 r r 是讀寫模式&#xff0c;只要沾上r&#xff0c;文件必須存在7 rb …

什么是TTL

TTL是指生存時間&#xff0c;簡單來說&#xff0c;它表示了數據包在網絡中的時間&#xff0c;經過一個路由器后TTL就減一&#xff0c;這樣TTL最終會減為0&#xff0c;當TTL為0時&#xff0c;則將數據包丟棄&#xff0c;這樣也就是因為兩個路由器之間可能形成環&#xff0c;如果…

python中itsdangerous模塊

使用itsdangerous生成臨時身份令牌 準備工作&#xff1a; 安裝pip install itsdangerous import itsdangeroussaltsdaf#加鹽&#xff0c;指定一個鹽值&#xff0c;別讓別人知道哦&#xff0c;否則就可以解密出來了 titsdangerous.TimedJSONWebSignatureSerializer(salt,expire…

微信小程序中form 表單提交和取值實例詳解

2019獨角獸企業重金招聘Python工程師標準>>> 我們知道&#xff0c;如果我們直接給 input 添加 bindinput&#xff0c;比如&#xff1a;<input bindinput"onUsernameInput" />&#xff0c;那么可以在 onUsernameInput 中直接使用 e.detail.value&…

matlab如何用代碼導入文件_20+行Matlab代碼實現文件掃描

最近剛好看到一篇回答&#xff0c;用閾值二值化處理圖片水印&#xff0c;受到啟發寫此代碼。閾值二值化適合處理只有黑白兩色的圖片&#xff0c;考慮到文件蓋章&#xff0c;這里作者使用像素顏色替換及灰度值處理圖片&#xff0c;進一步提高處理精度和能力。我們需要&#xff1…

聊聊Code Review

轉載&#xff1a;https://richardcao.me/2016/09/30/Talk-About-Codereview/ 最近思考一個問題&#xff0c;如何進行高效的codereview&#xff0c;有沒有好的工具可以使用&#xff0c;于是花了兩三天時間在Google里淘了一番&#xff0c;這里留下記錄。 Phabricator 首屈一指的c…

項目管理十大趨勢

趨勢一、更多中國企業成立項目管理辦公室&#xff0c;項目管理辦公室也發揮更大的作用 在國內&#xff0c;仍有很多企業每年有成百上千的項目實施&#xff0c;而公司卻沒有成立項目管理辦公室&#xff0c;或者已經有了PMO&#xff0c;但是PMO仍在履行一些較為基礎的職能。 沒…

啟動django服務器報錯raise errorclass(errno, errval) django.db.utils.InternalError

問題描述&#xff1a; 啟動django服務器python manage.py runserver報錯: raise errorclass(errno, errval) django.db.utils.InternalError: (1366, “Incorrect string value: ‘\xE7\x94\xA8\xE6\x88\xB7’ for column ‘name’ at row 1”) 原因&#xff1a;與mysql數據庫…

java單例模式之線程安全問題

單例的目的是為了保證運行時Singleton類只有唯一的一個實例&#xff0c;用于一些較大開銷的操作。 餓漢式&#xff08;沒有線程安全問題&#xff09;: ‘ 由于使用static關鍵字進行了修飾&#xff0c;只能獲取到一個對象&#xff0c;從而達到了單例&#xff0c;并且在Singleton…

路由協議和路由算法的不同

網絡上的主機、路由器通過路由選擇算法形成路由表&#xff0c;以確定發送分組的傳輸路徑。而路由選擇協議是路由器用來完成路由表建立和路由信息更新的通信協議。

2003 r2 64 iis php mysql_關于在win2003中,iis+php+mysql 配置的問題

IIS中配置PHP服務器(iis6.0php5.2.6mysql)&#xff0c;步驟如下&#xff1a;1.我下的是php5.2.6_win32 &#xff0c;下載后&#xff0c;解壓到d:\phpwin下面2.然后從其中找到一個叫php.ini-recommended的文件,更名為php.ini3.打開該文件&#xff0c;找到extension_dir ".…

448. Find All Numbers Disappeared in an Array 尋找有界數組[1,n]中的缺失數

&#xff3b;抄題&#xff3d;&#xff1a; Given an array of integers where 1 ≤ a[i] ≤ n (n size of array), some elements appear twice and others appear once. Find all the elements of [1, n] inclusive that do not appear in this array. Could you do it with…

數據結構與算法--1.整型變量值互換

問題: 給定兩個整型變量a,b,在不使用其他變量的情況下&#xff0c;實現兩個變量值的交換。 """ 問題:整型變量值互換 給定兩個整型變量a,b,在不使用其他變量的情況下&#xff0c;實現兩個變量值的交換。 """ a 1234 b 5678 print("binar…

什么是真正的高清,你知道嗎?

摘要&#xff1a;高清&#xff0c;英文為“High Definition”&#xff0c;意思是“高分辨率”。一般所說的高清&#xff0c;有四個含義&#xff1a;高清電視&#xff0c;高清設備&#xff0c;高清格式&#xff0c;高清電影。 高清&#xff0c;英文為“High Definition”&#x…

oracle11g中SQL優化(SQL TUNING)新特性之SQL Plan Management(SPM)

1. 簡介 Oracle Database11gR1引進了SQL PlanManagement&#xff08;簡稱SPM&#xff09;&#xff0c;一套允許DBA捕獲和保持任意SQL語句執行計劃最優的新工具&#xff0c;這樣&#xff0c;限制了刷新優化器統計數據&#xff0c;已有應用改變&#xff0c;甚至數據庫版本升級帶…

Linux基本命令+Makefile

1.linux下查看進程占用cpu的情況(top)&#xff1b; 格式 top [&#xff0d;] [d delay] [q] [c] [S] [s] [i] [n] 主要參數 d&#xff1a;指定更新的間隔&#xff0c;以秒計算。q&#xff1a;沒有任何延遲的更新。如果使用者有超級用戶&#xff0c;則top命令將會以最高的優先…