You've already forked FrameTour-BE
支持用户切换景区账号,单账号多景区权限
This commit is contained in:
@@ -1,25 +1,36 @@
|
||||
package com.ycwl.basic.controller.mobile.manage;
|
||||
|
||||
import com.ycwl.basic.annotation.IgnoreToken;
|
||||
import com.ycwl.basic.constant.BaseContextHandler;
|
||||
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq;
|
||||
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO;
|
||||
import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoDTO;
|
||||
import com.ycwl.basic.model.pc.device.resp.DeviceRespVO;
|
||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity;
|
||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
||||
import com.ycwl.basic.service.mobile.AppScenicService;
|
||||
import com.ycwl.basic.service.pc.ScenicAccountService;
|
||||
import com.ycwl.basic.service.pc.ScenicService;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static com.ycwl.basic.constant.JwtRoleConstant.MERCHANT;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/12/12 18:28
|
||||
@@ -28,9 +39,12 @@ import java.util.List;
|
||||
@RequestMapping("/api/mobile/scenicAccount/v1")
|
||||
@Api(tags = "景区账号相关接口")
|
||||
public class AppScenicAccountController {
|
||||
|
||||
@Autowired
|
||||
private ScenicAccountService accountService;
|
||||
@Autowired
|
||||
private AppScenicService scenicService;
|
||||
@Autowired
|
||||
private ScenicService adminScenicService;
|
||||
|
||||
@ApiOperation("登录")
|
||||
@PostMapping("/login")
|
||||
@@ -39,13 +53,68 @@ public class AppScenicAccountController {
|
||||
return scenicService.login(scenicLoginReq);
|
||||
}
|
||||
|
||||
@GetMapping("/myScenicList")
|
||||
public ApiResponse<List<ScenicRespVO>> myScenicList() {
|
||||
List<ScenicRespVO> list = Collections.emptyList();
|
||||
if (StringUtils.equals(BaseContextHandler.getRoleId(), MERCHANT.type)) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = accountService.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
list = account.getScenicId().stream().map(id -> {
|
||||
return scenicService.getDetails(id).getData();
|
||||
}).toList();
|
||||
} else {
|
||||
list = adminScenicService.list(new ScenicReqQuery()).getData();
|
||||
}
|
||||
return ApiResponse.success(list);
|
||||
}
|
||||
|
||||
@GetMapping("/getScenic")
|
||||
public ApiResponse<ScenicRespVO> getMyScenic() {
|
||||
return scenicService.getMyScenic();
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = accountService.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
return scenicService.getDetails(account.getScenicId().getFirst());
|
||||
}
|
||||
|
||||
@GetMapping("/{scenicId}")
|
||||
public ApiResponse<ScenicRespVO> getScenic(@PathVariable Long scenicId) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = accountService.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
if (!account.getScenicId().contains(scenicId)) {
|
||||
return ApiResponse.fail("无权限");
|
||||
}
|
||||
return scenicService.getDetails(scenicId);
|
||||
}
|
||||
|
||||
@GetMapping("/devices")
|
||||
public ApiResponse<List<DeviceRespVO>> getDeviceList() {
|
||||
return scenicService.getMyDevices();
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = accountService.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
return scenicService.getDevices(account.getScenicId().getFirst());
|
||||
}
|
||||
|
||||
@GetMapping("/{scenicId}/devices")
|
||||
public ApiResponse<List<DeviceRespVO>> getDeviceList(@PathVariable Long scenicId) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = accountService.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
if (!account.getScenicId().contains(scenicId)) {
|
||||
return ApiResponse.fail("无权限");
|
||||
}
|
||||
return scenicService.getDevices(scenicId);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -7,9 +7,11 @@ import com.ycwl.basic.model.pc.order.req.OrderReqQuery;
|
||||
import com.ycwl.basic.model.pc.order.resp.OrderRespVO;
|
||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity;
|
||||
import com.ycwl.basic.service.pc.OrderService;
|
||||
import com.ycwl.basic.service.pc.ScenicAccountService;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -24,27 +26,57 @@ public class AppScenicOrderController {
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
@Autowired
|
||||
private ScenicAccountMapper scenicAccountMapper;
|
||||
private ScenicAccountService service;
|
||||
|
||||
@PostMapping("/list")
|
||||
@Deprecated
|
||||
public ApiResponse<List<OrderRespVO>> list(@RequestBody OrderReqQuery query) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = scenicAccountMapper.findAccountById(userId);
|
||||
if (account == null) {
|
||||
return ApiResponse.fail("用户未绑定景区");
|
||||
ScenicAccountEntity account = service.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
query.setScenicId(account.getScenicId());
|
||||
query.setScenicId(account.getScenicId().getFirst());
|
||||
return orderService.list(query);
|
||||
}
|
||||
|
||||
@PostMapping("/{scenicId}/list")
|
||||
public ApiResponse<List<OrderRespVO>> list(@PathVariable Long scenicId, @RequestBody OrderReqQuery query) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = service.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
if (!account.getScenicId().contains(scenicId)) {
|
||||
return ApiResponse.fail("无权限查看该景区订单");
|
||||
}
|
||||
query.setScenicId(scenicId);
|
||||
return orderService.list(query);
|
||||
}
|
||||
|
||||
@PostMapping("/page")
|
||||
@Deprecated
|
||||
public ApiResponse<PageInfo<OrderRespVO>> page(@RequestBody OrderReqQuery query) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = scenicAccountMapper.findAccountById(userId);
|
||||
if (account == null) {
|
||||
return ApiResponse.fail("用户未绑定景区");
|
||||
ScenicAccountEntity account = service.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
query.setScenicId(account.getScenicId());
|
||||
query.setScenicId(account.getScenicId().getFirst());
|
||||
return orderService.pageQueryDetail(query);
|
||||
}
|
||||
|
||||
@PostMapping("/{scenicId}/page")
|
||||
public ApiResponse<PageInfo<OrderRespVO>> page(@PathVariable Long scenicId, @RequestBody OrderReqQuery query) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = service.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
if (!account.getScenicId().contains(scenicId)) {
|
||||
return ApiResponse.fail("无权限查看该景区订单");
|
||||
}
|
||||
query.setScenicId(scenicId);
|
||||
return orderService.pageQueryDetail(query);
|
||||
}
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@ package com.ycwl.basic.controller.pc;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ycwl.basic.mapper.ScenicAccountMapper;
|
||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity;
|
||||
import com.ycwl.basic.model.pc.scenic.req.ScenicAccountReqQuery;
|
||||
import com.ycwl.basic.service.pc.ScenicAccountService;
|
||||
@@ -16,6 +17,8 @@ import java.util.List;
|
||||
public class ScenicAccountController {
|
||||
@Autowired
|
||||
private ScenicAccountService service;
|
||||
@Autowired
|
||||
private ScenicAccountMapper scenicAccountMapper;
|
||||
|
||||
// 添加景区账号
|
||||
@PostMapping("/add")
|
||||
@@ -62,6 +65,10 @@ public class ScenicAccountController {
|
||||
public ApiResponse<PageInfo<ScenicAccountEntity>> pageQuery(@RequestBody ScenicAccountReqQuery req) {
|
||||
PageHelper.startPage(req.getPageNum(), req.getPageSize());
|
||||
List<ScenicAccountEntity> list = service.pageQuery(req);
|
||||
list.forEach(entity -> {
|
||||
entity.setPassword("");
|
||||
entity.setScenicId(scenicAccountMapper.getAccountRelations(entity.getId()));
|
||||
});
|
||||
PageInfo<ScenicAccountEntity> pageInfo = new PageInfo<>(list);
|
||||
return ApiResponse.success(pageInfo);
|
||||
}
|
||||
|
@@ -1,12 +1,16 @@
|
||||
package com.ycwl.basic.controller.pc;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ycwl.basic.constant.BaseContextHandler;
|
||||
import com.ycwl.basic.model.mobile.statistic.req.CommonQueryReq;
|
||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity;
|
||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
||||
import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq;
|
||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
||||
import com.ycwl.basic.service.mobile.AppScenicService;
|
||||
import com.ycwl.basic.service.mobile.AppStatisticsService;
|
||||
import com.ycwl.basic.service.pc.ScenicAccountService;
|
||||
import com.ycwl.basic.service.pc.ScenicService;
|
||||
import com.ycwl.basic.storage.StorageFactory;
|
||||
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
||||
@@ -17,12 +21,16 @@ import com.ycwl.basic.repository.ScenicRepository;
|
||||
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static com.ycwl.basic.constant.JwtRoleConstant.MERCHANT;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/12/3 15:20
|
||||
@@ -34,11 +42,15 @@ public class ScenicController {
|
||||
|
||||
@Autowired
|
||||
private ScenicService scenicService;
|
||||
@Autowired
|
||||
private AppScenicService appScenicService;
|
||||
|
||||
@Autowired
|
||||
private ScenicRepository scenicRepository;
|
||||
@Autowired
|
||||
private AppStatisticsService appStatisticsService;
|
||||
@Autowired
|
||||
private ScenicAccountService accountService;
|
||||
|
||||
@ApiOperation("分页查询景区")
|
||||
@PostMapping("/page")
|
||||
@@ -155,4 +167,22 @@ public class ScenicController {
|
||||
query.setScenicId(scenicId);
|
||||
return appStatisticsService.orderChart(query);
|
||||
}
|
||||
|
||||
@GetMapping("/myScenicList")
|
||||
public ApiResponse<List<ScenicRespVO>> myScenicList() {
|
||||
List<ScenicRespVO> list = Collections.emptyList();
|
||||
if (StringUtils.equals(BaseContextHandler.getRoleId(), MERCHANT.type)) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicAccountEntity account = accountService.getScenicAccountById(Long.valueOf(userId));
|
||||
if (account == null || account.getScenicId().isEmpty()) {
|
||||
return ApiResponse.fail("景区账号未绑定景区");
|
||||
}
|
||||
list = account.getScenicId().stream().map(id -> {
|
||||
return appScenicService.getDetails(id).getData();
|
||||
}).toList();
|
||||
} else {
|
||||
list = scenicService.list(new ScenicReqQuery()).getData();
|
||||
}
|
||||
return ApiResponse.success(list);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user