MrShi
2025-09-15 856f526f823f5dad88c28657d82f971ff66afb1e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package com.doumee.api.web;
 
import com.doumee.core.annotation.LoginRequired;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.web.response.UserResponse;
import com.doumee.dao.system.dto.WebLoginDTO;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.jtt808.web.service.Jtt808Service;
import com.doumee.service.business.*;
import com.doumee.service.system.SystemLoginService;
import com.doumee.service.system.SystemUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
 
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/10/9 10:15
 */
 
@Api(tags = "4、运营中心接口")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/manger")
@Slf4j
public class ManagerApi extends ApiController{
 
    @Autowired
    private Jtt808Service jtt808Service;
 
    @Autowired
    private BikesService bikesService;
    @Autowired
    private SystemLoginService systemLoginService;
    @Autowired
    private SystemUserService systemUserService;
    @LoginRequired
    @PreventRepeat(limit = 10, lockTime = 10000)
    @ApiOperation("登录管理员账号")
    @PostMapping("/login")
    public ApiResponse<UserResponse> login (@Validated @RequestBody WebLoginDTO dto, HttpServletRequest request) {
        dto.setMemberId(this.getMemberId());
        SystemUser sys =systemLoginService.loginByPasswordWx(dto, request);
        return ApiResponse.success(   memberService.getUserInfo(getMemberId()));
    }
    @LoginRequired
    @PreventRepeat(limit = 10, lockTime = 10000)
    @ApiOperation("退出管理员账号")
    @PostMapping("/logout")
    public ApiResponse<UserResponse> logout (HttpServletRequest request) {
        systemLoginService.logoutWx(this.getMemberId());
        return ApiResponse.success(memberService.getUserInfo(getMemberId()));
    }
 
    @PreventRepeat
    @LoginRequired
    @ApiOperation("电车批量上下架")
    @GetMapping("/updateBikeStatus/batch")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "ids", value = "车辆编码集合,多个英文逗号隔开", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "bikeStatus", value = "状态", required = true)
    })
    public ApiResponse updateBikeStatus(@RequestParam String ids, @RequestParam Integer bikeStatus) {
        UserResponse user = this.getUserResponse();
        if(user.getSysuser() ==null){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED);
        }
        String [] idArray = ids.split(",");
        List<String> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(id);
        }
        bikesService.updateBikeStatusBatchWx(user,idList,bikeStatus);
        return ApiResponse.success(null);
    }
    @PreventRepeat
    @LoginRequired
    @ApiOperation("电车批量开关锁")
    @GetMapping("/updateLockStatus/batch")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "ids", value = "车辆编码集合,多个英文逗号隔开", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "lockStatus", value = "状态 0关锁 1开锁", required = true)
    })
    public ApiResponse<String> updateLockStatus(@RequestParam String ids, @RequestParam Integer lockStatus) {
        UserResponse user = this.getUserResponse();
        if(user.getSysuser() ==null){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED);
        }
        String [] idArray = ids.split(",");
        List<String> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(id);
        }
       String msg = jtt808Service.updateLockStatusBatch(user,idList,lockStatus);
        return ApiResponse.success(msg);
    }
    @PreventRepeat
    @LoginRequired
    @ApiOperation("分页查询电车列表")
    @PostMapping("/pageBikes")
    public ApiResponse<PageData<Bikes>> pageBikes (@RequestBody PageWrap<Bikes> pageWrap) {
        UserResponse user = this.getUserResponse();
        if(user.getSysuser() ==null){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED);
        }
        pageWrap.getModel().setType(Constants.ONE);//查询电车列表
        PageData<Bikes> list = bikesService.findJoinPage(pageWrap);
        return ApiResponse.success(list);
    }
 
}