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 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 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 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 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 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> pageBikes (@RequestBody PageWrap pageWrap) { UserResponse user = this.getUserResponse(); if(user.getSysuser() ==null){ throw new BusinessException(ResponseStatus.NOT_ALLOWED); } pageWrap.getModel().setType(Constants.ONE);//查询电车列表 PageData list = bikesService.findJoinPage(pageWrap); return ApiResponse.success(list); } }