diff --git a/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java b/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java index 61f0b265..8cb7d9d4 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java +++ b/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java @@ -2,6 +2,7 @@ package com.ebike.feign.clients; import com.cdzy.common.model.EbikeTracking; import com.cdzy.common.model.JsonResult; +import com.ebike.feign.model.res.ReqUserOperateDto; import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetDto; import com.ebike.feign.model.rsp.FeignEbikeRegionDto; import org.springframework.cloud.openfeign.FeignClient; @@ -83,4 +84,22 @@ public interface OperateFeignClient { */ @GetMapping("ebikesysrcostset/getRegionFeeConfigById") JsonResult getRegionFeeConfigById(@RequestParam(name = "operationRegionId") Long operationRegionId); + + /** + * 设置用户所属运营区 + * + * @param reqUserOperateDto + * @return + */ + @PostMapping("ebikeRegion/setUserOperate") + JsonResult setUserOperate(@RequestBody ReqUserOperateDto reqUserOperateDto); + + /** + * 删除用户所属运营区 + * + * @param staffId + * @return + */ + @PostMapping("ebikeRegion/delUserOperate") + JsonResult delUserOperate(@RequestParam("staffId") Long staffId); } diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqUserOperateDto.java b/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqUserOperateDto.java new file mode 100644 index 00000000..d37c8a71 --- /dev/null +++ b/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqUserOperateDto.java @@ -0,0 +1,24 @@ +package com.ebike.feign.model.res; + +import com.alibaba.fastjson2.JSONArray; +import lombok.Data; + +import java.util.List; + +/** + * @author:Ding + * @ClassName:ReqUserOperateDto + * @Package:com.cdzy.ebikeoperate.model.dto.request.ReqUserOperateDto + * @Description: + * @CreateDate:2025年05月14日 + * @Version: + **/ +@Data +public class ReqUserOperateDto { + + private Long staffId; + + private List zoneId; + + private Long orgId; +} diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java index 170e03f8..22c9f008 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeRegionController.java @@ -9,10 +9,8 @@ import com.cdzy.ebikeoperate.enums.RegionLevelType; import com.cdzy.ebikeoperate.mapper.EbikeRegionLevelMapper; import com.cdzy.ebikeoperate.mapper.EbikeRegionoperationMapper; import com.cdzy.ebikeoperate.mapper.EbikeSiteTypeMapper; -import com.cdzy.ebikeoperate.model.dto.request.ReqAuthorizeOperationDto; -import com.cdzy.ebikeoperate.model.dto.request.ReqBatchRegionDto; -import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeOperationRegionDto; -import com.cdzy.ebikeoperate.model.dto.request.ReqSiteRegionDto; +import com.cdzy.ebikeoperate.mapper.EbikeStaffRegionMapper; +import com.cdzy.ebikeoperate.model.dto.request.*; import com.cdzy.ebikeoperate.model.dto.response.*; import com.cdzy.ebikeoperate.model.pojo.*; import com.cdzy.ebikeoperate.service.EbikeAdministrationZoneService; @@ -31,12 +29,14 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeAdministrationZoneTableDef.EBIKE_ADMINISTRATION_ZONE; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeRegionLevelTableDef.EBIKE_REGION_LEVEL; +import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION; /** * 区域控制层。 @@ -70,6 +70,8 @@ public class EbikeRegionController { @Resource private EbikeRegionLevelMapper levelMapper; + @Resource + private EbikeStaffRegionMapper staffRegionMapper; /** * 添加运营区。 @@ -394,4 +396,54 @@ public class EbikeRegionController { Long imageId = siteRegionService.saveImages(multipartFile); return JsonResult.success(imageId); } + + /** + * 设置用户所属运营区 + * + * @param reqUserOperateDto + * @return + */ + @PostMapping("setUserOperate") + public JsonResult setUserOperate(@RequestBody ReqUserOperateDto reqUserOperateDto) { + + try { + QueryWrapper queryWrapper = QueryWrapper.create() + .in(EBIKE_OPERATION_REGION.ZONE_ID.getName(), reqUserOperateDto.getZoneId()) + .and(EBIKE_OPERATION_REGION.ORG_ID.eq(reqUserOperateDto.getOrgId())); + List list = operationRegionService.list(queryWrapper); + queryWrapper.clear(); + queryWrapper.eq(EBIKE_STAFF_REGION.STAFF_ID.getName(), reqUserOperateDto.getStaffId()); + staffRegionMapper.deleteByQuery(queryWrapper); + List staffRegions = new ArrayList<>(); + for (EbikeOperationRegion ebikeOperationRegion : list) { + EbikeStaffRegion region = new EbikeStaffRegion(); + region.setRegionId(ebikeOperationRegion.getOperationRegionId()); + region.setStaffId(reqUserOperateDto.getStaffId()); + staffRegions.add(region); + } + staffRegionMapper.insertBatch(staffRegions); + return JsonResult.success(""); + } catch (Exception e) { + return JsonResult.failed(""); + } + } + + /** + * 删除用户所属运营区 + * + * @param staffId + * @return + */ + @PostMapping("delUserOperate") + public JsonResult delUserOperate(@RequestParam("staffId") Long staffId) { + + try { + QueryWrapper queryWrapper = QueryWrapper.create() + .eq(EBIKE_STAFF_REGION.STAFF_ID.getName(), staffId); + staffRegionMapper.deleteByQuery(queryWrapper); + return JsonResult.success(""); + } catch (Exception e) { + return JsonResult.failed(""); + } + } } diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqUserOperateDto.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqUserOperateDto.java new file mode 100644 index 00000000..f4c7083c --- /dev/null +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqUserOperateDto.java @@ -0,0 +1,24 @@ +package com.cdzy.ebikeoperate.model.dto.request; + +import com.alibaba.fastjson2.JSONArray; +import lombok.Data; + +import java.util.List; + +/** + * @author:Ding + * @ClassName:ReqUserOperateDto + * @Package:com.cdzy.ebikeoperate.model.dto.request.ReqUserOperateDto + * @Description: + * @CreateDate:2025年05月14日 + * @Version: + **/ +@Data +public class ReqUserOperateDto { + + private Long staffId; + + private List zoneId; + + private Long orgId; +} diff --git a/ebike-user/pom.xml b/ebike-user/pom.xml index fc6784cf..531970dc 100644 --- a/ebike-user/pom.xml +++ b/ebike-user/pom.xml @@ -24,6 +24,12 @@ 0.0.1-SNAPSHOT + + com.cdzy + ebike-feign + 0.0.1-SNAPSHOT + + com.mybatis-flex mybatis-flex-spring-boot3-starter @@ -129,6 +135,11 @@ fastjson2 2.0.50 + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + diff --git a/ebike-user/src/main/java/com/cdzy/user/EbikeUserApplication.java b/ebike-user/src/main/java/com/cdzy/user/EbikeUserApplication.java index c0992fb9..d5c10e29 100644 --- a/ebike-user/src/main/java/com/cdzy/user/EbikeUserApplication.java +++ b/ebike-user/src/main/java/com/cdzy/user/EbikeUserApplication.java @@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; -@EnableFeignClients +@EnableFeignClients(basePackages = "com.ebike.feign") @EnableDiscoveryClient @SpringBootApplication @MapperScan("com.cdzy.user.mapper") diff --git a/ebike-user/src/main/java/com/cdzy/user/controller/StaffController.java b/ebike-user/src/main/java/com/cdzy/user/controller/StaffController.java index f502f7ce..87ad5468 100644 --- a/ebike-user/src/main/java/com/cdzy/user/controller/StaffController.java +++ b/ebike-user/src/main/java/com/cdzy/user/controller/StaffController.java @@ -17,7 +17,8 @@ import com.cdzy.user.model.vo.StaffIds; import com.cdzy.user.service.StaffRolesService; import com.cdzy.user.service.StaffService; import com.cdzy.user.service.StaffZoneService; -import com.cdzy.user.utils.AESUtils; +import com.ebike.feign.clients.OperateFeignClient; +import com.ebike.feign.model.res.ReqUserOperateDto; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryColumn; import com.mybatisflex.core.query.QueryMethods; @@ -30,7 +31,7 @@ import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -55,6 +56,8 @@ public class StaffController { private StaffZoneService staffZoneService; @Autowired private StaffRolesService staffRolesService; + @Autowired + private OperateFeignClient operateFeignClient; /** * 添加。 @@ -231,17 +234,24 @@ public class StaffController { staffRolesService.saveBatch(roleList); } JSONArray zoneId = staffDto.getZoneId(); + List zoneIds = new ArrayList<>(); List zoneList = IntStream.range(0, zoneId.size()).mapToObj(i -> { StaffZone staffRoles = new StaffZone(); JSONObject jsonObject = zoneId.getJSONObject(i); staffRoles.setZoneId(jsonObject.getLong("zoneId")); staffRoles.setZoneName(jsonObject.getString("zoneName")); staffRoles.setStaffId(staff.getStaffId()); + zoneIds.add(jsonObject.getLong("zoneId")); return staffRoles; }).collect(Collectors.toList()); if (!zoneList.isEmpty()) { staffZoneService.saveBatch(zoneList); } + ReqUserOperateDto reqUserOperateDto = new ReqUserOperateDto(); + reqUserOperateDto.setStaffId(staff.getStaffId()); + reqUserOperateDto.setZoneId(zoneIds); + reqUserOperateDto.setOrgId(staff.getOrgId()); + operateFeignClient.setUserOperate(reqUserOperateDto); return JsonResult.success("保存成功!"); } catch (Exception e) { e.printStackTrace(); @@ -279,17 +289,24 @@ public class StaffController { staffRolesService.saveBatch(roleList); } JSONArray zoneId = staffDto.getZoneId(); + List zoneIds = new ArrayList<>(); List zoneList = IntStream.range(0, zoneId.size()).mapToObj(i -> { StaffZone staffRoles = new StaffZone(); JSONObject jsonObject = zoneId.getJSONObject(i); staffRoles.setZoneId(jsonObject.getLong("zoneId")); staffRoles.setZoneName(jsonObject.getString("zoneName")); staffRoles.setStaffId(staff.getStaffId()); + zoneIds.add(jsonObject.getLong("zoneId")); return staffRoles; }).collect(Collectors.toList()); if (!zoneList.isEmpty()) { staffZoneService.saveBatch(zoneList); } + ReqUserOperateDto reqUserOperateDto = new ReqUserOperateDto(); + reqUserOperateDto.setStaffId(staff.getStaffId()); + reqUserOperateDto.setZoneId(zoneIds); + reqUserOperateDto.setOrgId(staff.getOrgId()); + operateFeignClient.setUserOperate(reqUserOperateDto); return JsonResult.success("保存成功!"); } catch (Exception e) { e.printStackTrace(); @@ -315,6 +332,7 @@ public class StaffController { queryWrapper.eq(STAFF_ZONE.STAFF_ID.getName(), staffId); staffZoneService.remove(queryWrapper); staffService.removeById(staffId); + operateFeignClient.delUserOperate(staffId); return JsonResult.success("删除成功!"); } catch (Exception e) { e.printStackTrace();