From 0cd1cb26f1c7630bc72bf061c70ea5d562fb56d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Fri, 30 Jan 2026 16:21:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(shop):=20=E6=96=B0=E5=A2=9E=E9=97=A8?= =?UTF-8?q?=E5=BA=97=E3=80=81=E9=85=8D=E9=80=81=E5=91=98=E5=92=8C=E5=BA=97?= =?UTF-8?q?=E5=91=98=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建 ShopStore 实体类,包含门店基本信息字段 - 实现 ShopStoreController 提供门店的增删改查和分页功能 - 添加 ShopStoreMapper 和对应的 XML 映射文件 - 创建 ShopStoreParam 查询参数类 - 创建 ShopStoreRider 实体类,包含配送员详细信息 - 实现 ShopStoreRiderController 管理配送员相关操作 - 添加 ShopStoreRiderMapper 和 XML 映射配置 - 创建 ShopStoreRiderParam 查询参数类 - 实现 ShopStoreRiderService 业务逻辑层接口及其实现 - 创建 ShopStoreUser 实体类用于管理店员信息 - 实现 ShopStoreUserController 提供店员管理功能 - 添加相应的 Service 层接口和服务实现类 - 配置权限控制注解和 Swagger 文档注解 - 实现批量操作功能包括批量添加、修改和删除 - 添加分页查询和列表查询的关联查询功能 --- .../shop/controller/ShopStoreController.java | 125 +++++++++++++++++ .../controller/ShopStoreRiderController.java | 128 ++++++++++++++++++ .../controller/ShopStoreUserController.java | 126 +++++++++++++++++ .../com/gxwebsoft/shop/entity/ShopStore.java | 81 +++++++++++ .../gxwebsoft/shop/entity/ShopStoreRider.java | 97 +++++++++++++ .../gxwebsoft/shop/entity/ShopStoreUser.java | 54 ++++++++ .../shop/mapper/ShopStoreMapper.java | 37 +++++ .../shop/mapper/ShopStoreRiderMapper.java | 37 +++++ .../shop/mapper/ShopStoreUserMapper.java | 37 +++++ .../shop/mapper/xml/ShopStoreMapper.xml | 75 ++++++++++ .../shop/mapper/xml/ShopStoreRiderMapper.xml | 93 +++++++++++++ .../shop/mapper/xml/ShopStoreUserMapper.xml | 51 +++++++ .../gxwebsoft/shop/param/ShopStoreParam.java | 74 ++++++++++ .../shop/param/ShopStoreRiderParam.java | 99 ++++++++++++++ .../shop/param/ShopStoreUserParam.java | 48 +++++++ .../shop/service/ShopStoreRiderService.java | 42 ++++++ .../shop/service/ShopStoreService.java | 42 ++++++ .../shop/service/ShopStoreUserService.java | 42 ++++++ .../impl/ShopStoreRiderServiceImpl.java | 47 +++++++ .../service/impl/ShopStoreServiceImpl.java | 47 +++++++ .../impl/ShopStoreUserServiceImpl.java | 47 +++++++ 21 files changed, 1429 insertions(+) create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreController.java create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreRiderController.java create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreUserController.java create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStore.java create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStoreRider.java create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStoreUser.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreMapper.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreRiderMapper.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreUserMapper.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreMapper.xml create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreRiderMapper.xml create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreUserMapper.xml create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreParam.java create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreRiderParam.java create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreUserParam.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreRiderService.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreService.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreUserService.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreRiderServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreUserServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopStoreController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopStoreController.java new file mode 100644 index 0000000..b89a714 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopStoreController.java @@ -0,0 +1,125 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.ShopStoreService; +import com.gxwebsoft.shop.entity.ShopStore; +import com.gxwebsoft.shop.param.ShopStoreParam; +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 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 2026-01-30 15:00:25 + */ +@Tag(name = "门店管理") +@RestController +@RequestMapping("/api/shop/shop-store") +public class ShopStoreController extends BaseController { + @Resource + private ShopStoreService shopStoreService; + + @Operation(summary = "分页查询门店") + @GetMapping("/page") + public ApiResult> page(ShopStoreParam param) { + // 使用关联查询 + return success(shopStoreService.pageRel(param)); + } + + @Operation(summary = "查询全部门店") + @GetMapping() + public ApiResult> list(ShopStoreParam param) { + // 使用关联查询 + return success(shopStoreService.listRel(param)); + } + + @Operation(summary = "根据id查询门店") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(shopStoreService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('shop:shopStore:save')") + @OperationLog + @Operation(summary = "添加门店") + @PostMapping() + public ApiResult save(@RequestBody ShopStore shopStore) { + // 记录当前登录用户id + // User loginUser = getLoginUser(); + // if (loginUser != null) { + // shopStore.setUserId(loginUser.getUserId()); + // } + if (shopStoreService.save(shopStore)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStore:update')") + @OperationLog + @Operation(summary = "修改门店") + @PutMapping() + public ApiResult update(@RequestBody ShopStore shopStore) { + if (shopStoreService.updateById(shopStore)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStore:remove')") + @OperationLog + @Operation(summary = "删除门店") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (shopStoreService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStore:save')") + @OperationLog + @Operation(summary = "批量添加门店") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (shopStoreService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStore:update')") + @OperationLog + @Operation(summary = "批量修改门店") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(shopStoreService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStore:remove')") + @OperationLog + @Operation(summary = "批量删除门店") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (shopStoreService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopStoreRiderController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopStoreRiderController.java new file mode 100644 index 0000000..7b4a292 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopStoreRiderController.java @@ -0,0 +1,128 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.ShopStoreRiderService; +import com.gxwebsoft.shop.entity.ShopStoreRider; +import com.gxwebsoft.shop.param.ShopStoreRiderParam; +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 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 2026-01-30 15:14:16 + */ +@Tag(name = "配送员管理") +@RestController +@RequestMapping("/api/shop/shop-store-rider") +public class ShopStoreRiderController extends BaseController { + @Resource + private ShopStoreRiderService shopStoreRiderService; + + @PreAuthorize("hasAuthority('shop:shopStoreRider:list')") + @Operation(summary = "分页查询配送员") + @GetMapping("/page") + public ApiResult> page(ShopStoreRiderParam param) { + // 使用关联查询 + return success(shopStoreRiderService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:list')") + @Operation(summary = "查询全部配送员") + @GetMapping() + public ApiResult> list(ShopStoreRiderParam param) { + // 使用关联查询 + return success(shopStoreRiderService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:list')") + @Operation(summary = "根据id查询配送员") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Long id) { + // 使用关联查询 + return success(shopStoreRiderService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:save')") + @OperationLog + @Operation(summary = "添加配送员") + @PostMapping() + public ApiResult save(@RequestBody ShopStoreRider shopStoreRider) { + // 记录当前登录用户id + // User loginUser = getLoginUser(); + // if (loginUser != null) { + // shopStoreRider.setUserId(loginUser.getUserId()); + // } + if (shopStoreRiderService.save(shopStoreRider)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:update')") + @OperationLog + @Operation(summary = "修改配送员") + @PutMapping() + public ApiResult update(@RequestBody ShopStoreRider shopStoreRider) { + if (shopStoreRiderService.updateById(shopStoreRider)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:remove')") + @OperationLog + @Operation(summary = "删除配送员") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (shopStoreRiderService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:save')") + @OperationLog + @Operation(summary = "批量添加配送员") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (shopStoreRiderService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:update')") + @OperationLog + @Operation(summary = "批量修改配送员") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(shopStoreRiderService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreRider:remove')") + @OperationLog + @Operation(summary = "批量删除配送员") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (shopStoreRiderService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopStoreUserController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopStoreUserController.java new file mode 100644 index 0000000..d76771f --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopStoreUserController.java @@ -0,0 +1,126 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.ShopStoreUserService; +import com.gxwebsoft.shop.entity.ShopStoreUser; +import com.gxwebsoft.shop.param.ShopStoreUserParam; +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 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 2026-01-30 15:00:25 + */ +@Tag(name = "店员管理") +@RestController +@RequestMapping("/api/shop/shop-store-user") +public class ShopStoreUserController extends BaseController { + @Resource + private ShopStoreUserService shopStoreUserService; + + @Operation(summary = "分页查询店员") + @GetMapping("/page") + public ApiResult> page(ShopStoreUserParam param) { + // 使用关联查询 + return success(shopStoreUserService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('shop:shopStoreUser:list')") + @Operation(summary = "查询全部店员") + @GetMapping() + public ApiResult> list(ShopStoreUserParam param) { + // 使用关联查询 + return success(shopStoreUserService.listRel(param)); + } + + @Operation(summary = "根据id查询店员") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(shopStoreUserService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('shop:shopStoreUser:save')") + @OperationLog + @Operation(summary = "添加店员") + @PostMapping() + public ApiResult save(@RequestBody ShopStoreUser shopStoreUser) { + // 记录当前登录用户id + // User loginUser = getLoginUser(); + // if (loginUser != null) { + // shopStoreUser.setUserId(loginUser.getUserId()); + // } + if (shopStoreUserService.save(shopStoreUser)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreUser:update')") + @OperationLog + @Operation(summary = "修改店员") + @PutMapping() + public ApiResult update(@RequestBody ShopStoreUser shopStoreUser) { + if (shopStoreUserService.updateById(shopStoreUser)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreUser:remove')") + @OperationLog + @Operation(summary = "删除店员") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (shopStoreUserService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreUser:save')") + @OperationLog + @Operation(summary = "批量添加店员") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (shopStoreUserService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreUser:update')") + @OperationLog + @Operation(summary = "批量修改店员") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(shopStoreUserService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopStoreUser:remove')") + @OperationLog + @Operation(summary = "批量删除店员") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (shopStoreUserService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopStore.java b/src/main/java/com/gxwebsoft/shop/entity/ShopStore.java new file mode 100644 index 0000000..e3aeb64 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/ShopStore.java @@ -0,0 +1,81 @@ +package com.gxwebsoft.shop.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; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 门店 + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(name = "ShopStore对象", description = "门店") +public class ShopStore implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "自增ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "店铺名称") + private String shopName; + + @Schema(description = "门店地址") + private String shopAddress; + + @Schema(description = "手机号码") + private String phone; + + @Schema(description = "邮箱") + private String email; + + @Schema(description = "门店经理") + private String managerName; + + @Schema(description = "门店banner") + private String shopBanner; + + @Schema(description = "所在省份") + private String province; + + @Schema(description = "所在城市") + private String city; + + @Schema(description = "所在辖区") + private String region; + + @Schema(description = "经度和纬度") + private String lngAndLat; + + @Schema(description = "用户ID") + private Integer userId; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + private Integer sortNumber; + + @Schema(description = "是否删除") + private Integer isDelete; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Schema(description = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopStoreRider.java b/src/main/java/com/gxwebsoft/shop/entity/ShopStoreRider.java new file mode 100644 index 0000000..756232e --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/ShopStoreRider.java @@ -0,0 +1,97 @@ +package com.gxwebsoft.shop.entity; + +import java.math.BigDecimal; +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; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 配送员 + * + * @author 科技小王子 + * @since 2026-01-30 15:14:15 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(name = "ShopStoreRider对象", description = "配送员") +public class ShopStoreRider implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @Schema(description = "配送点ID(shop_dealer.id)") + private Integer dealerId; + + @Schema(description = "骑手编号(可选)") + private String riderNo; + + @Schema(description = "姓名") + private String realName; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "身份证号(可选)") + private String idCardNo; + + @Schema(description = "状态:1启用;0禁用") + private Integer status; + + @Schema(description = "接单状态:0休息/下线;1在线;2忙碌") + private Integer workStatus; + + @Schema(description = "是否开启自动派单:1是;0否") + private Integer autoDispatchEnabled; + + @Schema(description = "派单优先级(同小区多骑手时可用,值越大越优先)") + private Integer dispatchPriority; + + @Schema(description = "最大同时配送单数(0表示不限制)") + private Integer maxOnhandOrders; + + @Schema(description = "是否计算工资(提成):1计算;0不计算(如三方配送点可设0)") + private Integer commissionCalcEnabled; + + @Schema(description = "水每桶提成金额(元/桶)") + private BigDecimal waterBucketUnitFee; + + @Schema(description = "其他商品提成方式:1按订单固定金额;2按订单金额比例;3按商品规则(另表)") + private Integer otherGoodsCommissionType; + + @Schema(description = "其他商品提成值:固定金额(元)或比例(%)") + private BigDecimal otherGoodsCommissionValue; + + @Schema(description = "用户ID") + private Integer userId; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + private Integer sortNumber; + + @Schema(description = "是否删除") + private Integer isDelete; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Schema(description = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopStoreUser.java b/src/main/java/com/gxwebsoft/shop/entity/ShopStoreUser.java new file mode 100644 index 0000000..de0d43f --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/ShopStoreUser.java @@ -0,0 +1,54 @@ +package com.gxwebsoft.shop.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; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 店员 + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(name = "ShopStoreUser对象", description = "店员") +public class ShopStoreUser implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "配送点ID(shop_dealer.id)") + private Integer storeId; + + @Schema(description = "用户ID") + private Integer userId; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + private Integer sortNumber; + + @Schema(description = "是否删除") + private Integer isDelete; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Schema(description = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreMapper.java new file mode 100644 index 0000000..1c56da8 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.ShopStore; +import com.gxwebsoft.shop.param.ShopStoreParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 门店Mapper + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +public interface ShopStoreMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ShopStoreParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ShopStoreParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreRiderMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreRiderMapper.java new file mode 100644 index 0000000..eacdf13 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreRiderMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.ShopStoreRider; +import com.gxwebsoft.shop.param.ShopStoreRiderParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 配送员Mapper + * + * @author 科技小王子 + * @since 2026-01-30 15:14:15 + */ +public interface ShopStoreRiderMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ShopStoreRiderParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ShopStoreRiderParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreUserMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreUserMapper.java new file mode 100644 index 0000000..3607f9c --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/ShopStoreUserMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.ShopStoreUser; +import com.gxwebsoft.shop.param.ShopStoreUserParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 店员Mapper + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +public interface ShopStoreUserMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ShopStoreUserParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ShopStoreUserParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreMapper.xml new file mode 100644 index 0000000..ebd5edd --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreMapper.xml @@ -0,0 +1,75 @@ + + + + + + + SELECT a.* + FROM shop_store a + + + AND a.id = #{param.id} + + + AND a.shop_name LIKE CONCAT('%', #{param.shopName}, '%') + + + AND a.shop_address LIKE CONCAT('%', #{param.shopAddress}, '%') + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.email LIKE CONCAT('%', #{param.email}, '%') + + + AND a.manager_name LIKE CONCAT('%', #{param.managerName}, '%') + + + AND a.province LIKE CONCAT('%', #{param.province}, '%') + + + AND a.city LIKE CONCAT('%', #{param.city}, '%') + + + AND a.region LIKE CONCAT('%', #{param.region}, '%') + + + AND a.lng_and_lat LIKE CONCAT('%', #{param.lngAndLat}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.is_delete = #{param.isDelete} + + + 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/ShopStoreRiderMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreRiderMapper.xml new file mode 100644 index 0000000..eb17324 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreRiderMapper.xml @@ -0,0 +1,93 @@ + + + + + + + SELECT a.* + FROM shop_store_rider a + + + AND a.id = #{param.id} + + + AND a.dealer_id = #{param.dealerId} + + + AND a.rider_no LIKE CONCAT('%', #{param.riderNo}, '%') + + + AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') + + + AND a.mobile LIKE CONCAT('%', #{param.mobile}, '%') + + + AND a.avatar LIKE CONCAT('%', #{param.avatar}, '%') + + + AND a.id_card_no LIKE CONCAT('%', #{param.idCardNo}, '%') + + + AND a.status = #{param.status} + + + AND a.work_status = #{param.workStatus} + + + AND a.auto_dispatch_enabled = #{param.autoDispatchEnabled} + + + AND a.dispatch_priority = #{param.dispatchPriority} + + + AND a.max_onhand_orders = #{param.maxOnhandOrders} + + + AND a.commission_calc_enabled = #{param.commissionCalcEnabled} + + + AND a.water_bucket_unit_fee = #{param.waterBucketUnitFee} + + + AND a.other_goods_commission_type = #{param.otherGoodsCommissionType} + + + AND a.other_goods_commission_value = #{param.otherGoodsCommissionValue} + + + AND a.user_id = #{param.userId} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.is_delete = #{param.isDelete} + + + 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/ShopStoreUserMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreUserMapper.xml new file mode 100644 index 0000000..2a8df9c --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreUserMapper.xml @@ -0,0 +1,51 @@ + + + + + + + SELECT a.* + FROM shop_store_user a + + + AND a.id = #{param.id} + + + AND a.store_id = #{param.storeId} + + + AND a.user_id = #{param.userId} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.is_delete = #{param.isDelete} + + + 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/param/ShopStoreParam.java b/src/main/java/com/gxwebsoft/shop/param/ShopStoreParam.java new file mode 100644 index 0000000..94c3a15 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/ShopStoreParam.java @@ -0,0 +1,74 @@ +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 lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 门店查询参数 + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(name = "ShopStoreParam对象", description = "门店查询参数") +public class ShopStoreParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "店铺名称") + private String shopName; + + @Schema(description = "门店地址") + private String shopAddress; + + @Schema(description = "手机号码") + private String phone; + + @Schema(description = "邮箱") + private String email; + + @Schema(description = "门店经理") + private String managerName; + + @Schema(description = "门店banner") + private String shopBanner; + + @Schema(description = "所在省份") + private String province; + + @Schema(description = "所在城市") + private String city; + + @Schema(description = "所在辖区") + private String region; + + @Schema(description = "经度和纬度") + private String lngAndLat; + + @Schema(description = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "是否删除") + @QueryField(type = QueryType.EQ) + private Integer isDelete; + +} diff --git a/src/main/java/com/gxwebsoft/shop/param/ShopStoreRiderParam.java b/src/main/java/com/gxwebsoft/shop/param/ShopStoreRiderParam.java new file mode 100644 index 0000000..b0d0961 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/ShopStoreRiderParam.java @@ -0,0 +1,99 @@ +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 lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 配送员查询参数 + * + * @author 科技小王子 + * @since 2026-01-30 15:14:15 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(name = "ShopStoreRiderParam对象", description = "配送员查询参数") +public class ShopStoreRiderParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @QueryField(type = QueryType.EQ) + private Long id; + + @Schema(description = "配送点ID(shop_dealer.id)") + @QueryField(type = QueryType.EQ) + private Integer dealerId; + + @Schema(description = "骑手编号(可选)") + private String riderNo; + + @Schema(description = "姓名") + private String realName; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "身份证号(可选)") + private String idCardNo; + + @Schema(description = "状态:1启用;0禁用") + @QueryField(type = QueryType.EQ) + private Integer status; + + @Schema(description = "接单状态:0休息/下线;1在线;2忙碌") + @QueryField(type = QueryType.EQ) + private Integer workStatus; + + @Schema(description = "是否开启自动派单:1是;0否") + @QueryField(type = QueryType.EQ) + private Integer autoDispatchEnabled; + + @Schema(description = "派单优先级(同小区多骑手时可用,值越大越优先)") + @QueryField(type = QueryType.EQ) + private Integer dispatchPriority; + + @Schema(description = "最大同时配送单数(0表示不限制)") + @QueryField(type = QueryType.EQ) + private Integer maxOnhandOrders; + + @Schema(description = "是否计算工资(提成):1计算;0不计算(如三方配送点可设0)") + @QueryField(type = QueryType.EQ) + private Integer commissionCalcEnabled; + + @Schema(description = "水每桶提成金额(元/桶)") + @QueryField(type = QueryType.EQ) + private BigDecimal waterBucketUnitFee; + + @Schema(description = "其他商品提成方式:1按订单固定金额;2按订单金额比例;3按商品规则(另表)") + @QueryField(type = QueryType.EQ) + private Integer otherGoodsCommissionType; + + @Schema(description = "其他商品提成值:固定金额(元)或比例(%)") + @QueryField(type = QueryType.EQ) + private BigDecimal otherGoodsCommissionValue; + + @Schema(description = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "是否删除") + @QueryField(type = QueryType.EQ) + private Integer isDelete; + +} diff --git a/src/main/java/com/gxwebsoft/shop/param/ShopStoreUserParam.java b/src/main/java/com/gxwebsoft/shop/param/ShopStoreUserParam.java new file mode 100644 index 0000000..392f891 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/ShopStoreUserParam.java @@ -0,0 +1,48 @@ +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 lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 店员查询参数 + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(name = "ShopStoreUserParam对象", description = "店员查询参数") +public class ShopStoreUserParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "配送点ID(shop_dealer.id)") + @QueryField(type = QueryType.EQ) + private Integer storeId; + + @Schema(description = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "是否删除") + @QueryField(type = QueryType.EQ) + private Integer isDelete; + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/ShopStoreRiderService.java b/src/main/java/com/gxwebsoft/shop/service/ShopStoreRiderService.java new file mode 100644 index 0000000..cc958af --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/ShopStoreRiderService.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.ShopStoreRider; +import com.gxwebsoft.shop.param.ShopStoreRiderParam; + +import java.util.List; + +/** + * 配送员Service + * + * @author 科技小王子 + * @since 2026-01-30 15:14:15 + */ +public interface ShopStoreRiderService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ShopStoreRiderParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ShopStoreRiderParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return ShopStoreRider + */ + ShopStoreRider getByIdRel(Long id); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/ShopStoreService.java b/src/main/java/com/gxwebsoft/shop/service/ShopStoreService.java new file mode 100644 index 0000000..ed8d230 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/ShopStoreService.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.ShopStore; +import com.gxwebsoft.shop.param.ShopStoreParam; + +import java.util.List; + +/** + * 门店Service + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +public interface ShopStoreService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ShopStoreParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ShopStoreParam param); + + /** + * 根据id查询 + * + * @param id 自增ID + * @return ShopStore + */ + ShopStore getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/ShopStoreUserService.java b/src/main/java/com/gxwebsoft/shop/service/ShopStoreUserService.java new file mode 100644 index 0000000..62e3d46 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/ShopStoreUserService.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.ShopStoreUser; +import com.gxwebsoft.shop.param.ShopStoreUserParam; + +import java.util.List; + +/** + * 店员Service + * + * @author 科技小王子 + * @since 2026-01-30 15:00:25 + */ +public interface ShopStoreUserService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ShopStoreUserParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ShopStoreUserParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return ShopStoreUser + */ + ShopStoreUser getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreRiderServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreRiderServiceImpl.java new file mode 100644 index 0000000..e233fc3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreRiderServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.ShopStoreRiderMapper; +import com.gxwebsoft.shop.service.ShopStoreRiderService; +import com.gxwebsoft.shop.entity.ShopStoreRider; +import com.gxwebsoft.shop.param.ShopStoreRiderParam; +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 2026-01-30 15:14:15 + */ +@Service +public class ShopStoreRiderServiceImpl extends ServiceImpl implements ShopStoreRiderService { + + @Override + public PageResult pageRel(ShopStoreRiderParam 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(ShopStoreRiderParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public ShopStoreRider getByIdRel(Long id) { + ShopStoreRiderParam param = new ShopStoreRiderParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreServiceImpl.java new file mode 100644 index 0000000..3e9f2f4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.ShopStoreMapper; +import com.gxwebsoft.shop.service.ShopStoreService; +import com.gxwebsoft.shop.entity.ShopStore; +import com.gxwebsoft.shop.param.ShopStoreParam; +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 2026-01-30 15:00:25 + */ +@Service +public class ShopStoreServiceImpl extends ServiceImpl implements ShopStoreService { + + @Override + public PageResult pageRel(ShopStoreParam 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(ShopStoreParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public ShopStore getByIdRel(Integer id) { + ShopStoreParam param = new ShopStoreParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreUserServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreUserServiceImpl.java new file mode 100644 index 0000000..4152b7d --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreUserServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.ShopStoreUserMapper; +import com.gxwebsoft.shop.service.ShopStoreUserService; +import com.gxwebsoft.shop.entity.ShopStoreUser; +import com.gxwebsoft.shop.param.ShopStoreUserParam; +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 2026-01-30 15:00:25 + */ +@Service +public class ShopStoreUserServiceImpl extends ServiceImpl implements ShopStoreUserService { + + @Override + public PageResult pageRel(ShopStoreUserParam 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(ShopStoreUserParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public ShopStoreUser getByIdRel(Integer id) { + ShopStoreUserParam param = new ShopStoreUserParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +}