From 7553c3a1fdc0873cb11d7b34db00bc06837aaf9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sat, 6 Sep 2025 18:26:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(shop):=20=E6=B7=BB=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E9=94=80=E5=95=86=E6=8F=90=E7=8E=B0=E9=93=B6=E8=A1=8C=E5=8D=A1?= =?UTF-8?q?=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 - 新增 ShopDealerBank 实体类 - 新增 ShopDealerBankMapper 和 XML映射文件 - 新增 ShopDealerBankService 接口及实现类 - 新增 ShopDealerBankController 控制器 - 新增 ShopDealerBankParam 查询参数类 --- .../controller/ShopDealerBankController.java | 128 ++++++++++++++++++ .../gxwebsoft/shop/entity/ShopDealerBank.java | 58 ++++++++ .../shop/mapper/ShopDealerBankMapper.java | 37 +++++ .../shop/mapper/xml/ShopDealerBankMapper.xml | 57 ++++++++ .../shop/param/ShopDealerBankParam.java | 54 ++++++++ .../shop/service/ShopDealerBankService.java | 42 ++++++ .../impl/ShopDealerBankServiceImpl.java | 47 +++++++ 7 files changed, 423 insertions(+) create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerBankController.java create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerBank.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerBankMapper.java create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerBankMapper.xml create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerBankParam.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerBankService.java create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerBankServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopDealerBankController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerBankController.java new file mode 100644 index 0000000..fa19c80 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerBankController.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.ShopDealerBank; +import com.gxwebsoft.shop.param.ShopDealerBankParam; +import com.gxwebsoft.shop.service.ShopDealerBankService; +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-08-11 23:51:41 + */ +@Tag(name = "分销商提现银行卡管理") +@RestController +@RequestMapping("/api/shop/shop-dealer-bank") +public class ShopDealerBankController extends BaseController { + @Resource + private ShopDealerBankService shopDealerBankService; + + @PreAuthorize("hasAuthority('shop:shopDealerBank:list')") + @Operation(summary = "分页查询分销商提现银行卡") + @GetMapping("/page") + public ApiResult> page(ShopDealerBankParam param) { + // 使用关联查询 + return success(shopDealerBankService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:list')") + @Operation(summary = "查询全部分销商提现银行卡") + @GetMapping() + public ApiResult> list(ShopDealerBankParam param) { + // 使用关联查询 + return success(shopDealerBankService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:list')") + @Operation(summary = "根据id查询分销商提现银行卡") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(shopDealerBankService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:save')") + @OperationLog + @Operation(summary = "添加分销商提现银行卡") + @PostMapping() + public ApiResult save(@RequestBody ShopDealerBank shopDealerBank) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + shopDealerBank.setUserId(loginUser.getUserId()); + } + if (shopDealerBankService.save(shopDealerBank)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:update')") + @OperationLog + @Operation(summary = "修改分销商提现银行卡") + @PutMapping() + public ApiResult update(@RequestBody ShopDealerBank shopDealerBank) { + if (shopDealerBankService.updateById(shopDealerBank)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:remove')") + @OperationLog + @Operation(summary = "删除分销商提现银行卡") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (shopDealerBankService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:save')") + @OperationLog + @Operation(summary = "批量添加分销商提现银行卡") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (shopDealerBankService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:update')") + @OperationLog + @Operation(summary = "批量修改分销商提现银行卡") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(shopDealerBankService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('shop:shopDealerBank:remove')") + @OperationLog + @Operation(summary = "批量删除分销商提现银行卡") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (shopDealerBankService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopDealerBank.java b/src/main/java/com/gxwebsoft/shop/entity/ShopDealerBank.java new file mode 100644 index 0000000..bb3cb9c --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/ShopDealerBank.java @@ -0,0 +1,58 @@ +package com.gxwebsoft.shop.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 分销商提现银行卡 + * + * @author 科技小王子 + * @since 2025-08-11 23:51:41 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(name = "ShopDealerBank对象", description = "分销商提现银行卡") +public class ShopDealerBank implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "分销商用户ID") + private Integer userId; + + @Schema(description = "开户行名称") + private String bankName; + + @Schema(description = "银行开户名") + private String bankAccount; + + @Schema(description = "银行卡号") + private String bankCard; + + @Schema(description = "申请状态 (10待审核 20审核通过 30驳回)") + private Integer applyStatus; + + @Schema(description = "驳回原因") + private String rejectReason; + + @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/ShopDealerBankMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/ShopDealerBankMapper.java new file mode 100644 index 0000000..2ec78ed --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/ShopDealerBankMapper.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.ShopDealerBank; +import com.gxwebsoft.shop.param.ShopDealerBankParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 分销商提现银行卡Mapper + * + * @author 科技小王子 + * @since 2025-08-11 23:51:41 + */ +public interface ShopDealerBankMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ShopDealerBankParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ShopDealerBankParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerBankMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerBankMapper.xml new file mode 100644 index 0000000..9ac5893 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerBankMapper.xml @@ -0,0 +1,57 @@ + + + + + + + SELECT a.* + FROM shop_dealer_bank a + + + AND a.id = #{param.id} + + + AND a.user_id = #{param.userId} + + + AND a.bank_name LIKE CONCAT('%', #{param.bankName}, '%') + + + AND a.bank_account LIKE CONCAT('%', #{param.bankAccount}, '%') + + + AND a.bank_card LIKE CONCAT('%', #{param.bankCard}, '%') + + + AND a.apply_status = #{param.applyStatus} + + + AND a.audit_time = #{param.auditTime} + + + AND a.reject_reason LIKE CONCAT('%', #{param.rejectReason}, '%') + + + 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/ShopDealerBankParam.java b/src/main/java/com/gxwebsoft/shop/param/ShopDealerBankParam.java new file mode 100644 index 0000000..1bbe158 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/ShopDealerBankParam.java @@ -0,0 +1,54 @@ +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-08-11 23:51:41 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(name = "ShopDealerBankParam对象", description = "分销商提现银行卡查询参数") +public class ShopDealerBankParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "分销商用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @Schema(description = "开户行名称") + private String bankName; + + @Schema(description = "银行开户名") + private String bankAccount; + + @Schema(description = "银行卡号") + private String bankCard; + + @Schema(description = "申请状态 (10待审核 20审核通过 30驳回)") + @QueryField(type = QueryType.EQ) + private Integer applyStatus; + + @Schema(description = "审核时间") + @QueryField(type = QueryType.EQ) + private Integer auditTime; + + @Schema(description = "驳回原因") + private String rejectReason; + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/ShopDealerBankService.java b/src/main/java/com/gxwebsoft/shop/service/ShopDealerBankService.java new file mode 100644 index 0000000..e0d9efd --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/ShopDealerBankService.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.ShopDealerBank; +import com.gxwebsoft.shop.param.ShopDealerBankParam; + +import java.util.List; + +/** + * 分销商提现银行卡Service + * + * @author 科技小王子 + * @since 2025-08-11 23:51:41 + */ +public interface ShopDealerBankService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ShopDealerBankParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ShopDealerBankParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return ShopDealerBank + */ + ShopDealerBank getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerBankServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerBankServiceImpl.java new file mode 100644 index 0000000..da65388 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerBankServiceImpl.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.ShopDealerBank; +import com.gxwebsoft.shop.mapper.ShopDealerBankMapper; +import com.gxwebsoft.shop.param.ShopDealerBankParam; +import com.gxwebsoft.shop.service.ShopDealerBankService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 分销商提现银行卡Service实现 + * + * @author 科技小王子 + * @since 2025-08-11 23:51:41 + */ +@Service +public class ShopDealerBankServiceImpl extends ServiceImpl implements ShopDealerBankService { + + @Override + public PageResult pageRel(ShopDealerBankParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(ShopDealerBankParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public ShopDealerBank getByIdRel(Integer id) { + ShopDealerBankParam param = new ShopDealerBankParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +}