package com.objecteye.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.objecteye.entity.PageResult; import com.objecteye.pojo.UserDetailsMsg; import com.objecteye.service.UserServices; import com.objecteye.utils.UserTools; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; @Service public class UserServicesImpl implements UserServices { @Autowired private MongoTemplate mongoTemplate; /** * 检查用户是否已经存在 * * @param requestMap 请求参数 * @return 结果集 */ @Override public JSONObject checkUser(Map requestMap) { JSONObject resultObj = new JSONObject(); if (!requestMap.containsKey("username")) { resultObj.put("error", "需要用户名"); return resultObj; } String username = (String) requestMap.get("username"); long count = mongoTemplate.count(Query.query(Criteria.where("username").is(username)), UserDetailsMsg.class); if (count > 0) { resultObj.put("error", "用户名已经存在"); } return resultObj; } @Override public JSONObject addUser(Map requestMap) { JSONObject jsonObject = new JSONObject(); UserDetailsMsg userDetailsMsg = JSON.parseObject(JSON.toJSONString(requestMap), UserDetailsMsg.class); userDetailsMsg.setCreateDate(UserTools.nowToDate()); userDetailsMsg = mongoTemplate.insert(userDetailsMsg); if (userDetailsMsg.getId() == null) { jsonObject.put("error", "插入数据失败"); } return jsonObject; } @Override public PageResult userPage(Map requestMap) { int currentpage = (int) requestMap.get("currentpage"); int pagevolume = (int) requestMap.get("pagevolume"); List userDetailsMsgs = mongoTemplate.find(new Query().skip((currentpage - 1) * pagevolume).limit(pagevolume), UserDetailsMsg.class); long totalNum = mongoTemplate.count(new Query(), UserDetailsMsg.class); ArrayList js = new ArrayList<>(); for (UserDetailsMsg userDetailsMsg : userDetailsMsgs) { JSONObject syUserJson = new JSONObject(); syUserJson.put("id", userDetailsMsg.getId()); syUserJson.put("username", userDetailsMsg.getUsername()); syUserJson.put("password", userDetailsMsg.getPassword()); syUserJson.put("userrole", userDetailsMsg.getUserRole()); syUserJson.put("createdate", userDetailsMsg.getCreateDate()); js.add(syUserJson); } return new PageResult<>((int) Math.ceil(totalNum / (double) pagevolume), js); } @Override public JSONObject updateUser(Map requestMap) { JSONObject resultObj = new JSONObject(); UserDetailsMsg userDetailsMsg = JSON.parseObject(JSON.toJSONString(requestMap), UserDetailsMsg.class); userDetailsMsg = mongoTemplate.save(userDetailsMsg); if (userDetailsMsg.getId() == null) { resultObj.put("error", "操作失败"); } return resultObj; } @Override public JSONObject deleteUser(Map requestMap) { Integer id = (Integer) requestMap.get("id"); mongoTemplate.remove(Query.query(Criteria.where("id").is(id)), UserDetailsMsg.class); return new JSONObject(); } @Override public JSONObject findUserById(Map requestMap) { Integer id = (Integer) requestMap.get("id"); JSONObject jsonObject = new JSONObject(); UserDetailsMsg userDetailsMsg = mongoTemplate.findOne(Query.query(Criteria.where("id").is(id)), UserDetailsMsg.class); if (userDetailsMsg != null) { jsonObject.put("id", userDetailsMsg.getId()); jsonObject.put("username", userDetailsMsg.getUsername()); jsonObject.put("password", userDetailsMsg.getPassword()); jsonObject.put("userrole", userDetailsMsg.getUserRole()); jsonObject.put("createdate", userDetailsMsg.getCreateDate()); } else { jsonObject.put("error", "数据库中不存在该用户数据"); } return jsonObject; } }