Merge remote-tracking branch 'origin/main'

This commit is contained in:
attiya 2025-05-14 09:49:52 +08:00
commit 0f4902da84
14 changed files with 475 additions and 53 deletions

View File

@ -1,10 +1,16 @@
package com.cdzy.ebikeoperate.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.StaffDto;
import com.cdzy.ebikeoperate.model.dto.response.EbikeOrgZoneDto;
import com.cdzy.ebikeoperate.model.pojo.EbikeOrgZone;
import com.cdzy.ebikeoperate.service.EbikeOrgZoneService;
import com.ebike.feign.clients.StaffFeignClient;
import com.ebike.feign.model.rsp.StaffFeign;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -22,6 +28,8 @@ public class EbikeOrgZoneController {
@Autowired
private EbikeOrgZoneService ebikeOrgZoneService;
@Resource
private StaffFeignClient staffFeignClient;
/**
* 添加行政区划授权信息
@ -32,7 +40,7 @@ public class EbikeOrgZoneController {
@PostMapping("save")
public JsonResult<?> save(@RequestBody EbikeOrgZone ebikeOrgZone) {
boolean r = ebikeOrgZoneService.save(ebikeOrgZone);
return r? JsonResult.success() : JsonResult.failed("添加行政区划授权信息失败");
return r ? JsonResult.success() : JsonResult.failed("添加行政区划授权信息失败");
}
/**
@ -44,7 +52,7 @@ public class EbikeOrgZoneController {
@PostMapping("remove")
public JsonResult<?> remove(@RequestParam(name = "id") String id) {
boolean r = ebikeOrgZoneService.removeById(id);
return r? JsonResult.success() : JsonResult.failed("删除行政区划授权信息失败");
return r ? JsonResult.success() : JsonResult.failed("删除行政区划授权信息失败");
}
/**
@ -56,13 +64,13 @@ public class EbikeOrgZoneController {
@PostMapping("update")
public JsonResult<?> update(@RequestBody EbikeOrgZone ebikeOrgZone) {
boolean r = ebikeOrgZoneService.updateById(ebikeOrgZone);
return r? JsonResult.success() : JsonResult.failed("更新行政区划授权信息失败");
return r ? JsonResult.success() : JsonResult.failed("更新行政区划授权信息失败");
}
/**
* 查询所有行政区划授权信息
*
* @param orgId 组织id
* @param orgId 组织id
* @param zoneId 区域id
* @return 所有数据
*/
@ -71,7 +79,7 @@ public class EbikeOrgZoneController {
, @RequestParam(name = "zoneId", required = false) String zoneId) {
List<EbikeOrgZoneDto> list = ebikeOrgZoneService.list(orgId, zoneId);
return list==null? JsonResult.failed("查询行政区划授权信息失败") : JsonResult.success(list);
return list == null ? JsonResult.failed("查询行政区划授权信息失败") : JsonResult.success(list);
}
/**
@ -83,8 +91,22 @@ public class EbikeOrgZoneController {
@GetMapping("getInfo")
public JsonResult<?> getInfo(@RequestParam(name = "id") String id) {
EbikeOrgZone r = ebikeOrgZoneService.getById(id);
return r==null? JsonResult.failed("查询行政区划授权信息失败") : JsonResult.success(r);
return r == null ? JsonResult.failed("查询行政区划授权信息失败") : JsonResult.success(r);
}
/**
* 查询所有行政区划授权信息
*
* @return 所有数据
*/
@GetMapping("listZoneByLogin")
public JsonResult<?> listZoneByLogin() {
String token = StpUtil.getTokenValue();
JsonResult<StaffFeign> jsonResult = staffFeignClient.getInfoByToken(token);
List<EbikeOrgZoneDto> list = ebikeOrgZoneService.list(String.valueOf(jsonResult.getData().getOrgId()), null);
return list == null ? JsonResult.failed("查询行政区划授权信息失败") : JsonResult.success(list);
}
}

View File

@ -86,14 +86,17 @@ public class EbikeTrackingServiceImpl implements EbikeTrackingService {
fluxQuery.add(" |> pivot(rowKey: [\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")");
QueryApi queryApi = influxDBClient.getQueryApi();
List<EbikeTracking> points = queryApi.query(fluxQuery.toString(), EbikeTracking.class);
return points.stream().filter(point -> !CoordinateUtil.outOfChina(point.getLongitude(), point.getLatitude())).map(point -> {
return points.stream().map(point -> {
EbikeTrackingDto ebikeTrackingDto = new EbikeTrackingDto();
BeanUtils.copyProperties(point, ebikeTrackingDto);
Instant _time = point.get_time();
ebikeTrackingDto.setTime(ConvertUtil.instantToDatetime(_time));
double[] gcj02 = CoordinateUtil.WGS84ToGCJ02(point.getLongitude(), point.getLatitude());
ebikeTrackingDto.setLngGCJ02(gcj02[0]);
ebikeTrackingDto.setLatGCJ02(gcj02[1]);
// GPS入库的时候已经转为GCJ02坐标系
ebikeTrackingDto.setLngGCJ02(point.getLongitude());
ebikeTrackingDto.setLatGCJ02(point.getLatitude());
//double[] gcj02 = CoordinateUtil.WGS84ToGCJ02(point.getLongitude(), point.getLatitude());
//ebikeTrackingDto.setLngGCJ02(gcj02[0]);
//ebikeTrackingDto.setLatGCJ02(gcj02[1]);
return ebikeTrackingDto;
}).toList();
}else{

View File

@ -30,6 +30,12 @@
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${boot.version}</version>
</dependency>
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-spring-boot3-starter</artifactId>

View File

@ -124,6 +124,11 @@
<version>1.10.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.50</version>
</dependency>
</dependencies>
<profiles>
<!--开发环境-->

View File

@ -56,6 +56,9 @@ public class AuthController {
if (staff == null) {
return JsonResult.failed(Message.USERNAME_WRONG);
}
if ("0".equals(staff.getState())) {
return JsonResult.failed("该账号已禁用!");
}
String password = staff.getPassword();
String encrypt = AESUtils.encrypt(loginVo.getPassword());
if (password.equals(encrypt)) {
@ -70,7 +73,7 @@ public class AuthController {
BeanUtils.copyProperties(staff, staffDto);
StpUtil.login(staff.getStaffId());
String tokenValue = StpUtil.getTokenValue();
LoginDto loginDto = new LoginDto(staffDto,list,tokenValue);
LoginDto loginDto = new LoginDto(staffDto, list, tokenValue);
StpUtil.getSession().set(String.valueOf(staff.getStaffId()), staffDto);
return JsonResult.success(Message.LOGIN, loginDto);
}

View File

@ -150,39 +150,52 @@ public class RolesController {
@PostMapping("pageQueryRoles")
public JsonResult<?> pageQueryRoles(@RequestBody @Validated RoleListQueryDto roleListQueryDto) {
String tokenValue = StpUtil.getTokenValue();
Object loginId = StpUtil.getLoginIdByToken(tokenValue);
QueryWrapper queryStaff = QueryWrapper.create().where(STAFF.STAFF_ID.eq(loginId));
StaffDto staff = staffService.getOneAs(queryStaff, StaffDto.class);
try {
String tokenValue = StpUtil.getTokenValue();
Object loginId = StpUtil.getLoginIdByToken(tokenValue);
QueryWrapper queryStaff = QueryWrapper.create().where(STAFF.STAFF_ID.eq(loginId));
StaffDto staff = staffService.getOneAs(queryStaff, StaffDto.class);
QueryWrapper queryWrapper = QueryWrapper.create()
.from(ROLES).select(STAFF.STAFF_ID, ROLES.ALL_COLUMNS, ORGANIZATIONS.ORG_NAME)
.leftJoin(STAFF_ROLES).on(ROLES.ROLE_ID.eq(STAFF_ROLES.ROLE_ID))
.leftJoin(STAFF).on(STAFF.STAFF_ID.eq(STAFF_ROLES.STAFF_ID))
.leftJoin(ORGANIZATIONS).on(STAFF.ORG_ID.eq(ORGANIZATIONS.ORG_ID))
.where(ROLES.ORG_ID.eq(staff.getOrgId())).and(ROLES.ROLE_NAME.eq(roleListQueryDto.getRoleName(),
StringUtils.hasText(roleListQueryDto.getRoleName())));
QueryWrapper queryWrapper = QueryWrapper.create()
.from(ROLES).select(STAFF.STAFF_ID, ROLES.ALL_COLUMNS, ORGANIZATIONS.ORG_NAME)
.leftJoin(STAFF_ROLES).on(ROLES.ROLE_ID.eq(STAFF_ROLES.ROLE_ID))
.leftJoin(STAFF).on(STAFF.STAFF_ID.eq(STAFF_ROLES.STAFF_ID))
.leftJoin(ORGANIZATIONS).on(STAFF.ORG_ID.eq(ORGANIZATIONS.ORG_ID))
.where(ROLES.ORG_ID.eq(staff.getOrgId())).and(ROLES.ROLE_NAME.eq(roleListQueryDto.getRoleName(),
StringUtils.hasText(roleListQueryDto.getRoleName())));
QueryWrapper countQuery = QueryWrapper.create()
.select(QueryMethods.count(STAFF.STAFF_ID.getName()).as("staff_count"))
.select(ROLES.ROLE_NAME.getName(), ROLES.ROLE_ID.getName(),
ROLES.ROLE_DESCRIPTION.getName(), ROLES.ROLE_CODE.getName(),
ORGANIZATIONS.ORG_NAME.getName(), ORGANIZATIONS.ORG_ID.getName())
.groupBy(ORGANIZATIONS.ORG_NAME, ROLES.ROLE_NAME)
.from(queryWrapper).as("a");
QueryWrapper countQuery = QueryWrapper.create()
.select(QueryMethods.count(STAFF.STAFF_ID.getName()).as("staff_count"))
.select(ROLES.ROLE_NAME.getName(), ROLES.ROLE_ID.getName(),
ROLES.ROLE_DESCRIPTION.getName(), ROLES.ROLE_CODE.getName(),
ORGANIZATIONS.ORG_NAME.getName(), ORGANIZATIONS.ORG_ID.getName())
.groupBy(ORGANIZATIONS.ORG_NAME, ROLES.ROLE_NAME)
.from(queryWrapper).as("a");
Page<ResRolesDto> page = Page.of(roleListQueryDto.getPageNum(), roleListQueryDto.getPageSize());
Page<ResRolesDto> resRolesDtoPage = rolesService.pageAs(page, countQuery, ResRolesDto.class);
List<ResRolesDto> records = resRolesDtoPage.getRecords();
//统计pc权限数量和小程序权限数量
for (ResRolesDto record : records) {
QueryWrapper caseQuery = QueryWrapper.create().select(QueryMethods.sum(QueryMethods.case_().when(PERMISSIONS.PERM_TYPE.eq(1)).then(1).else_(0).end()).as("web_count"), QueryMethods.sum(QueryMethods.case_().when(PERMISSIONS.PERM_TYPE.eq(2)).then(1).else_(0).end()).as("applet_count")).innerJoin(ROLE_PERMISSIONS).on(PERMISSIONS.PERM_ID.eq(ROLE_PERMISSIONS.PERM_ID)).where(ROLE_PERMISSIONS.ROLE_ID.eq(record.getRoleId())).where(PERMISSIONS.PERM_TYPE.ne("0"));
ResRolesDto oneAs = permissionsService.getOneAs(caseQuery, ResRolesDto.class);
if (oneAs == null) continue;
record.setWebCount(oneAs.getWebCount());
record.setAppletCount(oneAs.getAppletCount());
Page<ResRolesDto> page = Page.of(roleListQueryDto.getPageNum(), roleListQueryDto.getPageSize());
Page<ResRolesDto> resRolesDtoPage = rolesService.pageAs(page, countQuery, ResRolesDto.class);
List<ResRolesDto> records = resRolesDtoPage.getRecords();
//统计pc权限数量和小程序权限数量
for (ResRolesDto record : records) {
QueryWrapper caseQuery = QueryWrapper.create()
.select(QueryMethods.sum(QueryMethods.case_()
.when(PERMISSIONS.PERM_TYPE.eq(1)).then(1)
.else_(0).end()).as("web_count"),
QueryMethods.sum(QueryMethods.case_().when(PERMISSIONS.PERM_TYPE
.eq(2)).then(1).else_(0)
.end()).as("applet_count"))
.innerJoin(ROLE_PERMISSIONS).on(PERMISSIONS.PERM_ID.eq(ROLE_PERMISSIONS.PERM_ID))
.where(ROLE_PERMISSIONS.ROLE_ID.eq(record.getRoleId()))
.and(PERMISSIONS.PERM_TYPE.ne("0"));
ResRolesDto oneAs = permissionsService.getOneAs(caseQuery, ResRolesDto.class);
if (oneAs == null) continue;
record.setWebCount(oneAs.getWebCount());
record.setAppletCount(oneAs.getAppletCount());
}
return JsonResult.success(resRolesDtoPage);
} catch (Exception e) {
return JsonResult.failed("出错了!");
}
return JsonResult.success(resRolesDtoPage);
}
@ -260,7 +273,7 @@ public class RolesController {
}
/**
* 角色信息更新
* 角色信息删除
*
* @param roleId
* @return
@ -280,4 +293,24 @@ public class RolesController {
return JsonResult.failed("删除失败!");
}
}
/**
* 获取当前登陆用户所属组织下的所有角色信息
*
* @return 分页对象
*/
@GetMapping("listByOrgId")
public JsonResult<?> listByOrgId() {
String tokenValue = StpUtil.getTokenValue();
Object loginId = StpUtil.getLoginIdByToken(tokenValue);
QueryWrapper queryStaff = QueryWrapper.create().where(STAFF.STAFF_ID.eq(loginId));
StaffDto staff = staffService.getOneAs(queryStaff, StaffDto.class);
QueryWrapper queryWrapper = QueryWrapper.create()
.select(ROLES.ROLE_ID, ROLES.ROLE_NAME)
.where(ROLES.ORG_ID.eq(staff.getOrgId()));
List<ResRolesDto> list = rolesService.listAs(queryWrapper, ResRolesDto.class);
return JsonResult.success(list);
}
}

View File

@ -1,24 +1,43 @@
package com.cdzy.user.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.cdzy.common.enums.Message;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.common.model.StaffDto;
import com.cdzy.user.model.dto.AccountListQueryDto;
import com.cdzy.user.model.dto.RoleListQueryDto;
import com.cdzy.user.model.dto.ReqStaffDto;
import com.cdzy.user.model.dto.ResStaffDto;
import com.cdzy.user.model.entity.Staff;
import com.cdzy.user.model.entity.StaffRoles;
import com.cdzy.user.model.entity.StaffZone;
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.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.query.QueryMethods;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static com.cdzy.user.model.entity.table.RolesTableDef.ROLES;
import static com.cdzy.user.model.entity.table.StaffRolesTableDef.STAFF_ROLES;
import static com.cdzy.user.model.entity.table.StaffTableDef.STAFF;
import static com.cdzy.user.model.entity.table.StaffZoneTableDef.STAFF_ZONE;
/**
* 员工控制层
@ -32,6 +51,10 @@ public class StaffController {
@Resource
private StaffService staffService;
@Autowired
private StaffZoneService staffZoneService;
@Autowired
private StaffRolesService staffRolesService;
/**
* 添加
@ -41,8 +64,7 @@ public class StaffController {
*/
@PostMapping("save")
public JsonResult<?> save(@RequestBody Staff staff) {
QueryWrapper queryWrapper = QueryWrapper.create()
.where(STAFF.PHONE.eq(staff.getPhone()));
QueryWrapper queryWrapper = QueryWrapper.create().where(STAFF.PHONE.eq(staff.getPhone()));
Staff one = staffService.getOne(queryWrapper);
if (one != null) {
return JsonResult.success(Message.REPEAT_PHONE);
@ -119,8 +141,7 @@ public class StaffController {
@GetMapping("getInfoByToken")
public JsonResult<?> getInfo(@RequestParam("token") String token) {
Object loginId = StpUtil.getLoginIdByToken(token);
QueryWrapper queryWrapper = QueryWrapper.create()
.where(STAFF.STAFF_ID.eq(loginId));
QueryWrapper queryWrapper = QueryWrapper.create().where(STAFF.STAFF_ID.eq(loginId));
StaffDto staff = staffService.getOneAs(queryWrapper, StaffDto.class);
return JsonResult.success(staff);
}
@ -133,8 +154,7 @@ public class StaffController {
*/
@PostMapping("getStaffsByIds")
public JsonResult<?> getStaffsByIds(@RequestBody @Validated StaffIds staffIds) {
QueryWrapper queryWrapper = QueryWrapper.create()
.where(STAFF.STAFF_ID.in(staffIds.getStaffIds()));
QueryWrapper queryWrapper = QueryWrapper.create().where(STAFF.STAFF_ID.in(staffIds.getStaffIds()));
List<StaffDto> staffDtos = staffService.listAs(queryWrapper, StaffDto.class);
return JsonResult.success(staffDtos);
}
@ -149,9 +169,7 @@ public class StaffController {
public JsonResult<?> getStaffsByIds(@Validated PageParam pageParam, @RequestParam("token") String token) {
String id = (String) StpUtil.getLoginIdByToken(token);
StaffDto staffDto = (StaffDto) StpUtil.getSessionByLoginId(id).get(id);
QueryWrapper queryWrapper = QueryWrapper.create()
.where(STAFF.ORG_ID.eq(staffDto.getOrgId()))
.where(STAFF.STAFF_ID.ne(staffDto.getStaffId()));
QueryWrapper queryWrapper = QueryWrapper.create().where(STAFF.ORG_ID.eq(staffDto.getOrgId())).where(STAFF.STAFF_ID.ne(staffDto.getStaffId()));
Page<StaffDto> staffDtos = staffService.pageAs(pageParam.getPage(), queryWrapper, StaffDto.class);
return JsonResult.success(staffDtos);
}
@ -165,6 +183,163 @@ public class StaffController {
@PostMapping("pageQueryStaffs")
public JsonResult<?> pageQueryStaffs(@RequestBody @Validated AccountListQueryDto accountListQueryDto) {
return JsonResult.success("");
try {
String tokenValue = StpUtil.getTokenValue();
Object loginId = StpUtil.getLoginIdByToken(tokenValue);
QueryWrapper queryStaff = QueryWrapper.create().where(STAFF.STAFF_ID.eq(loginId));
StaffDto staff = staffService.getOneAs(queryStaff, StaffDto.class);
QueryWrapper queryZone = QueryWrapper.create().select(QueryMethods.groupConcat(STAFF_ZONE.ZONE_NAME).as("zone_name"), QueryMethods.groupConcat(STAFF_ZONE.ZONE_ID).as("zone_id"), STAFF_ZONE.STAFF_ID).from(STAFF_ZONE).groupBy(STAFF_ZONE.STAFF_ID);
QueryWrapper queryWrapper = QueryWrapper.create().select(STAFF.STAFF_ID, STAFF.ORG_ID, STAFF.USERNAME, STAFF.PHONE, STAFF.STATE, QueryMethods.groupConcat(ROLES.ROLE_NAME).as("role_name"), QueryMethods.groupConcat(ROLES.ROLE_ID).as("role_id"), STAFF.CREATED_AT).select(STAFF_ZONE.ZONE_NAME.getName(), STAFF_ZONE.ZONE_ID.getName()).leftJoin(STAFF_ROLES).on(STAFF.STAFF_ID.eq(STAFF_ROLES.STAFF_ID)).leftJoin(ROLES).on(STAFF_ROLES.ROLE_ID.eq(ROLES.ROLE_ID)).leftJoin(queryZone).as("STAFF_ZONE").on(STAFF.STAFF_ID.eq(new QueryColumn("STAFF_ZONE", "staff_id"))).where(STAFF.ORG_ID.eq(staff.getOrgId())).and(STAFF.USERNAME.eq(accountListQueryDto.getAccountName(), StringUtils.hasText(accountListQueryDto.getAccountName()))).and(STAFF.PHONE.eq(accountListQueryDto.getAccount(), StringUtils.hasText(accountListQueryDto.getAccount()))).groupBy(STAFF.STAFF_ID).orderBy(STAFF.CREATED_AT.desc());
Page<ResStaffDto> page = Page.of(accountListQueryDto.getPageNum(), accountListQueryDto.getPageSize());
Page<ResStaffDto> resRolesDtoPage = staffService.pageAs(page, queryWrapper, ResStaffDto.class);
return JsonResult.success(resRolesDtoPage);
} catch (Exception e) {
return JsonResult.failed("出错了!");
}
}
/**
* 账号信息新增
*
* @param staffDto
* @return
*/
@Transactional
@PostMapping("staffInfoAdd")
public JsonResult<?> staffInfoAdd(@RequestBody ReqStaffDto staffDto) {
try {
Staff staff = new Staff();
BeanUtils.copyProperties(staffDto, staff);
String tokenValue = StpUtil.getTokenValue();
Object loginId = StpUtil.getLoginIdByToken(tokenValue);
QueryWrapper queryStaff = QueryWrapper.create().where(STAFF.STAFF_ID.eq(loginId));
StaffDto staffLogin = staffService.getOneAs(queryStaff, StaffDto.class);
staff.setOrgId(staffLogin.getOrgId());
staff.setPassword("123456");
staffService.save(staff);
JSONArray roleId = staffDto.getRoleId();
List<StaffRoles> roleList = IntStream.range(0, roleId.size()).mapToObj(i -> {
StaffRoles staffRoles = new StaffRoles();
staffRoles.setRoleId(Long.parseLong(roleId.get(i).toString()));
staffRoles.setStaffId(staff.getStaffId());
return staffRoles;
}).collect(Collectors.toList());
if (!roleList.isEmpty()) {
staffRolesService.saveBatch(roleList);
}
JSONArray zoneId = staffDto.getZoneId();
List<StaffZone> 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());
return staffRoles;
}).collect(Collectors.toList());
if (!zoneList.isEmpty()) {
staffZoneService.saveBatch(zoneList);
}
return JsonResult.success("保存成功!");
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failed("保存失败!");
}
}
/**
* 账号信息更新
*
* @param staffDto
* @return
*/
@Transactional
@PostMapping("staffInfoUpdate")
public JsonResult<?> staffInfoUpdate(@RequestBody ReqStaffDto staffDto) {
try {
Staff staff = new Staff();
BeanUtils.copyProperties(staffDto, staff);
staffService.updateById(staff);
QueryWrapper queryWrapper = QueryWrapper.create().eq(STAFF_ROLES.STAFF_ID.getName(), staff.getStaffId());
staffRolesService.remove(queryWrapper);
queryWrapper.clear();
queryWrapper.eq(STAFF_ZONE.STAFF_ID.getName(), staff.getStaffId());
staffZoneService.remove(queryWrapper);
JSONArray roleId = staffDto.getRoleId();
List<StaffRoles> roleList = IntStream.range(0, roleId.size()).mapToObj(i -> {
StaffRoles staffRoles = new StaffRoles();
staffRoles.setRoleId(Long.parseLong(roleId.get(i).toString()));
staffRoles.setStaffId(staff.getStaffId());
return staffRoles;
}).collect(Collectors.toList());
if (!roleList.isEmpty()) {
staffRolesService.saveBatch(roleList);
}
JSONArray zoneId = staffDto.getZoneId();
List<StaffZone> 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());
return staffRoles;
}).collect(Collectors.toList());
if (!zoneList.isEmpty()) {
staffZoneService.saveBatch(zoneList);
}
return JsonResult.success("保存成功!");
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failed("保存失败!");
}
}
/**
* 账号信息删除
*
* @param staffId
* @return
*/
@Transactional
@GetMapping("staffInfoDel/{staffId}")
public JsonResult<?> staffInfoDel(@PathVariable("staffId") Long staffId) {
try {
QueryWrapper queryWrapper = QueryWrapper.create()
.eq(STAFF_ROLES.STAFF_ID.getName(), staffId);
staffRolesService.remove(queryWrapper);
queryWrapper.clear();
queryWrapper.eq(STAFF_ZONE.STAFF_ID.getName(), staffId);
staffZoneService.remove(queryWrapper);
staffService.removeById(staffId);
return JsonResult.success("删除成功!");
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failed("删除失败!");
}
}
/**
* 账号信息禁用
*
* @param staffId
* @return
*/
@Transactional
@GetMapping("staffInfoDisable/{staffId}")
public JsonResult<?> staffInfoDisable(@PathVariable("staffId") Long staffId) {
try {
Staff staff = staffService.getById(staffId);
staff.setState("0");
staffService.updateById(staff);
return JsonResult.success("禁用成功!");
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failed("禁用失败!");
}
}
}

View File

@ -0,0 +1,14 @@
package com.cdzy.user.mapper;
import com.cdzy.user.model.entity.StaffZone;
import com.mybatisflex.core.BaseMapper;
/**
* 映射层
*
* @author attiya
* @since 2025-03-14
*/
public interface StaffZoneMapper extends BaseMapper<StaffZone> {
}

View File

@ -0,0 +1,30 @@
package com.cdzy.user.model.dto;
import com.alibaba.fastjson2.JSONArray;
import lombok.Data;
import java.io.Serializable;
/**
* 实体类
*
* @author attiya
* @since 2025-03-14
*/
@Data
public class ReqStaffDto implements Serializable {
private Long staffId;
private String username;
private String phone;
private Long orgId;
private String state;
private JSONArray zoneId;
private JSONArray roleId;
}

View File

@ -0,0 +1,44 @@
package com.cdzy.user.model.dto;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 实体类
*
* @author attiya
* @since 2025-03-14
*/
@Data
public class ResStaffDto implements Serializable {
private Long staffId;
private String zoneId;
private String zoneName;
private String username;
private String phone;
private Long orgId;
private LocalDateTime createdAt;
private String state;
private String roleName;
private String roleId;
}

View File

@ -13,7 +13,7 @@ import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 实体类
* 实体类
*
* @author attiya
* @since 2025-03-14
@ -39,9 +39,13 @@ public class Staff implements Serializable {
private Long orgId;
@Column(onInsertValue = "0")
private Boolean isSuperadmin;
@Column(onInsertValue = "now()")
private LocalDateTime createdAt;
@Column(onInsertValue = "1")
private String state;
}

View File

@ -0,0 +1,49 @@
package com.cdzy.user.model.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
/**
* 实体类
*
* @author attiya
* @since 2025-04-01
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("ebike_staff_zone")
public class StaffZone implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 绑定id
*/
@Id
private Long bindId;
/**
* 行政区划id
*/
private Long zoneId;
/**
* 员工id
*/
private Long staffId;
/**
* 行政区划名称
*/
private String zoneName;
}

View File

@ -0,0 +1,15 @@
package com.cdzy.user.service;
import com.cdzy.user.model.entity.Staff;
import com.cdzy.user.model.entity.StaffZone;
import com.mybatisflex.core.service.IService;
/**
* 服务层
*
* @author attiya
* @since 2025-03-14
*/
public interface StaffZoneService extends IService<StaffZone> {
}

View File

@ -0,0 +1,19 @@
package com.cdzy.user.service.impl;
import com.cdzy.user.mapper.StaffZoneMapper;
import com.cdzy.user.model.entity.StaffZone;
import com.cdzy.user.service.StaffZoneService;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author:Ding
* @ClassName:StaffZoneServiceImpl
* @Package:com.cdzy.user.service.impl.StaffZoneServiceImpl
* @Description:
* @CreateDate:2025年05月13日
* @Version:
**/
@Service
public class StaffZoneServiceImpl extends ServiceImpl<StaffZoneMapper, StaffZone> implements StaffZoneService {
}