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.mzph.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命令将会以最高的优先…