diff --git a/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryBedController.java b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryBedController.java new file mode 100644 index 0000000..c90f412 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryBedController.java @@ -0,0 +1,126 @@ +package com.gxwebsoft.dormitory.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.dormitory.service.DormitoryBedService; +import com.gxwebsoft.dormitory.entity.DormitoryBed; +import com.gxwebsoft.dormitory.param.DormitoryBedParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 宿舍床位控制器 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Tag(name = "宿舍床位管理") +@RestController +@RequestMapping("/api/dormitory/dormitory-bed") +public class DormitoryBedController extends BaseController { + @Resource + private DormitoryBedService dormitoryBedService; + + @Operation(summary = "分页查询宿舍床位") + @GetMapping("/page") + public ApiResult> page(DormitoryBedParam param) { + // 使用关联查询 + return success(dormitoryBedService.pageRel(param)); + } + + @Operation(summary = "查询全部宿舍床位") + @GetMapping() + public ApiResult> list(DormitoryBedParam param) { + // 使用关联查询 + return success(dormitoryBedService.listRel(param)); + } + + @Operation(summary = "根据id查询宿舍床位") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(dormitoryBedService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBed:save')") + @OperationLog + @Operation(summary = "添加宿舍床位") + @PostMapping() + public ApiResult save(@RequestBody DormitoryBed dormitoryBed) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + // dormitoryBed实体类没有userId字段,所以不设置 + } + if (dormitoryBedService.save(dormitoryBed)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBed:update')") + @OperationLog + @Operation(summary = "修改宿舍床位") + @PutMapping() + public ApiResult update(@RequestBody DormitoryBed dormitoryBed) { + if (dormitoryBedService.updateById(dormitoryBed)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBed:remove')") + @OperationLog + @Operation(summary = "删除宿舍床位") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (dormitoryBedService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBed:save')") + @OperationLog + @Operation(summary = "批量添加宿舍床位") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (dormitoryBedService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBed:update')") + @OperationLog + @Operation(summary = "批量修改宿舍床位") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(dormitoryBedService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBed:remove')") + @OperationLog + @Operation(summary = "批量删除宿舍床位") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (dormitoryBedService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryBuildingController.java b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryBuildingController.java new file mode 100644 index 0000000..ab84fbf --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryBuildingController.java @@ -0,0 +1,126 @@ +package com.gxwebsoft.dormitory.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.dormitory.service.DormitoryBuildingService; +import com.gxwebsoft.dormitory.entity.DormitoryBuilding; +import com.gxwebsoft.dormitory.param.DormitoryBuildingParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 宿舍楼栋控制器 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Tag(name = "宿舍楼栋管理") +@RestController +@RequestMapping("/api/dormitory/dormitory-building") +public class DormitoryBuildingController extends BaseController { + @Resource + private DormitoryBuildingService dormitoryBuildingService; + + @Operation(summary = "分页查询宿舍楼栋") + @GetMapping("/page") + public ApiResult> page(DormitoryBuildingParam param) { + // 使用关联查询 + return success(dormitoryBuildingService.pageRel(param)); + } + + @Operation(summary = "查询全部宿舍楼栋") + @GetMapping() + public ApiResult> list(DormitoryBuildingParam param) { + // 使用关联查询 + return success(dormitoryBuildingService.listRel(param)); + } + + @Operation(summary = "根据id查询宿舍楼栋") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(dormitoryBuildingService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBuilding:save')") + @OperationLog + @Operation(summary = "添加宿舍楼栋") + @PostMapping() + public ApiResult save(@RequestBody DormitoryBuilding dormitoryBuilding) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + // dormitoryBuilding实体类没有userId字段,所以不设置 + } + if (dormitoryBuildingService.save(dormitoryBuilding)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBuilding:update')") + @OperationLog + @Operation(summary = "修改宿舍楼栋") + @PutMapping() + public ApiResult update(@RequestBody DormitoryBuilding dormitoryBuilding) { + if (dormitoryBuildingService.updateById(dormitoryBuilding)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBuilding:remove')") + @OperationLog + @Operation(summary = "删除宿舍楼栋") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (dormitoryBuildingService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBuilding:save')") + @OperationLog + @Operation(summary = "批量添加宿舍楼栋") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (dormitoryBuildingService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBuilding:update')") + @OperationLog + @Operation(summary = "批量修改宿舍楼栋") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(dormitoryBuildingService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryBuilding:remove')") + @OperationLog + @Operation(summary = "批量删除宿舍楼栋") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (dormitoryBuildingService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryFloorController.java b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryFloorController.java new file mode 100644 index 0000000..2d16bda --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryFloorController.java @@ -0,0 +1,126 @@ +package com.gxwebsoft.dormitory.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.dormitory.service.DormitoryFloorService; +import com.gxwebsoft.dormitory.entity.DormitoryFloor; +import com.gxwebsoft.dormitory.param.DormitoryFloorParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 宿舍楼层控制器 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Tag(name = "宿舍楼层管理") +@RestController +@RequestMapping("/api/dormitory/dormitory-floor") +public class DormitoryFloorController extends BaseController { + @Resource + private DormitoryFloorService dormitoryFloorService; + + @Operation(summary = "分页查询宿舍楼层") + @GetMapping("/page") + public ApiResult> page(DormitoryFloorParam param) { + // 使用关联查询 + return success(dormitoryFloorService.pageRel(param)); + } + + @Operation(summary = "查询全部宿舍楼层") + @GetMapping() + public ApiResult> list(DormitoryFloorParam param) { + // 使用关联查询 + return success(dormitoryFloorService.listRel(param)); + } + + @Operation(summary = "根据id查询宿舍楼层") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(dormitoryFloorService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryFloor:save')") + @OperationLog + @Operation(summary = "添加宿舍楼层") + @PostMapping() + public ApiResult save(@RequestBody DormitoryFloor dormitoryFloor) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + // dormitoryFloor实体类没有userId字段,所以不设置 + } + if (dormitoryFloorService.save(dormitoryFloor)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryFloor:update')") + @OperationLog + @Operation(summary = "修改宿舍楼层") + @PutMapping() + public ApiResult update(@RequestBody DormitoryFloor dormitoryFloor) { + if (dormitoryFloorService.updateById(dormitoryFloor)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryFloor:remove')") + @OperationLog + @Operation(summary = "删除宿舍楼层") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (dormitoryFloorService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryFloor:save')") + @OperationLog + @Operation(summary = "批量添加宿舍楼层") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (dormitoryFloorService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryFloor:update')") + @OperationLog + @Operation(summary = "批量修改宿舍楼层") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(dormitoryFloorService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryFloor:remove')") + @OperationLog + @Operation(summary = "批量删除宿舍楼层") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (dormitoryFloorService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryRecordController.java b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryRecordController.java new file mode 100644 index 0000000..7a6cc15 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/controller/DormitoryRecordController.java @@ -0,0 +1,126 @@ +package com.gxwebsoft.dormitory.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.dormitory.service.DormitoryRecordService; +import com.gxwebsoft.dormitory.entity.DormitoryRecord; +import com.gxwebsoft.dormitory.param.DormitoryRecordParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 宿舍记录控制器 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Tag(name = "宿舍记录管理") +@RestController +@RequestMapping("/api/dormitory/dormitory-record") +public class DormitoryRecordController extends BaseController { + @Resource + private DormitoryRecordService dormitoryRecordService; + + @Operation(summary = "分页查询宿舍记录") + @GetMapping("/page") + public ApiResult> page(DormitoryRecordParam param) { + // 使用关联查询 + return success(dormitoryRecordService.pageRel(param)); + } + + @Operation(summary = "查询全部宿舍记录") + @GetMapping() + public ApiResult> list(DormitoryRecordParam param) { + // 使用关联查询 + return success(dormitoryRecordService.listRel(param)); + } + + @Operation(summary = "根据id查询宿舍记录") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(dormitoryRecordService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryRecord:save')") + @OperationLog + @Operation(summary = "添加宿舍记录") + @PostMapping() + public ApiResult save(@RequestBody DormitoryRecord dormitoryRecord) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + // dormitoryRecord实体类没有userId字段,所以不设置 + } + if (dormitoryRecordService.save(dormitoryRecord)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryRecord:update')") + @OperationLog + @Operation(summary = "修改宿舍记录") + @PutMapping() + public ApiResult update(@RequestBody DormitoryRecord dormitoryRecord) { + if (dormitoryRecordService.updateById(dormitoryRecord)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryRecord:remove')") + @OperationLog + @Operation(summary = "删除宿舍记录") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (dormitoryRecordService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryRecord:save')") + @OperationLog + @Operation(summary = "批量添加宿舍记录") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (dormitoryRecordService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryRecord:update')") + @OperationLog + @Operation(summary = "批量修改宿舍记录") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(dormitoryRecordService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('dormitory:dormitoryRecord:remove')") + @OperationLog + @Operation(summary = "批量删除宿舍记录") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (dormitoryRecordService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryBed.java b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryBed.java new file mode 100644 index 0000000..c6ffc31 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryBed.java @@ -0,0 +1,79 @@ +package com.gxwebsoft.dormitory.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍床位 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "宿舍床位") +public class DormitoryBed implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "宿舍名称") + private String name; + + @Schema(description = "编号") + private String code; + + @Schema(description = "楼栋ID") + private Integer buildingId; + + @Schema(description = "楼栋名称") + @TableField(exist = false) + private String buildingName; + + @Schema(description = "楼层ID") + private Integer floorId; + + @Schema(description = "楼层名称") + @TableField(exist = false) + private String floorName; + + @Schema(description = "宿舍ID") + private Integer recordId; + + @Schema(description = "宿舍名称") + @TableField(exist = false) + private String recordName; + + @Schema(description = "学生ID") + private Integer userId; + + @Schema(description = "上下铺 1下铺 2上铺 0无") + private Boolean bunk; + + @Schema(description = "充电口") + private Boolean chargingPort; + + @Schema(description = "排序(数字越小越靠前)") + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1报修") + private Integer status; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryBuilding.java b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryBuilding.java new file mode 100644 index 0000000..f79d4fb --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryBuilding.java @@ -0,0 +1,48 @@ +package com.gxwebsoft.dormitory.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍楼栋 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "宿舍楼栋") +public class DormitoryBuilding implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "楼栋名称") + private String name; + + @Schema(description = "楼栋编号") + private String code; + + @Schema(description = "排序(数字越小越靠前)") + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1冻结") + private Integer status; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryFloor.java b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryFloor.java new file mode 100644 index 0000000..e72b2e0 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryFloor.java @@ -0,0 +1,56 @@ +package com.gxwebsoft.dormitory.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍楼层 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "宿舍楼层") +public class DormitoryFloor implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "楼层") + private String name; + + @Schema(description = "编号") + private String code; + + @Schema(description = "楼栋") + @TableField(exist = false) + private String buildingName; + + @Schema(description = "楼栋ID") + private Integer buildingId; + + @Schema(description = "排序(数字越小越靠前)") + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1冻结") + private Integer status; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryRecord.java b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryRecord.java new file mode 100644 index 0000000..d2aac03 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/entity/DormitoryRecord.java @@ -0,0 +1,69 @@ +package com.gxwebsoft.dormitory.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍记录 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "宿舍记录") +public class DormitoryRecord implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "宿舍名称") + private String name; + + @Schema(description = "编号") + private String code; + + @Schema(description = "楼栋ID") + private Integer buildingId; + + @Schema(description = "楼栋名称") + @TableField(exist = false) + private String buildingName; + + @Schema(description = "楼层ID") + private Integer floorId; + + @Schema(description = "楼层名称") + @TableField(exist = false) + private String floorName; + + @Schema(description = "床位数") + private Integer beds; + + @Schema(description = "独立卫生间") + private Boolean toilet; + + @Schema(description = "排序(数字越小越靠前)") + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1冻结") + private Integer status; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryBedMapper.java b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryBedMapper.java new file mode 100644 index 0000000..484bf2b --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryBedMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.dormitory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.dormitory.entity.DormitoryBed; +import com.gxwebsoft.dormitory.param.DormitoryBedParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 宿舍床位Mapper + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryBedMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") DormitoryBedParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") DormitoryBedParam param); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryBuildingMapper.java b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryBuildingMapper.java new file mode 100644 index 0000000..3bfc4ca --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryBuildingMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.dormitory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.dormitory.entity.DormitoryBuilding; +import com.gxwebsoft.dormitory.param.DormitoryBuildingParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 宿舍楼栋Mapper + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryBuildingMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") DormitoryBuildingParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") DormitoryBuildingParam param); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryFloorMapper.java b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryFloorMapper.java new file mode 100644 index 0000000..84f7e9b --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryFloorMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.dormitory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.dormitory.entity.DormitoryFloor; +import com.gxwebsoft.dormitory.param.DormitoryFloorParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 宿舍楼层Mapper + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryFloorMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") DormitoryFloorParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") DormitoryFloorParam param); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryRecordMapper.java b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryRecordMapper.java new file mode 100644 index 0000000..9d64316 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/DormitoryRecordMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.dormitory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.dormitory.entity.DormitoryRecord; +import com.gxwebsoft.dormitory.param.DormitoryRecordParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 宿舍记录Mapper + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryRecordMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") DormitoryRecordParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") DormitoryRecordParam param); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryBedMapper.xml b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryBedMapper.xml new file mode 100644 index 0000000..7a19566 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryBedMapper.xml @@ -0,0 +1,72 @@ + + + + + + + SELECT a.*, b.name AS buildingName, c.name AS floorName, d.name AS recordName + FROM dormitory_bed a + LEFT JOIN dormitory_building b ON a.building_id = b.id + LEFT JOIN dormitory_floor c ON a.floor_id = c.id + LEFT JOIN dormitory_record d ON a.record_id = d.id + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.building_id = #{param.buildingId} + + + AND a.floor_id = #{param.floorId} + + + AND a.record_id = #{param.recordId} + + + AND a.user_id = #{param.userId} + + + AND a.bunk = #{param.bunk} + + + AND a.charging_port = #{param.chargingPort} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryBuildingMapper.xml b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryBuildingMapper.xml new file mode 100644 index 0000000..b7a6e30 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryBuildingMapper.xml @@ -0,0 +1,51 @@ + + + + + + + SELECT a.* + FROM dormitory_building a + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryFloorMapper.xml b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryFloorMapper.xml new file mode 100644 index 0000000..9cafffe --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryFloorMapper.xml @@ -0,0 +1,55 @@ + + + + + + + SELECT a.*, b.name AS buildingName + FROM dormitory_floor a + LEFT JOIN dormitory_building b ON a.building_id = b.id + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.building_id = #{param.buildingId} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryRecordMapper.xml b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryRecordMapper.xml new file mode 100644 index 0000000..95755c9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/mapper/xml/DormitoryRecordMapper.xml @@ -0,0 +1,65 @@ + + + + + + + SELECT a.*, b.name AS buildingName, c.name AS floorName + FROM dormitory_record a + LEFT JOIN dormitory_building b ON a.building_id = b.id + LEFT JOIN dormitory_floor c ON a.floor_id = c.id + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.building_id = #{param.buildingId} + + + AND a.floor_id = #{param.floorId} + + + AND a.beds = #{param.beds} + + + AND a.toilet = #{param.toilet} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/dormitory/param/DormitoryBedParam.java b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryBedParam.java new file mode 100644 index 0000000..2b99a10 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryBedParam.java @@ -0,0 +1,69 @@ +package com.gxwebsoft.dormitory.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍床位查询参数 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(description = "宿舍床位查询参数") +public class DormitoryBedParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "宿舍名称") + private String name; + + @Schema(description = "编号") + private String code; + + @Schema(description = "楼栋ID") + @QueryField(type = QueryType.EQ) + private Integer buildingId; + + @Schema(description = "楼层ID") + @QueryField(type = QueryType.EQ) + private Integer floorId; + + @Schema(description = "宿舍ID") + @QueryField(type = QueryType.EQ) + private Integer recordId; + + @Schema(description = "学生ID") + private Integer userId; + + @Schema(description = "上下铺 1下铺 2上铺 0无") + @QueryField(type = QueryType.EQ) + private Boolean bunk; + + @Schema(description = "充电口") + @QueryField(type = QueryType.EQ) + private Boolean chargingPort; + + @Schema(description = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1报修") + @QueryField(type = QueryType.EQ) + private Integer status; + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/param/DormitoryBuildingParam.java b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryBuildingParam.java new file mode 100644 index 0000000..1c02691 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryBuildingParam.java @@ -0,0 +1,46 @@ +package com.gxwebsoft.dormitory.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍楼栋查询参数 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(description = "宿舍楼栋查询参数") +public class DormitoryBuildingParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "楼栋名称") + private String name; + + @Schema(description = "楼栋编号") + private String code; + + @Schema(description = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + +} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/dormitory/param/DormitoryFloorParam.java b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryFloorParam.java new file mode 100644 index 0000000..d699dbc --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryFloorParam.java @@ -0,0 +1,50 @@ +package com.gxwebsoft.dormitory.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍楼层查询参数 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(description = "宿舍楼层查询参数") +public class DormitoryFloorParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "楼层") + private String name; + + @Schema(description = "编号") + private String code; + + @Schema(description = "楼栋ID") + @QueryField(type = QueryType.EQ) + private Integer buildingId; + + @Schema(description = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + +} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/dormitory/param/DormitoryRecordParam.java b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryRecordParam.java new file mode 100644 index 0000000..2843d1d --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/param/DormitoryRecordParam.java @@ -0,0 +1,62 @@ +package com.gxwebsoft.dormitory.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 宿舍记录查询参数 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(description = "宿舍记录查询参数") +public class DormitoryRecordParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "宿舍名称") + private String name; + + @Schema(description = "编号") + private String code; + + @Schema(description = "楼栋ID") + @QueryField(type = QueryType.EQ) + private Integer buildingId; + + @Schema(description = "楼层ID") + @QueryField(type = QueryType.EQ) + private Integer floorId; + + @Schema(description = "床位数") + @QueryField(type = QueryType.EQ) + private Integer beds; + + @Schema(description = "独立卫生间") + @QueryField(type = QueryType.EQ) + private Boolean toilet; + + @Schema(description = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + +} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/dormitory/service/DormitoryBedService.java b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryBedService.java new file mode 100644 index 0000000..3f80f7b --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryBedService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.dormitory.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.dormitory.entity.DormitoryBed; +import com.gxwebsoft.dormitory.param.DormitoryBedParam; + +import java.util.List; + +/** + * 宿舍床位Service + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryBedService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(DormitoryBedParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(DormitoryBedParam param); + + /** + * 根据id查询 + * + * @param id ID + * @return DormitoryBed + */ + DormitoryBed getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/service/DormitoryBuildingService.java b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryBuildingService.java new file mode 100644 index 0000000..c5b015f --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryBuildingService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.dormitory.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.dormitory.entity.DormitoryBuilding; +import com.gxwebsoft.dormitory.param.DormitoryBuildingParam; + +import java.util.List; + +/** + * 宿舍楼栋Service + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryBuildingService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(DormitoryBuildingParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(DormitoryBuildingParam param); + + /** + * 根据id查询 + * + * @param id ID + * @return DormitoryBuilding + */ + DormitoryBuilding getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/service/DormitoryFloorService.java b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryFloorService.java new file mode 100644 index 0000000..0e64087 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryFloorService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.dormitory.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.dormitory.entity.DormitoryFloor; +import com.gxwebsoft.dormitory.param.DormitoryFloorParam; + +import java.util.List; + +/** + * 宿舍楼层Service + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryFloorService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(DormitoryFloorParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(DormitoryFloorParam param); + + /** + * 根据id查询 + * + * @param id ID + * @return DormitoryFloor + */ + DormitoryFloor getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/service/DormitoryRecordService.java b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryRecordService.java new file mode 100644 index 0000000..13fe03d --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/DormitoryRecordService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.dormitory.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.dormitory.entity.DormitoryRecord; +import com.gxwebsoft.dormitory.param.DormitoryRecordParam; + +import java.util.List; + +/** + * 宿舍记录Service + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +public interface DormitoryRecordService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(DormitoryRecordParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(DormitoryRecordParam param); + + /** + * 根据id查询 + * + * @param id ID + * @return DormitoryRecord + */ + DormitoryRecord getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryBedServiceImpl.java b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryBedServiceImpl.java new file mode 100644 index 0000000..0014b17 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryBedServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.dormitory.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.dormitory.mapper.DormitoryBedMapper; +import com.gxwebsoft.dormitory.service.DormitoryBedService; +import com.gxwebsoft.dormitory.entity.DormitoryBed; +import com.gxwebsoft.dormitory.param.DormitoryBedParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 宿舍床位Service实现 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Service +public class DormitoryBedServiceImpl extends ServiceImpl implements DormitoryBedService { + + @Override + public PageResult pageRel(DormitoryBedParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(DormitoryBedParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public DormitoryBed getByIdRel(Integer id) { + DormitoryBedParam param = new DormitoryBedParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryBuildingServiceImpl.java b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryBuildingServiceImpl.java new file mode 100644 index 0000000..e15e01e --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryBuildingServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.dormitory.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.dormitory.mapper.DormitoryBuildingMapper; +import com.gxwebsoft.dormitory.service.DormitoryBuildingService; +import com.gxwebsoft.dormitory.entity.DormitoryBuilding; +import com.gxwebsoft.dormitory.param.DormitoryBuildingParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 宿舍楼栋Service实现 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Service +public class DormitoryBuildingServiceImpl extends ServiceImpl implements DormitoryBuildingService { + + @Override + public PageResult pageRel(DormitoryBuildingParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(DormitoryBuildingParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public DormitoryBuilding getByIdRel(Integer id) { + DormitoryBuildingParam param = new DormitoryBuildingParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryFloorServiceImpl.java b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryFloorServiceImpl.java new file mode 100644 index 0000000..6ddd3c5 --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryFloorServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.dormitory.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.dormitory.mapper.DormitoryFloorMapper; +import com.gxwebsoft.dormitory.service.DormitoryFloorService; +import com.gxwebsoft.dormitory.entity.DormitoryFloor; +import com.gxwebsoft.dormitory.param.DormitoryFloorParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 宿舍楼层Service实现 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Service +public class DormitoryFloorServiceImpl extends ServiceImpl implements DormitoryFloorService { + + @Override + public PageResult pageRel(DormitoryFloorParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(DormitoryFloorParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public DormitoryFloor getByIdRel(Integer id) { + DormitoryFloorParam param = new DormitoryFloorParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryRecordServiceImpl.java b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryRecordServiceImpl.java new file mode 100644 index 0000000..a7f218b --- /dev/null +++ b/src/main/java/com/gxwebsoft/dormitory/service/impl/DormitoryRecordServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.dormitory.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.dormitory.mapper.DormitoryRecordMapper; +import com.gxwebsoft.dormitory.service.DormitoryRecordService; +import com.gxwebsoft.dormitory.entity.DormitoryRecord; +import com.gxwebsoft.dormitory.param.DormitoryRecordParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 宿舍记录Service实现 + * + * @author 科技小王子 + * @since 2025-10-03 10:49:27 + */ +@Service +public class DormitoryRecordServiceImpl extends ServiceImpl implements DormitoryRecordService { + + @Override + public PageResult pageRel(DormitoryRecordParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(DormitoryRecordParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public DormitoryRecord getByIdRel(Integer id) { + DormitoryRecordParam param = new DormitoryRecordParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopUserController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopUserController.java new file mode 100644 index 0000000..3f7425d --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopUserController.java @@ -0,0 +1,128 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.entity.ShopUser; +import com.gxwebsoft.shop.param.ShopUserParam; +import com.gxwebsoft.shop.service.ShopUserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 用户记录表控制器 + * + * @author 科技小王子 + * @since 2025-10-03 13:41:09 + */ +@Tag(name = "用户记录表管理") +@RestController +@RequestMapping("/api/shop/shop-user") +public class ShopUserController extends BaseController { + @Resource + private ShopUserService shopUserService; + + @PreAuthorize("hasAuthority('shop:shopUser:list')") + @Operation(summary = "分页查询用户记录表") + @GetMapping("/page") + public ApiResult> page(ShopUserParam param) { + // 使用关联查询 + return success(shopUserService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('shop:shopUser:list')") + @Operation(summary = "查询全部用户记录表") + @GetMapping() + public ApiResult> list(ShopUserParam param) { + // 使用关联查询 + return success(shopUserService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:shopUser:list')") + @Operation(summary = "根据id查询用户记录表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(shopUserService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('shop:shopUser:save')") + @OperationLog + @Operation(summary = "添加用户记录表") + @PostMapping() + public ApiResult save(@RequestBody ShopUser shopUser) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + shopUser.setUserId(loginUser.getUserId()); + } + if (shopUserService.save(shopUser)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopUser:update')") + @OperationLog + @Operation(summary = "修改用户记录表") + @PutMapping() + public ApiResult update(@RequestBody ShopUser shopUser) { + if (shopUserService.updateById(shopUser)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopUser:remove')") + @OperationLog + @Operation(summary = "删除用户记录表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (shopUserService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('shop:shopUser:save')") + @OperationLog + @Operation(summary = "批量添加用户记录表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (shopUserService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopUser:update')") + @OperationLog + @Operation(summary = "批量修改用户记录表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(shopUserService, "user_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopUser:remove')") + @OperationLog + @Operation(summary = "批量删除用户记录表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (shopUserService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopUsersController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopUsersController.java deleted file mode 100644 index 458384f..0000000 --- a/src/main/java/com/gxwebsoft/shop/controller/ShopUsersController.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.gxwebsoft.shop.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.shop.service.ShopUsersService; -import com.gxwebsoft.shop.entity.ShopUsers; -import com.gxwebsoft.shop.param.ShopUsersParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 控制器 - * - * @author 科技小王子 - * @since 2025-01-11 10:45:13 - */ -@Tag(name = "管理") -@RestController -@RequestMapping("/api/shop/shop-users") -public class ShopUsersController extends BaseController { - @Resource - private ShopUsersService shopUsersService; - - @Operation(summary = "分页查询") - @GetMapping("/page") - public ApiResult> page(ShopUsersParam param) { - // 使用关联查询 - return success(shopUsersService.pageRel(param)); - } - - @Operation(summary = "查询全部") - @GetMapping() - public ApiResult> list(ShopUsersParam param) { - // 使用关联查询 - return success(shopUsersService.listRel(param)); - } - - @PreAuthorize("hasAuthority('shop:shopUsers:list')") - @Operation(summary = "根据id查询") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(shopUsersService.getByIdRel(id)); - } - - @Operation(summary = "添加") - @PostMapping() - public ApiResult save(@RequestBody ShopUsers shopUsers) { - if (shopUsersService.save(shopUsers)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @Operation(summary = "修改") - @PutMapping() - public ApiResult update(@RequestBody ShopUsers shopUsers) { - if (shopUsersService.updateById(shopUsers)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @Operation(summary = "删除") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (shopUsersService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @Operation(summary = "批量添加") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (shopUsersService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @Operation(summary = "批量修改") - @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(shopUsersService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @Operation(summary = "批量删除") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (shopUsersService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopUser.java b/src/main/java/com/gxwebsoft/shop/entity/ShopUser.java new file mode 100644 index 0000000..b7388ef --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/ShopUser.java @@ -0,0 +1,251 @@ +package com.gxwebsoft.shop.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 用户记录表 + * + * @author 科技小王子 + * @since 2025-10-03 13:41:09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "用户记录表") +public class ShopUser implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableId(value = "user_id", type = IdType.AUTO) + private Integer userId; + + @Schema(description = "用户类型 0个人用户 1企业用户 2其他") + private Integer type; + + @Schema(description = "账号") + private String username; + + @Schema(description = "密码") + private String password; + + @Schema(description = "昵称") + private String nickname; + + @Schema(description = "手机号") + private String phone; + + @Schema(description = "性别 1男 2女") + private Integer sex; + + @Schema(description = "职务") + private String position; + + @Schema(description = "注册来源客户端 (APP、H5、MP-WEIXIN等)") + private String platform; + + @Schema(description = "邮箱") + private String email; + + @Schema(description = "邮箱是否验证, 0否, 1是") + private Integer emailVerified; + + @Schema(description = "别名") + private String alias; + + @Schema(description = "真实姓名") + private String realName; + + @Schema(description = "证件号码") + private String idCard; + + @Schema(description = "出生日期") + private LocalDate birthday; + + @Schema(description = "所在国家") + private String country; + + @Schema(description = "所在省份") + private String province; + + @Schema(description = "所在城市") + private String city; + + @Schema(description = "所在辖区") + private String region; + + @Schema(description = "街道地址") + private String address; + + @Schema(description = "经度") + private String longitude; + + @Schema(description = "纬度") + private String latitude; + + @Schema(description = "用户可用余额") + private BigDecimal balance; + + @Schema(description = "已提现金额") + private BigDecimal cashedMoney; + + @Schema(description = "用户可用积分") + private Integer points; + + @Schema(description = "用户总支付的金额") + private BigDecimal payMoney; + + @Schema(description = "实际消费的金额(不含退款)") + private BigDecimal expendMoney; + + @Schema(description = "密码") + private String payPassword; + + @Schema(description = "会员等级ID") + private Integer gradeId; + + @Schema(description = "行业分类") + private String category; + + @Schema(description = "个人简介") + private String introduction; + + @Schema(description = "机构id") + private Integer organizationId; + + @Schema(description = "会员分组ID") + private Integer groupId; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "背景图") + private String bgImage; + + @Schema(description = "用户编码") + private String userCode; + + @Schema(description = "是否已实名认证") + private Integer certification; + + @Schema(description = "年龄") + private Integer age; + + @Schema(description = "是否线下会员") + private Boolean offline; + + @Schema(description = "关注数") + private Integer followers; + + @Schema(description = "粉丝数") + private Integer fans; + + @Schema(description = "点赞数") + private Integer likes; + + @Schema(description = "评论数") + private Integer commentNumbers; + + @Schema(description = "是否推荐") + private Integer recommend; + + @Schema(description = "微信openid") + private String openid; + + @Schema(description = "微信公众号openid") + private String officeOpenid; + + @Schema(description = "微信unionID") + private String unionid; + + @Schema(description = "客户端ID") + private String clientId; + + @Schema(description = "不允许办卡") + private Boolean notAllowVip; + + @Schema(description = "是否管理员") + private Boolean isAdmin; + + @Schema(description = "是否企业管理员") + private Boolean isOrganizationAdmin; + + @Schema(description = "累计登录次数") + private Integer loginNum; + + @Schema(description = "企业ID") + private Integer companyId; + + @Schema(description = "可管理的场馆") + private String merchants; + + @Schema(description = "商户ID") + private Integer merchantId; + + @Schema(description = "商户名称") + private String merchantName; + + @Schema(description = "商户头像") + private String merchantAvatar; + + @Schema(description = "第三方系统的用户ID") + private Integer uid; + + @Schema(description = "专家角色") + private Boolean expertType; + + @Schema(description = "过期时间") + private Integer expireTime; + + @Schema(description = "最后结算时间") + private LocalDateTime settlementTime; + + @Schema(description = "资质") + private String aptitude; + + @Schema(description = "行业类型(父级)") + private String industryParent; + + @Schema(description = "行业类型(子级)") + private String industryChild; + + @Schema(description = "头衔") + private String title; + + @Schema(description = "安装的产品ID") + private Integer templateId; + + @Schema(description = "插件安装状态(仅对超超管判断) 0未安装 1已安装 ") + private Integer installed; + + @Schema(description = "特长") + private String speciality; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0在线, 1离线") + private Integer status; + + @Schema(description = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "注册时间") + private LocalDateTime createTime; + + @Schema(description = "修改时间") + private LocalDateTime updateTime; + +} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopUsers.java b/src/main/java/com/gxwebsoft/shop/entity/ShopUsers.java deleted file mode 100644 index e14c35e..0000000 --- a/src/main/java/com/gxwebsoft/shop/entity/ShopUsers.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.gxwebsoft.shop.entity; - -import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * - * - * @author 科技小王子 - * @since 2025-01-11 10:45:13 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Schema(name = "ShopUsers对象", description = "") -public class ShopUsers implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - @Schema(description = "用户唯一小程序id") - private String openId; - - @Schema(description = "小程序用户秘钥") - private String sessionKey; - - @Schema(description = "用户名") - private String username; - - @Schema(description = "头像地址") - private String avatarUrl; - - @Schema(description = "1男,2女") - private Boolean gender; - - @Schema(description = "国家") - private String country; - - @Schema(description = "省份") - private String province; - - @Schema(description = "城市") - private String city; - - @Schema(description = "手机号码") - private String phone; - - @Schema(description = "积分") - private BigDecimal integral; - - @Schema(description = "余额") - private BigDecimal money; - - @Schema(description = "排序号") - private Integer sortNumber; - - @Schema(description = "注册时间") - private Integer createTime; - - private String idCard; - - private String realName; - - @Schema(description = "是否管理员:1是;2否") - private Boolean isAdmin; - - @Schema(description = "租户id") - private Integer tenantId; - -} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/ShopUsersMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/ShopUserMapper.java similarity index 51% rename from src/main/java/com/gxwebsoft/shop/mapper/ShopUsersMapper.java rename to src/main/java/com/gxwebsoft/shop/mapper/ShopUserMapper.java index f0c8b34..e7a09c4 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/ShopUsersMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/ShopUserMapper.java @@ -2,29 +2,29 @@ package com.gxwebsoft.shop.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.shop.entity.ShopUsers; -import com.gxwebsoft.shop.param.ShopUsersParam; +import com.gxwebsoft.shop.entity.ShopUser; +import com.gxwebsoft.shop.param.ShopUserParam; import org.apache.ibatis.annotations.Param; import java.util.List; /** - * Mapper + * 用户记录表Mapper * * @author 科技小王子 - * @since 2025-01-11 10:45:13 + * @since 2025-10-03 13:41:09 */ -public interface ShopUsersMapper extends BaseMapper { +public interface ShopUserMapper extends BaseMapper { /** * 分页查询 * * @param page 分页对象 * @param param 查询参数 - * @return List + * @return List */ - List selectPageRel(@Param("page") IPage page, - @Param("param") ShopUsersParam param); + List selectPageRel(@Param("page") IPage page, + @Param("param") ShopUserParam param); /** * 查询全部 @@ -32,6 +32,6 @@ public interface ShopUsersMapper extends BaseMapper { * @param param 查询参数 * @return List */ - List selectListRel(@Param("param") ShopUsersParam param); + List selectListRel(@Param("param") ShopUserParam param); } diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserMapper.xml new file mode 100644 index 0000000..c0d8fb4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserMapper.xml @@ -0,0 +1,249 @@ + + + + + + + SELECT a.* + FROM shop_user a + + + AND a.user_id = #{param.userId} + + + AND a.type = #{param.type} + + + AND a.username LIKE CONCAT('%', #{param.username}, '%') + + + AND a.password LIKE CONCAT('%', #{param.password}, '%') + + + AND a.nickname LIKE CONCAT('%', #{param.nickname}, '%') + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.sex = #{param.sex} + + + AND a.position LIKE CONCAT('%', #{param.position}, '%') + + + AND a.platform LIKE CONCAT('%', #{param.platform}, '%') + + + AND a.email LIKE CONCAT('%', #{param.email}, '%') + + + AND a.email_verified = #{param.emailVerified} + + + AND a.alias LIKE CONCAT('%', #{param.alias}, '%') + + + AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') + + + AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%') + + + AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%') + + + AND a.country LIKE CONCAT('%', #{param.country}, '%') + + + AND a.province LIKE CONCAT('%', #{param.province}, '%') + + + AND a.city LIKE CONCAT('%', #{param.city}, '%') + + + AND a.region LIKE CONCAT('%', #{param.region}, '%') + + + AND a.address LIKE CONCAT('%', #{param.address}, '%') + + + AND a.longitude LIKE CONCAT('%', #{param.longitude}, '%') + + + AND a.latitude LIKE CONCAT('%', #{param.latitude}, '%') + + + AND a.balance = #{param.balance} + + + AND a.cashed_money = #{param.cashedMoney} + + + AND a.points = #{param.points} + + + AND a.pay_money = #{param.payMoney} + + + AND a.expend_money = #{param.expendMoney} + + + AND a.pay_password LIKE CONCAT('%', #{param.payPassword}, '%') + + + AND a.grade_id = #{param.gradeId} + + + AND a.category LIKE CONCAT('%', #{param.category}, '%') + + + AND a.introduction LIKE CONCAT('%', #{param.introduction}, '%') + + + AND a.organization_id = #{param.organizationId} + + + AND a.group_id = #{param.groupId} + + + AND a.avatar LIKE CONCAT('%', #{param.avatar}, '%') + + + AND a.bg_image LIKE CONCAT('%', #{param.bgImage}, '%') + + + AND a.user_code LIKE CONCAT('%', #{param.userCode}, '%') + + + AND a.certification = #{param.certification} + + + AND a.age = #{param.age} + + + AND a.offline = #{param.offline} + + + AND a.followers = #{param.followers} + + + AND a.fans = #{param.fans} + + + AND a.likes = #{param.likes} + + + AND a.comment_numbers = #{param.commentNumbers} + + + AND a.recommend = #{param.recommend} + + + AND a.openid LIKE CONCAT('%', #{param.openid}, '%') + + + AND a.office_openid LIKE CONCAT('%', #{param.officeOpenid}, '%') + + + AND a.unionid LIKE CONCAT('%', #{param.unionid}, '%') + + + AND a.client_id LIKE CONCAT('%', #{param.clientId}, '%') + + + AND a.not_allow_vip = #{param.notAllowVip} + + + AND a.is_admin = #{param.isAdmin} + + + AND a.is_organization_admin = #{param.isOrganizationAdmin} + + + AND a.login_num = #{param.loginNum} + + + AND a.company_id = #{param.companyId} + + + AND a.merchants LIKE CONCAT('%', #{param.merchants}, '%') + + + AND a.merchant_id = #{param.merchantId} + + + AND a.merchant_name LIKE CONCAT('%', #{param.merchantName}, '%') + + + AND a.merchant_avatar LIKE CONCAT('%', #{param.merchantAvatar}, '%') + + + AND a.uid = #{param.uid} + + + AND a.expert_type = #{param.expertType} + + + AND a.expire_time = #{param.expireTime} + + + AND a.settlement_time LIKE CONCAT('%', #{param.settlementTime}, '%') + + + AND a.aptitude LIKE CONCAT('%', #{param.aptitude}, '%') + + + AND a.industry_parent LIKE CONCAT('%', #{param.industryParent}, '%') + + + AND a.industry_child LIKE CONCAT('%', #{param.industryChild}, '%') + + + AND a.title LIKE CONCAT('%', #{param.title}, '%') + + + AND a.template_id = #{param.templateId} + + + AND a.installed = #{param.installed} + + + AND a.speciality LIKE CONCAT('%', #{param.speciality}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUsersMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUsersMapper.xml deleted file mode 100644 index 41df7a5..0000000 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUsersMapper.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - SELECT a.* - FROM shop_users a - - - AND a.id = #{param.id} - - - AND a.open_id LIKE CONCAT('%', #{param.openId}, '%') - - - AND a.session_key LIKE CONCAT('%', #{param.sessionKey}, '%') - - - AND a.username LIKE CONCAT('%', #{param.username}, '%') - - - AND a.avatar_url LIKE CONCAT('%', #{param.avatarUrl}, '%') - - - AND a.gender = #{param.gender} - - - AND a.country LIKE CONCAT('%', #{param.country}, '%') - - - AND a.province LIKE CONCAT('%', #{param.province}, '%') - - - AND a.city LIKE CONCAT('%', #{param.city}, '%') - - - AND a.phone LIKE CONCAT('%', #{param.phone}, '%') - - - AND a.integral = #{param.integral} - - - AND a.money = #{param.money} - - - AND a.sort_number = #{param.sortNumber} - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%') - - - AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') - - - AND a.is_admin = #{param.isAdmin} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/shop/param/ShopUserParam.java b/src/main/java/com/gxwebsoft/shop/param/ShopUserParam.java new file mode 100644 index 0000000..3bceff8 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/ShopUserParam.java @@ -0,0 +1,272 @@ +package com.gxwebsoft.shop.param; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * 用户记录表查询参数 + * + * @author 科技小王子 + * @since 2025-10-03 13:41:08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(description = "用户记录表查询参数") +public class ShopUserParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @Schema(description = "用户类型 0个人用户 1企业用户 2其他") + @QueryField(type = QueryType.EQ) + private Integer type; + + @Schema(description = "账号") + private String username; + + @Schema(description = "密码") + private String password; + + @Schema(description = "昵称") + private String nickname; + + @Schema(description = "手机号") + private String phone; + + @Schema(description = "性别 1男 2女") + @QueryField(type = QueryType.EQ) + private Integer sex; + + @Schema(description = "职务") + private String position; + + @Schema(description = "注册来源客户端 (APP、H5、MP-WEIXIN等)") + private String platform; + + @Schema(description = "邮箱") + private String email; + + @Schema(description = "邮箱是否验证, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer emailVerified; + + @Schema(description = "别名") + private String alias; + + @Schema(description = "真实姓名") + private String realName; + + @Schema(description = "证件号码") + private String idCard; + + @Schema(description = "出生日期") + private String birthday; + + @Schema(description = "所在国家") + private String country; + + @Schema(description = "所在省份") + private String province; + + @Schema(description = "所在城市") + private String city; + + @Schema(description = "所在辖区") + private String region; + + @Schema(description = "街道地址") + private String address; + + @Schema(description = "经度") + private String longitude; + + @Schema(description = "纬度") + private String latitude; + + @Schema(description = "用户可用余额") + @QueryField(type = QueryType.EQ) + private BigDecimal balance; + + @Schema(description = "已提现金额") + @QueryField(type = QueryType.EQ) + private BigDecimal cashedMoney; + + @Schema(description = "用户可用积分") + @QueryField(type = QueryType.EQ) + private Integer points; + + @Schema(description = "用户总支付的金额") + @QueryField(type = QueryType.EQ) + private BigDecimal payMoney; + + @Schema(description = "实际消费的金额(不含退款)") + @QueryField(type = QueryType.EQ) + private BigDecimal expendMoney; + + @Schema(description = "密码") + private String payPassword; + + @Schema(description = "会员等级ID") + @QueryField(type = QueryType.EQ) + private Integer gradeId; + + @Schema(description = "行业分类") + private String category; + + @Schema(description = "个人简介") + private String introduction; + + @Schema(description = "机构id") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @Schema(description = "会员分组ID") + @QueryField(type = QueryType.EQ) + private Integer groupId; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "背景图") + private String bgImage; + + @Schema(description = "用户编码") + private String userCode; + + @Schema(description = "是否已实名认证") + @QueryField(type = QueryType.EQ) + private Integer certification; + + @Schema(description = "年龄") + @QueryField(type = QueryType.EQ) + private Integer age; + + @Schema(description = "是否线下会员") + @QueryField(type = QueryType.EQ) + private Boolean offline; + + @Schema(description = "关注数") + @QueryField(type = QueryType.EQ) + private Integer followers; + + @Schema(description = "粉丝数") + @QueryField(type = QueryType.EQ) + private Integer fans; + + @Schema(description = "点赞数") + @QueryField(type = QueryType.EQ) + private Integer likes; + + @Schema(description = "评论数") + @QueryField(type = QueryType.EQ) + private Integer commentNumbers; + + @Schema(description = "是否推荐") + @QueryField(type = QueryType.EQ) + private Integer recommend; + + @Schema(description = "微信openid") + private String openid; + + @Schema(description = "微信公众号openid") + private String officeOpenid; + + @Schema(description = "微信unionID") + private String unionid; + + @Schema(description = "客户端ID") + private String clientId; + + @Schema(description = "不允许办卡") + @QueryField(type = QueryType.EQ) + private Boolean notAllowVip; + + @Schema(description = "是否管理员") + @QueryField(type = QueryType.EQ) + private Boolean isAdmin; + + @Schema(description = "是否企业管理员") + @QueryField(type = QueryType.EQ) + private Boolean isOrganizationAdmin; + + @Schema(description = "累计登录次数") + @QueryField(type = QueryType.EQ) + private Integer loginNum; + + @Schema(description = "企业ID") + @QueryField(type = QueryType.EQ) + private Integer companyId; + + @Schema(description = "可管理的场馆") + private String merchants; + + @Schema(description = "商户ID") + @QueryField(type = QueryType.EQ) + private Long merchantId; + + @Schema(description = "商户名称") + private String merchantName; + + @Schema(description = "商户头像") + private String merchantAvatar; + + @Schema(description = "第三方系统的用户ID") + @QueryField(type = QueryType.EQ) + private Integer uid; + + @Schema(description = "专家角色") + @QueryField(type = QueryType.EQ) + private Boolean expertType; + + @Schema(description = "过期时间") + @QueryField(type = QueryType.EQ) + private Integer expireTime; + + @Schema(description = "最后结算时间") + private String settlementTime; + + @Schema(description = "资质") + private String aptitude; + + @Schema(description = "行业类型(父级)") + private String industryParent; + + @Schema(description = "行业类型(子级)") + private String industryChild; + + @Schema(description = "头衔") + private String title; + + @Schema(description = "安装的产品ID") + @QueryField(type = QueryType.EQ) + private Integer templateId; + + @Schema(description = "插件安装状态(仅对超超管判断) 0未安装 1已安装 ") + @QueryField(type = QueryType.EQ) + private Integer installed; + + @Schema(description = "特长") + private String speciality; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "状态, 0在线, 1离线") + @QueryField(type = QueryType.EQ) + private Integer status; + + @Schema(description = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/shop/param/ShopUsersParam.java b/src/main/java/com/gxwebsoft/shop/param/ShopUsersParam.java deleted file mode 100644 index d7211cb..0000000 --- a/src/main/java/com/gxwebsoft/shop/param/ShopUsersParam.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gxwebsoft.shop.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 查询参数 - * - * @author 科技小王子 - * @since 2025-01-11 10:45:13 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@Schema(name = "ShopUsersParam对象", description = "查询参数") -public class ShopUsersParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @Schema(description = "用户唯一小程序id") - private String openId; - - @Schema(description = "小程序用户秘钥") - private String sessionKey; - - @Schema(description = "用户名") - private String username; - - @Schema(description = "头像地址") - private String avatarUrl; - - @Schema(description = "1男,2女") - @QueryField(type = QueryType.EQ) - private Boolean gender; - - @Schema(description = "国家") - private String country; - - @Schema(description = "省份") - private String province; - - @Schema(description = "城市") - private String city; - - @Schema(description = "手机号码") - private String phone; - - @Schema(description = "积分") - @QueryField(type = QueryType.EQ) - private BigDecimal integral; - - @Schema(description = "余额") - @QueryField(type = QueryType.EQ) - private BigDecimal money; - - @Schema(description = "排序号") - @QueryField(type = QueryType.EQ) - private Integer sortNumber; - - private String idCard; - - private String realName; - - @Schema(description = "是否管理员:1是;2否") - @QueryField(type = QueryType.EQ) - private Boolean isAdmin; - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/ShopUserService.java b/src/main/java/com/gxwebsoft/shop/service/ShopUserService.java new file mode 100644 index 0000000..52d8fba --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/ShopUserService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.shop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.entity.ShopUser; +import com.gxwebsoft.shop.param.ShopUserParam; + +import java.util.List; + +/** + * 用户记录表Service + * + * @author 科技小王子 + * @since 2025-10-03 13:41:09 + */ +public interface ShopUserService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ShopUserParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ShopUserParam param); + + /** + * 根据id查询 + * + * @param userId 用户id + * @return ShopUser + */ + ShopUser getByIdRel(Integer userId); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/ShopUsersService.java b/src/main/java/com/gxwebsoft/shop/service/ShopUsersService.java deleted file mode 100644 index 538451b..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/ShopUsersService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.shop.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.shop.entity.ShopUsers; -import com.gxwebsoft.shop.param.ShopUsersParam; - -import java.util.List; - -/** - * Service - * - * @author 科技小王子 - * @since 2025-01-11 10:45:13 - */ -public interface ShopUsersService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(ShopUsersParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(ShopUsersParam param); - - /** - * 根据id查询 - * - * @param id - * @return ShopUsers - */ - ShopUsers getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopUserServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopUserServiceImpl.java new file mode 100644 index 0000000..9d7cde5 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/ShopUserServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.entity.ShopUser; +import com.gxwebsoft.shop.mapper.ShopUserMapper; +import com.gxwebsoft.shop.param.ShopUserParam; +import com.gxwebsoft.shop.service.ShopUserService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 用户记录表Service实现 + * + * @author 科技小王子 + * @since 2025-10-03 13:41:09 + */ +@Service +public class ShopUserServiceImpl extends ServiceImpl implements ShopUserService { + + @Override + public PageResult pageRel(ShopUserParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(ShopUserParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public ShopUser getByIdRel(Integer userId) { + ShopUserParam param = new ShopUserParam(); + param.setUserId(userId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopUsersServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopUsersServiceImpl.java deleted file mode 100644 index 73092ee..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/impl/ShopUsersServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.shop.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.shop.mapper.ShopUsersMapper; -import com.gxwebsoft.shop.service.ShopUsersService; -import com.gxwebsoft.shop.entity.ShopUsers; -import com.gxwebsoft.shop.param.ShopUsersParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * Service实现 - * - * @author 科技小王子 - * @since 2025-01-11 10:45:13 - */ -@Service -public class ShopUsersServiceImpl extends ServiceImpl implements ShopUsersService { - - @Override - public PageResult pageRel(ShopUsersParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(ShopUsersParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public ShopUsers getByIdRel(Integer id) { - ShopUsersParam param = new ShopUsersParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -}