• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

从零到企业级SSM电商项目实战教程(二十二)更新用户个人信息功能开发

项目实战 Geekerstar 10个月前 (06-22) 287次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

UserController.java

/*
 * @Description: 更新用户个人信息功能
 *
 * @auther: Geekerstar(jikewenku.com)
 * @date: 2018/6/22 16:27
 * @param: [session, user]
 * @return: com.mmall.common.ServerResponse<com.mmall.pojo.User>
 */
@RequestMapping(value = "update_information.do",method = RequestMethod.GET)
@ResponseBody
public ServerResponse<User> update_information(HttpSession session,User user){
    User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
    if(currentUser == null){
        return ServerResponse.createByErrorMessage("用户未登录");
    }
    user.setId(currentUser.getId());
    user.setUsername(currentUser.getUsername());
    ServerResponse<User> response = iUserService.updateInformation(user);
    if(response.isSuccess()){
        session.setAttribute(Const.CURRENT_USER,response.getData());
    }
    return response;
}

IUserService.java

ServerResponse<User> updateInformation(User user);

UserServiceImpl.java

public ServerResponse<User> updateInformation(User user){
    //username是不能被更新的
    //email也要进行一个校验,校验新的email是不是已经存在,并且存在的email如果相同的话,不能是我们当前这个用户的
    int resultCount = userMapper.checkEmailByUserId(user.getEmail(),user.getId());
    if(resultCount > 0){
        return ServerResponse.createBySuccessMessage("email已存在,请更换email再尝试更新");
    }
    User updateUser = new User();
    updateUser.setId(user.getId());
    updateUser.setEmail(user.getEmail());
    updateUser.setPhone(user.getPhone());
    updateUser.setQuestion(user.getQuestion());
    updateUser.setAnswer(user.getAnswer());

    int updateCount = userMapper.updateByPrimaryKeySelective(updateUser);

    if(updateCount>0){
        return ServerResponse.createBySuccess("更新个人信息成功",updateUser);
    }
    return ServerResponse.createByErrorMessage("更新个人信息失败");
}

UserMapper.java

int checkEmailByUserId(@Param(value="email") String email,@Param(value="userId") Integer userId);

UserMapper.xml

<select id="checkEmailByUserId" resultType="int" parameterType="map">
    SELECT count(1) from mmall_user
    WHERE email = #{email}
    and id != #{userId}
</select>

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:从零到企业级SSM电商项目实战教程(二十二)更新用户个人信息功能开发
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00