SpringMVC实现控制层控制选择用户可见的数据

9 篇文章 0 订阅
9 篇文章 0 订阅

 

主要目录结构如上图,需要修改编辑的文件大致有6个

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------UserController.javaU

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.miaoshaproject.controller;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.miaoshaproject.controller.viewobject.UserVO;
import com.miaoshaproject.service.UserService;
import com.miaoshaproject.service.model.UserModel;

//名为user的控制器
@Controller("user")

@RequestMapping("/user")

public class UserController {
    @Autowired
    private UserService userService;
    
    @RequestMapping("/get")
    @ResponseBody
    public UserVO getUser(@RequestParam(name="id")Integer id){
        //调用service服务获取对应id的用户对象,给前端
        UserModel userModel=userService.getUserById(id);
        //返回前端可视模型
        return convertFromModel(userModel);
    }
    
    //转化核心模型为前端可视模型
    private UserVO convertFromModel(UserModel userModel) {
        if(userModel==null) {
            return null;
        }
        UserVO userVO=new UserVO();
        BeanUtils.copyProperties(userModel,userVO);
        return userVO;
    }
}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

UserService.java

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.miaoshaproject.service;

import com.miaoshaproject.service.model.UserModel;

public interface UserService {
    //获取用户对象的方法
    UserModel getUserById(Integer id);
}
 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

UserServiceImpl.java

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.miaoshaproject.service.impl;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.miaoshaproject.dao.UserDoMapper;
import com.miaoshaproject.dao.UserPasswordDoMapper;
import com.miaoshaproject.dataobject.UserDo;
import com.miaoshaproject.dataobject.UserPasswordDo;
import com.miaoshaproject.service.UserService;
import com.miaoshaproject.service.model.UserModel;

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDoMapper userDoMapper;
    
    @Autowired
    private UserPasswordDoMapper userPasswordDoMapper;
    
    public UserModel getUserById(Integer id) {
        //UserDo不会透露给前端
        UserDo userDo=userDoMapper.selectByPrimaryKey(id);
        if(userDo==null) {
            return null;
        }
        //获取加密密码
        UserPasswordDo userPasswordDo=userPasswordDoMapper.selectByUserId(userDo.getId());
        
        return convertFromDataObject(userDo,userPasswordDo);
    
    } 
    
    private UserModel convertFromDataObject(UserDo userDo,UserPasswordDo userPasswordDo) {
        if(userDo==null) {
            return null;
        }
        UserModel userModel=new UserModel();
        BeanUtils.copyProperties(userDo, userModel);
        
        if(userPasswordDo!=null) {
            userModel.setEncrptPassword(userPasswordDo.getEncrptPassword());
        }
        return userModel;
    }
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

UserModel.java

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.miaoshaproject.service.model;

//Model才是核心
public class UserModel {
    private Integer id;
    private String name;
    private Byte gender;
    private Integer age;
    private String telphone;
    private String registerMode;
    private String thirdPartyId;
    
    private String encrptPassword;
    
    public String getEncrptPassword() {
        return encrptPassword;
    }
    public void setEncrptPassword(String encrptPassword) {
        this.encrptPassword = encrptPassword;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Byte getGender() {
        return gender;
    }
    public void setGender(Byte gender) {
        this.gender = gender;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getTelphone() {
        return telphone;
    }
    public void setTelphone(String telphone) {
        this.telphone = telphone;
    }
    public String getRegisterMode() {
        return registerMode;
    }
    public void setRegisterMode(String registerMode) {
        this.registerMode = registerMode;
    }
    public String getThirdPartyId() {
        return thirdPartyId;
    }
    public void setThirdPartyId(String thirdPartyId) {
        this.thirdPartyId = thirdPartyId;
    }
    
    
    
}
 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

UserPasswordDoMapper.java添加一行代码


    UserPasswordDo selectByUserId(Integer userId);

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

UserVO.java

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.miaoshaproject.controller.viewobject;
//给前端能看到的信息
public class UserVO {
    private Integer id;
    private String name;
    private Byte gender;
    private Integer age;
    private String telphone;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Byte getGender() {
        return gender;
    }
    public void setGender(Byte gender) {
        this.gender = gender;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getTelphone() {
        return telphone;
    }
    public void setTelphone(String telphone) {
        this.telphone = telphone;
    }
    
    
    
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值