文章目錄
- 用戶模塊User
- 1. export_domain子工程User用戶(員工)類
- 2. export_system_service子工程撰寫測驗類測驗用戶的CRUD
- 3. export_system_service子工程的service介面和實作類
- 4. export_dao子工程寫dao介面及其映射
- 5. export_web_manager子工程撰寫controller
- 6. export_web_manager子工程撰寫jsp頁面
用戶模塊User



1. export_domain子工程User用戶(員工)類
//用戶表
public class User {
private String userId;
//所在部門
private String deptId;
private String email;
private String userName;
private String station;
private String password;
private long state;
private String companyId;
private String companyName;
private String deptName;
private String managerId;
private String gender;
private String telephone;
private String birthday;
private int degree;
private double salary;
private String joinDate;
private long orderNo;
private String createBy;
private String createDempt;
private Date createTime;
private String updateBy;
private Date updateTime;
private String remark;
}
2. export_system_service子工程撰寫測驗類測驗用戶的CRUD
TestUserService
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath*:spring/applicationContext-*.xml")
public class TestUserService {
//記錄日志
private static final Logger l = LoggerFactory.getLogger(TestUserService.class);
@Autowired
IUserService iUserService;
//測驗通過公司id查詢所有公司用戶,分頁顯示
@Test
public void test01(){
String companyId="1";
//作為一個公司用戶的管理員,只能查自己公司的員工,分頁顯示當前第一頁,每頁3條資料
PageInfo<User> pi= iUserService.findByPage(1,3,companyId);
l.info("pi = "+pi);
}
//測驗新增一個用戶
@Test
public void test02(){
User user = new User();
user.setUserName("新增用戶addUser");
user.setDeptId(UUID.randomUUID().toString());
user.setDeptId("1");
user.setCompanyId("1");
iUserService.saveUser(user);
l.info("增加User --- : " + user);
}
//更新用戶資訊
@Test
public void test03(){
String userId="899676f8-9de7-4ae0-93f3-61869dc9fedb";
User user = iUserService.findUserById(userId);
l.info("test03 更新 user = "+user);
//修改
user.setUserName("update User 更新");
//保存
iUserService.updateUser(user);
}
//測驗洗掉
@Test
public void test04(){
//
//洗掉業務,就是根據指定的id,洗掉資料庫中的記錄
String userId="899676f8-9de7-4ae0-93f3-61869dc9fedb";
//洗掉
boolean flag = iUserService.deleteUser(userId);
l.info(flag+"");
}
//通過公司查找所有的用戶(員工)
@Test
public void test05(){
//A公司管理員,只能查A公司用戶或者員工
String companyId="1";
List<User> list = iUserService.findAllUsers(companyId);
l.info("公司的所有userList = "+list);
}
}
3. export_system_service子工程的service介面和實作類
IUserService
//user業務介面
public interface IUserService {
//分頁顯示用戶資訊
PageInfo<User> findByPage(int curr, int pageSize, String companyId);
void saveUser(User user);
User findUserById(String userId);
void updateUser(User user);
boolean deleteUser(String userId);
List<User> findAllUsers(String companyId);
}
UserServiceImpl
@Service
public class UserServiceImpl implements IUserService {
@Autowired
IUserDao iUserDao;
@Override
public PageInfo<User> findByPage(int curr, int pageSize, String companyId) {
//設定分頁引數
PageHelper.startPage(curr,pageSize);
//呼叫全查,查找所有的用戶(根據公司id)
List<User> list = iUserDao.findAll(companyId);
//包裝成PageInfo
PageInfo<User> pi = new PageInfo<>(list);
return pi;
}
@Override
public User findUserById(String userId) {
return iUserDao.findById(userId);
}
@Override
public boolean deleteUser(String userId) {
iUserDao.deleteById(userId);
return true;
}
@Override
public List<User> findAllUsers(String companyId) {
return iUserDao.findAll(companyId);
}
@Override
public void saveUser(User user) {
String uuid= UUID.randomUUID().toString();
user.setUserId(uuid);
iUserDao.save(user);
}
@Override
public void updateUser(User user) {
iUserDao.update(user);
}
}
4. export_dao子工程寫dao介面及其映射
IUserDao
public interface IUserDao {
//根據公司id,查找所有用戶,按照更新時間排序
List<User> findAll(String companyId);
//添加新增一個user
void save(User user);
//通過id查找用戶
User findById(String userId);
//更新user資訊
void update(User user);
//通過id洗掉user
void deleteById(String userId);
}
IUserDao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xgf.dao.system.user.IUserDao">
<!-- 資料庫表欄位和類屬性映射 -->
<resultMap id="userMap" type="user">
<id column="user_id" property="userId"/>
<result column="dept_id" property="deptId"/>
<result column="email" property="email"/>
<result column="user_name" property="userName"/>
<result column="station" property="station"/>
<result column="password" property="password"/>
<result column="state" property="state"/>
<result column="company_id" property="companyId"/>
<result column="company_name" property="companyName"/>
<result column="dept_name" property="deptName"/>
<result column="manager_id" property="managerId"/>
<result column="gender" property="gender"/>
<result column="telephone" property="telephone"/>
<result column="birthday" property="birthday"/>
<result column="degree" property="degree"/>
<result column="salary" property="salary"/>
<result column="join_date" property="joinDate"/>
<result column="order_no" property="orderNo"/>
<result column="create_by" property="createBy"/>
<result column="create_dempt" property="createDempt"/>
<result column="create_time" property="createTime"/>
<result column="update_by" property="updateBy"/>
<result column="update_time" property="updateTime"/>
<result column="remark" property="remark"/>
</resultMap>
<!-- 查找所有用戶,按照更新時間排序 -->
<select id="findAll" parameterType="string" resultMap="userMap">
select * from pe_user where company_id = #{companyId} order by update_time desc
</select>
<!-- 添加一個用戶user -->
<insert id="save" parameterType="user">
insert into pe_user
(
user_id ,
dept_id ,
email ,
user_name ,
station ,
password ,
state ,
company_id ,
company_name ,
dept_name ,
manager_id ,
gender ,
telephone ,
birthday ,
degree ,
salary ,
join_date ,
order_no ,
create_by ,
create_dempt ,
create_time ,
update_by ,
update_time ,
remark
)
values(
#{userId },
#{deptId },
#{email },
#{userName },
#{station },
#{password },
#{state },
#{companyId },
#{companyName },
#{deptName },
#{managerId },
#{gender },
#{telephone },
#{birthday },
#{degree },
#{salary },
#{joinDate },
#{orderNo },
#{createBy },
#{createDempt },
#{createTime },
#{updateBy },
#{updateTime },
#{remark }
)
</insert>
<!-- 通過id查找用戶 -->
<select id="findById" parameterType="string" resultMap="userMap">
select * from pe_user where user_id = #{userId}
</select>
<!-- 更新user資訊 -->
<update id="update" parameterType="user">
update pe_user set
dept_id = #{deptId },
email = #{email },
user_name = #{userName },
station = #{station },
password = #{password },
state = #{state },
company_id = #{companyId },
company_name = #{companyName },
dept_name = #{deptName },
manager_id = #{managerId },
gender = #{gender },
telephone = #{telephone },
birthday = #{birthday },
degree = #{degree },
salary = #{salary },
join_date = #{joinDate },
order_no = #{orderNo },
create_by = #{createBy },
create_dempt = #{createDempt },
create_time = #{createTime },
update_by = #{updateBy },
update_time = #{updateTime },
remark = #{remark }
where user_id = #{userId }
</update>
<!-- 通過id洗掉user -->
<delete id="deleteById" parameterType="string">
delete from pe_user where user_id = #{userId}
</delete>
</mapper>
5. export_web_manager子工程撰寫controller
UserController
@Controller
@RequestMapping("/system/user")
public class UserController extends BaseController {
private static final Logger l = LoggerFactory.getLogger(UserController.class);
@Autowired
IUserService iUserService;
@Autowired
IDeptService iDeptService;
@RequestMapping(path="/toList",method ={ RequestMethod.GET, RequestMethod.POST})
public String toList(@RequestParam(defaultValue = "1") int curr, @RequestParam(defaultValue = "10")int pageSize){
//調查詢分頁串列的方法
PageInfo<User> pi = iUserService.findByPage(curr, pageSize,getLoginCompanyId());
//將pi分頁資訊發送到jsp頁面
request.setAttribute("pi",pi);
return "system/user/user-list";
}
// 洗掉用戶
@RequestMapping(path="/delete",method ={ RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public Object delete(String userId){//引數接收頁面js提交過來的userId
boolean flag = iUserService.deleteUser(userId);
if(flag){
return Msg.init(200,"洗掉成功",null);
}else{
return Msg.init(-200,"洗掉失敗",null);
}
}
//增加頁面
@RequestMapping(path="/toAdd",method ={ RequestMethod.GET, RequestMethod.POST})
public String toAdd(){
//頁面上有一個下拉選單 ,需要查詢所有的部門
List<Dept> depts = iDeptService.findAll(getLoginCompanyId());
//添加到request
request.setAttribute("depts",depts);
return "system/user/user-add";
}
//添加用戶
@RequestMapping(path="/add",method ={ RequestMethod.GET, RequestMethod.POST})
public String add(User user){//接收頁面提交過來的表單資料
l.info("add user="+user);
//用戶或者員工屬于一家公司,所以公司companyId是必須的
user.setCompanyId(getLoginCompanyId());
user.setCompanyName(getLoginCompanyName());
l.info("add user="+user);
iUserService.saveUser(user);
return "redirect:/system/user/toList";
}
//更新回顯
@RequestMapping(path="/toUpdate",method ={ RequestMethod.GET, RequestMethod.POST})
public String toUpdate(String userId){//需要使用引數接收提交的 userId
l.info("toUpdate userId="+userId);
//需要根據userId查詢當前模塊的記錄,回顯
User user = iUserService.findUserById(userId);
l.info("toUpdate user="+user);
request.setAttribute("user",user);
//頁面上有一個下拉選單 ,需要查詢所有的部門
List<Dept> depts = iDeptService.findAll(getLoginCompanyId());
//添加到request
request.setAttribute("depts",depts);
return "system/user/user-update";
}
//更新用戶
@RequestMapping(path = "/update", method = {RequestMethod.GET, RequestMethod.POST})
public String update(User user) {//需要接收編輯頁面提交的表單資料
l.info("update user=" + user);
//更新
iUserService.updateUser(user);
return "redirect:/system/user/toList";
}
}
6. export_web_manager子工程撰寫jsp頁面
user-add.jsp添加(下拉選單選中的部門提交后沒有名稱)
<div class="col-md-4 data">
<input type="hidden" id="deptName" name="deptName" value="${depts[0].deptName}" >
<script type="text/javascript">
function selectDepartment() {
//獲取選中值的中文
var select= $('#select option:selected')
//將中文賦值給隱藏的輸入框,最后提交到后臺
//alert(select.val())
//alert(select.html())
$('#deptName').val(select.html())
}
</script>
<select id="select" class="form-control" onchange="selectDepartment()" name="deptId">
<c:forEach items="${depts}" var="item">
<option value="${item.deptId}">${item.deptName}</option>
</c:forEach>
</select>
</div>
更新user-update.jsp的時候對于不需要更新的欄位(但是欄位必須)要設定隱藏域來向后臺提交,
<div class="col-md-4 data">
<input type="hidden" id="userId" name="userId" value="${user.userId}">
<input type="hidden" id="deptId" name="deptId" value="${user.deptId}">
<input type="hidden" id="deptName" name="deptName" value="${user.deptName}">
<input type="hidden" id="companyId" name="companyId" value="${user.companyId}">
<input type="hidden" id="companyName" name="companyName" value="${user.companyName}">
<script type="text/javascript">
function selectDepartment() {
//獲取選中值的中文
var select= $('#select option:selected')
//將中文賦值給隱藏的輸入框,最后提交到后臺
//alert(select.val())
//alert(select.html())
$('#deptName').val(select.html())
$('#deptId').val(select.val())
}
</script>
<select id="select" class="form-control" onchange="selectDepartment()" >
<c:forEach items="${depts}" var="item">
<option
<%--當前用戶的deptId與查詢的部門集合中的元素的deptId相等,則應該選中--%>
<c:if test="${user.deptId==item.deptId}" >
selected
</c:if>
value="${item.deptId}">${item.deptName}</option>
</c:forEach>
</select>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/205413.html
標籤:java
上一篇:墨者學院SQL注入解題
