UserController.java 8.21 KB
Newer Older
manxiaoqiang committed
1 2 3 4
package common.controller;

import common.model.Menu;
import common.model.User;
manxiaoqiang committed
5 6 7
import common.repository.AuthRepository;
import common.repository.RoleRepository;
import common.repository.RoleTypeRepository;
manxiaoqiang committed
8
import common.repository.UserRepository;
manxiaoqiang committed
9
import common.service.MenuService;
manxiaoqiang committed
10
import common.service.UserService;
kangxiaoshan committed
11
import dic.AuthMenuEnmm;
manxiaoqiang committed
12
import dic.OperateObjectTypeEnum;
manxiaoqiang committed
13 14
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
manxiaoqiang committed
15
import org.springframework.web.bind.annotation.*;
kangxiaoshan committed
16
import security.annotation.AuthKey;
manxiaoqiang committed
17
import security.annotation.CurrentAccount;
manxiaoqiang committed
18
import util.CipherUtil;
manxiaoqiang committed
19
import util.ResultModel;
manxiaoqiang committed
20
import util.UserLogThread;
manxiaoqiang committed
21

manxiaoqiang committed
22
import javax.servlet.http.HttpServletRequest;
manxiaoqiang committed
23
import javax.servlet.http.HttpServletResponse;
manxiaoqiang committed
24 25 26 27 28 29
import java.util.List;

/**
 * Created by mxq on 2017/12/21.
 */
@Controller
manxiaoqiang committed
30
@RequestMapping("system/user")
manxiaoqiang committed
31 32
public class UserController {
    @Autowired
manxiaoqiang committed
33
    private UserService userService;
manxiaoqiang committed
34

manxiaoqiang committed
35 36 37
    @Autowired
    UserRepository userRepository;

manxiaoqiang committed
38 39 40 41 42 43 44 45 46 47 48 49 50 51
    @Autowired
    RoleRepository roleRepository;

    @Autowired
    RoleTypeRepository roleTypeRepository;

    @Autowired
    AuthRepository authRepository;

    @RequestMapping(value = "/valid/email", method = RequestMethod.GET)
    @ResponseBody
    public ResultModel validEmail(@RequestParam String email) {
        return ResultModel.OK(userService.validEmail(email));
    }
manxiaoqiang committed
52

manxiaoqiang committed
53
    @RequestMapping(value = "/create", method = RequestMethod.POST)
manxiaoqiang committed
54
    @ResponseBody
kangxiaoshan committed
55
    @AuthKey(AuthMenuEnmm.USERMNG_A)
manxiaoqiang committed
56
    public ResultModel create(@CurrentAccount User loginAccount, @RequestBody User resource, HttpServletRequest request) {
manxiaoqiang committed
57 58
        if(userService.validEmail(resource.getEmail())){
            userService.create(loginAccount, resource);
manxiaoqiang committed
59
            UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.INNERUSER.getKey(), resource.getEmail(), "创建系统账号", request,loginAccount.getRole(),"manager");
manxiaoqiang committed
60
            userlog.start();
manxiaoqiang committed
61 62 63 64
            return ResultModel.OK(true);
        }else{
            return ResultModel.OK(false);
        }
manxiaoqiang committed
65 66 67 68
    }

    @RequestMapping(value = "/update", method = RequestMethod.PUT)
    @ResponseBody
kangxiaoshan committed
69
    @AuthKey(AuthMenuEnmm.USERMNG_M)
manxiaoqiang committed
70
    public ResultModel update(@CurrentAccount User loginAccount, @RequestBody User resource, HttpServletRequest request) {
manxiaoqiang committed
71
        UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.INNERUSER.getKey(), resource.getEmail(), "修改系统账号", request,loginAccount.getRole(),"manager");
manxiaoqiang committed
72
        userlog.start();
manxiaoqiang committed
73
        return ResultModel.OK(userService.update(loginAccount, resource));
manxiaoqiang committed
74 75 76 77
    }

    @RequestMapping(value = "/find", method = RequestMethod.GET)
    @ResponseBody
kangxiaoshan committed
78
    @AuthKey(AuthMenuEnmm.USERMNG_V)
manxiaoqiang committed
79 80 81 82 83 84 85
    public ResultModel find(@CurrentAccount User loginAccount) {
        return ResultModel.OK(userService.find(loginAccount));
    }

    @RequestMapping(value = "/find/role", method = RequestMethod.GET)
    @ResponseBody
    public ResultModel findRole(@CurrentAccount User loginAccount) {
kangxiaoshan committed
86

manxiaoqiang committed
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
        return ResultModel.OK(roleRepository.findAll());
    }

    @RequestMapping(value = "/find/roletype", method = RequestMethod.GET)
    @ResponseBody
    public ResultModel findRoleType(@CurrentAccount User loginAccount) {
        return ResultModel.OK(roleTypeRepository.findAll());
    }

    @RequestMapping(value = "/find/auth", method = RequestMethod.GET)
    @ResponseBody
    public ResultModel findAuth(@CurrentAccount User loginAccount) {
        return ResultModel.OK(authRepository.findByUser(loginAccount.getId()));
    }

    @RequestMapping(value = "/delete/{id}", method = RequestMethod.DELETE)
    @ResponseBody
kangxiaoshan committed
104
    @AuthKey(AuthMenuEnmm.USERMNG_D)
manxiaoqiang committed
105 106
    public ResultModel delete(@CurrentAccount User loginAccount, @PathVariable Long id, HttpServletRequest request) {
        User user = userService.delete(loginAccount, id);
manxiaoqiang committed
107
        UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.INNERUSER.getKey(), user.getEmail(), "删除系统账号", request,loginAccount.getRole(),"manager");
manxiaoqiang committed
108 109
        userlog.start();
        return ResultModel.OK(user);
manxiaoqiang committed
110 111 112 113
    }

    @RequestMapping(value = "/enable/{id}", method = RequestMethod.PUT)
    @ResponseBody
manxiaoqiang committed
114 115
    public ResultModel enable(@CurrentAccount User loginAccount, @PathVariable Long id, HttpServletRequest request) {
        User user = userService.enable(loginAccount, id);
manxiaoqiang committed
116
        UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.INNERUSER.getKey(), user.getEmail(), "启用系统账号", request,loginAccount.getRole(),"manager");
manxiaoqiang committed
117 118
        userlog.start();
        return ResultModel.OK(user);
manxiaoqiang committed
119 120
    }

manxiaoqiang committed
121
    @RequestMapping(value = "/forbiden/{id}", method = RequestMethod.PUT)
manxiaoqiang committed
122
    @ResponseBody
kangxiaoshan committed
123
    @AuthKey(AuthMenuEnmm.USERMNG_STOP)
manxiaoqiang committed
124 125
    public ResultModel forbiden(@CurrentAccount User loginAccount, @PathVariable Long id, HttpServletRequest request) {
        User user = userService.forbiden(loginAccount, id);
manxiaoqiang committed
126
        UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.INNERUSER.getKey(), user.getEmail(), "停用系统账号", request,loginAccount.getRole(),"manager");
manxiaoqiang committed
127 128
        userlog.start();
        return ResultModel.OK(user);
manxiaoqiang committed
129 130
    }

manxiaoqiang committed
131
    @RequestMapping(value = "/update/name", method = RequestMethod.PUT)
manxiaoqiang committed
132
    @ResponseBody
kangxiaoshan committed
133
    @AuthKey(AuthMenuEnmm.USERMNG_M)
manxiaoqiang committed
134
    public ResultModel updateName(@CurrentAccount User loginAccount, @RequestParam String name, HttpServletRequest request) {
manxiaoqiang committed
135 136
        User login = userRepository.login(name);
        if(null == login){
manxiaoqiang committed
137
            User user = userService.updateName(loginAccount, name);
manxiaoqiang committed
138
            UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.INNERUSER.getKey(), user.getEmail(), "修改系统账号名字", request,loginAccount.getRole(),"manager");
manxiaoqiang committed
139
            userlog.start();
manxiaoqiang committed
140 141 142 143 144
            return ResultModel.OK(true);
        }else{
            return ResultModel.OK(false);
        }

manxiaoqiang committed
145 146
    }

manxiaoqiang committed
147
    @RequestMapping(value = "/update/password", method = RequestMethod.PUT)
manxiaoqiang committed
148
    @ResponseBody
kangxiaoshan committed
149
    @AuthKey(AuthMenuEnmm.USERMNG_M)
manxiaoqiang committed
150
    public ResultModel updatePwd(@CurrentAccount User loginAccount, @RequestParam String pwd, @RequestParam String oldpwd, HttpServletRequest request) {
manxiaoqiang committed
151 152
        User login = userRepository.login(loginAccount.getEmail(), CipherUtil.generatePassword(oldpwd));
        if(null != login){
manxiaoqiang committed
153
            User user = userService.updatePwd(loginAccount, pwd);
manxiaoqiang committed
154
            UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.INNERUSER.getKey(), user.getEmail(), "修改系统账号密码", request,loginAccount.getRole(),"manager");
manxiaoqiang committed
155
            userlog.start();
manxiaoqiang committed
156 157 158 159
            return ResultModel.OK(true);
        }else{
            return ResultModel.OK(false);
        }
manxiaoqiang committed
160 161
    }

manxiaoqiang committed
162
    //忘记密码时,修改密码
manxiaoqiang committed
163 164
    @RequestMapping(value = "/update/pwd", method = RequestMethod.PUT)
    @ResponseBody
kangxiaoshan committed
165
    @AuthKey(AuthMenuEnmm.USERMNG_M)
manxiaoqiang committed
166
    public ResultModel updatePwd(@RequestParam String email, @RequestParam String pwd, HttpServletRequest request) {
manxiaoqiang committed
167
        UserLogThread userlog = new UserLogThread(email, email, OperateObjectTypeEnum.INNERUSER.getKey(), email, "修改系统账号密码", request,null,"manager");
manxiaoqiang committed
168
        userlog.start();
manxiaoqiang committed
169 170 171
        return ResultModel.OK(userService.updatePwd(email, pwd));
    }

manxiaoqiang committed
172 173
    //忘记密码时,发送验证码
    @RequestMapping(value = "/code", method = RequestMethod.GET)
manxiaoqiang committed
174 175 176 177 178 179
    @ResponseBody
    public ResultModel sengCode(@RequestParam String email) {

        return ResultModel.OK(userService.sendCode(email));
    }

manxiaoqiang committed
180 181
    //验证码验证
    @RequestMapping(value = "/update/pwd", method = RequestMethod.GET)
manxiaoqiang committed
182
    @ResponseBody
manxiaoqiang committed
183 184
    public ResultModel validCode(@RequestParam String email, @RequestParam String code, @RequestParam String pwd) {
        return ResultModel.OK(userService.validCode(email, code, pwd));
manxiaoqiang committed
185
    }
manxiaoqiang committed
186 187 188 189 190 191 192 193 194


    @RequestMapping(value = "/find/{role}", method = RequestMethod.GET)
    @ResponseBody
    public ResultModel findByRole(@PathVariable Long role) {
        return ResultModel.OK(userService.findbyRole(role));
    }


manxiaoqiang committed
195
}