1
zj
2024-08-03 388cab2e8ce85f138f4d1bc3bfbf6acd0778467f
websocketSerivce/src/main/java/org/example/controller/UserController.java
@@ -12,10 +12,8 @@
import org.example.common.ServerResponse;
import org.example.dao.ConfigCurrencyMapper;
import org.example.dao.LogMapper;
import org.example.pojo.ConfigCurrency;
import org.example.pojo.Log;
import org.example.pojo.LoginOut;
import org.example.pojo.User;
import org.example.dao.MenuMapper;
import org.example.pojo.*;
import org.example.pojo.vo.DeleteConfigVo;
import org.example.pojo.vo.SaveConfigVo;
import org.example.pojo.vo.UpdateUserVo;
@@ -29,6 +27,7 @@
import java.sql.Date;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @program: demo
@@ -50,6 +49,9 @@
    @Autowired
    private LogMapper logMapper;
    @Autowired
    private MenuMapper menuMapper;
    @PostMapping("/login")
    @ResponseBody
    public ServerResponse saveUser(@RequestParam("account") String account
@@ -63,31 +65,13 @@
            if (!MD5Util.verify(password, user.getPassword())) {
                return ServerResponse.createBySuccessMsg("密码错误");
            }
            List<Menu> menus = menuMapper.selectList(new LambdaQueryWrapper<Menu>());
            if(user.getIsRoot() == 1){
                String token = JwtUtil.getToken(user);
                Map<String,Object> map = new HashMap<>();
                map.put("token",token);
                String loginJson = "[\n" +
                        "  {\n" +
                        "    \"title\":\"行情比对\",\n" +
                        "    \"name\":\"index\",\n" +
                        "    \"path\":\"/index\",\n" +
                        "    \"icon\":\"el-icon-data-analysis\",\n" +
                        "    \"component\":\"comparison\"\n" +
                        "  },\n" +
                        "  {\n" +
                        "    \"title\":\"用户管理\",\n" +
                        "    \"name\":\"user\",\n" +
                        "    \"path\":\"/user\",\n" +
                        "    \"icon\":\"el-icon-user\",\n" +
                        "    \"component\": \"user\"\n" +
                        "  }\n" +
                        "]";
                ObjectMapper objectMapper = new ObjectMapper();
                List<LoginOut> loginOuts = objectMapper.readValue(loginJson, new TypeReference<List<LoginOut>>() {});
                map.put("menu",loginOuts);
                map.put("user",user);
                map.put("menu",menus);
                return ServerResponse.createBySuccess(map);
            }
@@ -104,19 +88,9 @@
            String token = JwtUtil.getToken(user);
            Map<String,Object> map = new HashMap<>();
            map.put("token",token);
            String loginJson = "[\n" +
                    "  {\n" +
                    "    \"title\":\"行情比对\",\n" +
                    "    \"name\":\"index\",\n" +
                    "    \"path\":\"/index\",\n" +
                    "    \"icon\":\"el-icon-data-analysis\",\n" +
                    "    \"component\":\"comparison\"\n" +
                    "  }\n" +
                    "]";
            ObjectMapper objectMapper = new ObjectMapper();
            List<LoginOut> loginOuts = objectMapper.readValue(loginJson, new TypeReference<List<LoginOut>>() {});
            map.put("menu",loginOuts);
            List<Menu> menuList = menus.stream().filter(f -> f.getIsRoot() == 0).collect(Collectors.toList());
            map.put("menu",menuList);
            map.put("user",user);
            String key = "user_";
            RedisUtil.set(key+user.getId(),token);
            String ip = IpAddressUtil.getIpAddress(request);
@@ -140,38 +114,39 @@
    }
    @PostMapping("/saveConfig")
    public ServerResponse saveConfig(@RequestBody SaveConfigVo saveConfigVo) {
//        currencyMapper.delete(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId,saveConfigVo.getUserId()));
    public ServerResponse saveConfig(@RequestBody SaveConfigVo saveConfigVo,HttpServletRequest request) {
        String token = request.getHeader("token");
        User user = JwtUtil.verify(token);
        saveConfigVo.getCurrencyList().forEach(f->{
            ConfigCurrency currency = new ConfigCurrency();
            currency.setUserId(saveConfigVo.getUserId());
            currency.setUserId(user.getId());
            currency.setCurrency(f.getCurrency());
            currency.setBuy(f.getBuy());
            currency.setSell(f.getSell());
            currencyMapper.insert(currency);
        });
        List<ConfigCurrency> configCurrencies = currencyMapper.selectList(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId, saveConfigVo.getUserId()));
        List<ConfigCurrency> configCurrencies = currencyMapper.selectList(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId, user.getId()));
        String key = "config_";
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String json = gson.toJson(configCurrencies);
        RedisUtil.set(key+saveConfigVo.getUserId(),json);
        RedisUtil.set(key+user.getId(),json);
        return ServerResponse.createBySuccess();
    }
    @PostMapping("/deleteConfig")
    public ServerResponse deleteConfig(@RequestBody DeleteConfigVo deleteConfigVo) {
        currencyMapper.delete(new LambdaQueryWrapper<ConfigCurrency>()
                .eq(ConfigCurrency::getUserId,deleteConfigVo.getUserId())
                .in(ConfigCurrency::getId,deleteConfigVo.getConfigId()));
        List<ConfigCurrency> configCurrencies = currencyMapper.selectList(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId, deleteConfigVo.getUserId()));
    @GetMapping("/deleteConfig")
    public ServerResponse deleteConfig(@RequestParam("id") int id,HttpServletRequest request) {
        String token = request.getHeader("token");
        User user = JwtUtil.verify(token);
        currencyMapper.deleteById(id);
        List<ConfigCurrency> configCurrencies = currencyMapper.selectList(new LambdaQueryWrapper<ConfigCurrency>().eq(ConfigCurrency::getUserId, user.getId()));
        String key = "config_";
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String json = gson.toJson(configCurrencies);
        RedisUtil.set(key+deleteConfigVo.getUserId(),json);
        RedisUtil.set(key+user.getId(),json);
        return ServerResponse.createBySuccess();
    }
    @PostMapping("/selectConfig")
    @GetMapping("/selectConfig")
    public ServerResponse selectConfig(@RequestParam(value = "currency", required = false) String currency,
                                       @RequestParam("pageNum") int pageNum,
                                       @RequestParam("pageSize") int pageSize,
@@ -180,13 +155,14 @@
        User user = JwtUtil.verify(token);
        Page<ConfigCurrency> page = new Page<>(pageNum, pageSize);
        Page<ConfigCurrency> configCurrencyPage = currencyMapper.selectPage(page, new LambdaQueryWrapper<ConfigCurrency>()
                .eq(StringUtils.isNotEmpty(currency), ConfigCurrency::getCurrency, currency));
                .eq(StringUtils.isNotEmpty(currency), ConfigCurrency::getCurrency, currency).eq(ConfigCurrency::getUserId,user.getId()));
        return ServerResponse.createBySuccess(configCurrencyPage);
    }
    @PostMapping("/saveUser")
    public ServerResponse saveUser(User user) {
    public ServerResponse saveUser(@RequestBody User user) {
        long count = userService.count(new LambdaQueryWrapper<User>().eq(User::getAccount, user.getAccount()));
        if(count > 0){
            return ServerResponse.createByErrorMsg("账号已存在");
@@ -205,6 +181,15 @@
        }
        userService.removeById(id);
        return ServerResponse.createBySuccess();
    }
    @GetMapping("/selectById")
    public ServerResponse selectById(@RequestParam("id") Integer id) {
        User byId = userService.getById(id);
        if(null == byId || byId.getIsRoot() == 1){
            return ServerResponse.createByErrorMsg("用户不存在");
        }
        return ServerResponse.createBySuccess(byId);
    }
    @PostMapping("/updateUser")
@@ -227,10 +212,21 @@
                                     @RequestParam("pageSize") int pageSize) {
        Page<User> page = new Page<>(pageNum, pageSize);
        Page<User> pageList = userService.page(page, new LambdaQueryWrapper<User>()
                .eq(StringUtils.isNotEmpty(account), User::getAccount, account)
                .like(StringUtils.isNotEmpty(account), User::getAccount, account)
                        .eq(User::getIsShow,0)
                        .eq(User::getIsRoot,0)
                .orderByDesc(User::getAddTime));
        return ServerResponse.createBySuccess(pageList);
    }
    @GetMapping("/selectLog")
    public ServerResponse selectLog(@RequestParam(value = "account", required = false) String account,
                                     @RequestParam("pageNum") int pageNum,
                                     @RequestParam("pageSize") int pageSize) {
        Page<Log> page = new Page<>(pageNum, pageSize);
        Page<Log> pageList = logMapper.selectPage(page, new LambdaQueryWrapper<Log>()
                .like(StringUtils.isNotEmpty(account), Log::getAccount, account)
                .orderByDesc(Log::getLoginTime));
        return ServerResponse.createBySuccess(pageList);
    }
}