UserServicesImpl.java 4.51 KB
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<String, Object> 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<String, Object> 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<String, Object> requestMap) {
        int currentpage = (int) requestMap.get("currentpage");
        int pagevolume = (int) requestMap.get("pagevolume");
        List<UserDetailsMsg> userDetailsMsgs = mongoTemplate.find(new Query().skip((currentpage - 1) * pagevolume).limit(pagevolume), UserDetailsMsg.class);
        long totalNum = mongoTemplate.count(new Query(), UserDetailsMsg.class);
        ArrayList<JSONObject> 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<String, Object> 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<String, Object> 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<String, Object> 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;
    }
}