From 6e39b9084082ac57426b5bf2a43209ad9849f268 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 16 Oct 2025 11:17:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=20=E4=BD=99=E9=A2=9D=20?= =?UTF-8?q?=E7=9F=AD=E4=BF=A1=20=E4=BD=99=E9=A2=9D=20=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/SmsShopTemplateController.java | 92 ++++++++++++++----- .../czg/market/dto/SmsShopMoneyDetailDTO.java | 56 +++++++++++ .../com/czg/market/entity/SmsShopMoney.java | 47 ++++++++++ .../czg/market/entity/SmsShopMoneyDetail.java | 65 +++++++++++++ .../service/SmsShopMoneyDetailService.java | 17 ++++ .../mapper/SmsShopMoneyDetailMapper.java | 14 +++ .../market/mapper/SmsShopMoneyMapper.java | 14 +++ .../impl/SmsShopMoneyDetailServiceImpl.java | 30 ++++++ .../mapper/SmsShopMoneyDetailMapper.xml | 7 ++ .../resources/mapper/SmsShopMoneyMapper.xml | 7 ++ 10 files changed, 324 insertions(+), 25 deletions(-) create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/dto/SmsShopMoneyDetailDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoney.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoneyDetail.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/service/SmsShopMoneyDetailService.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyDetailMapper.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyMapper.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopMoneyDetailServiceImpl.java create mode 100644 cash-service/market-service/src/main/resources/mapper/SmsShopMoneyDetailMapper.xml create mode 100644 cash-service/market-service/src/main/resources/mapper/SmsShopMoneyMapper.xml diff --git a/cash-api/market-server/src/main/java/com/czg/controller/admin/SmsShopTemplateController.java b/cash-api/market-server/src/main/java/com/czg/controller/admin/SmsShopTemplateController.java index ceb79f71..f61ede51 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/admin/SmsShopTemplateController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/admin/SmsShopTemplateController.java @@ -1,56 +1,98 @@ + package com.czg.controller.admin; +import com.czg.market.dto.SmsShopMoneyDetailDTO; import com.czg.market.dto.SmsShopTemplateDTO; +import com.czg.market.entity.SmsShopMoney; +import com.czg.market.service.SmsShopMoneyDetailService; import com.czg.market.service.SmsShopTemplateService; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; +import com.czg.service.market.mapper.SmsShopMoneyMapper; import com.czg.validator.group.InsertGroup; import com.czg.validator.group.UpdateGroup; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.util.List; /** * 短信模板 + * * @author ww * @description */ @Slf4j @RestController -@RequestMapping("/admin/smsTemplate") +@RequestMapping("/admin") public class SmsShopTemplateController { @Resource private SmsShopTemplateService templateService; + @Resource + private SmsShopMoneyDetailService smsMoneyDetailService; + @Resource + private SmsShopMoneyMapper shopMoneyMapper; + +// /** +// * 列表 +// */ +// @GetMapping("/smsTemplate") +// public CzgResult> getTemplateList(@RequestParam(required = false) String title) { +// List data = templateService.getTemplateList(title, StpKit.USER.getShopId()); +// return CzgResult.success(data); +// } +// +// /** +// * 新增 +// */ +// @PostMapping("/smsTemplate") +// public CzgResult addTemplate(@RequestBody @Validated(InsertGroup.class) SmsShopTemplateDTO param) { +// param.setShopId(StpKit.USER.getShopId()); +// templateService.addTemplate(param); +// return CzgResult.success(); +// } +// +// /** +// * 重新提交 +// * 状态为 -1 失败的 可以修改模板重新提交 +// */ +// @PostMapping("/smsTemplate/resubmit") +// public CzgResult resubmit(@RequestBody @Validated(UpdateGroup.class) SmsShopTemplateDTO param) { +// param.setShopId(StpKit.USER.getShopId()); +// templateService.resubmit(param); +// return CzgResult.success(); +// } /** - * 列表 + * 获取店铺短信余额 */ - @GetMapping - public CzgResult> getTemplateList(@RequestParam(required = false) String title) { - List data = templateService.getTemplateList(title, StpKit.USER.getShopId()); + @GetMapping("/smsMoney") + public CzgResult getShopSmsMoney() { + SmsShopMoney shopMoney = shopMoneyMapper.selectOneByQuery( + new QueryWrapper() + .eq(SmsShopMoney::getShopId, StpKit.USER.getShopId()) + ); + if (shopMoney == null) { + shopMoney = new SmsShopMoney(); + shopMoney.setShopId(StpKit.USER.getShopId()); + shopMoney.setMoney(BigDecimal.ZERO); + shopMoneyMapper.insert(shopMoney); + } + return CzgResult.success(shopMoney); + } + + /** + * 获取店铺短信余额明细 + */ + @GetMapping("/smsMoneyDetail") + public CzgResult> getSmsMoneyDetailPage(@RequestParam(required = false) Integer page, + @RequestParam(required = false) Integer size) { + Page data = smsMoneyDetailService.getSmsMoneyDetailPage(StpKit.USER.getShopId()); return CzgResult.success(data); } - /** - * 新增 - */ - @PostMapping - public CzgResult addTemplate(@RequestBody @Validated(InsertGroup.class) SmsShopTemplateDTO param) { - param.setShopId(StpKit.USER.getShopId()); - templateService.addTemplate(param); - return CzgResult.success(); - } - - /** - * 重新提交 - * 状态为 -1 失败的 可以修改模板重新提交 - */ - @PostMapping("/resubmit") - public CzgResult resubmit(@RequestBody @Validated(UpdateGroup.class) SmsShopTemplateDTO param) { - param.setShopId(StpKit.USER.getShopId()); - templateService.resubmit(param); - return CzgResult.success(); - } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SmsShopMoneyDetailDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SmsShopMoneyDetailDTO.java new file mode 100644 index 00000000..eca048a0 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SmsShopMoneyDetailDTO.java @@ -0,0 +1,56 @@ + +package com.czg.market.dto; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.experimental.Accessors; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 短信余额明细 实体类。 + * + * @author ww + * @since 2025-10-16 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class SmsShopMoneyDetailDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + private Long shopId; + + /** + * 变动原因 + */ + private String reason; + + /** + * 1+ 2- + */ + private Integer type; + + /** + * 消费值 + */ + private BigDecimal expense; + + /** + * 余额 + */ + private BigDecimal balance; + + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoney.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoney.java new file mode 100644 index 00000000..d6c0b193 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoney.java @@ -0,0 +1,47 @@ +package com.czg.market.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 店铺短信余额 实体类。 + * + * @author ww + * @since 2025-10-16 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("sms_shop_money") +public class SmsShopMoney implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + private Long shopId; + + private BigDecimal money; + + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoneyDetail.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoneyDetail.java new file mode 100644 index 00000000..cc556624 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsShopMoneyDetail.java @@ -0,0 +1,65 @@ +package com.czg.market.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 短信余额明细 实体类。 + * + * @author ww + * @since 2025-10-16 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("sms_shop_money_detail") +public class SmsShopMoneyDetail implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + private Long shopId; + + /** + * 变动原因 + */ + private String reason; + + /** + * 1+ 2- + */ + private Integer type; + + /** + * 消费值 + */ + private BigDecimal expense; + + /** + * 余额 + */ + private BigDecimal balance; + + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + @Column(isLogicDelete = true) + private Integer isDel; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SmsShopMoneyDetailService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SmsShopMoneyDetailService.java new file mode 100644 index 00000000..742156f0 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SmsShopMoneyDetailService.java @@ -0,0 +1,17 @@ +package com.czg.market.service; + +import com.czg.market.dto.SmsShopMoneyDetailDTO; +import com.czg.market.entity.SmsShopMoneyDetail; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.service.IService; + +/** + * 短信余额明细 服务层。 + * + * @author ww + * @since 2025-10-16 + */ +public interface SmsShopMoneyDetailService extends IService { + + Page getSmsMoneyDetailPage(Long shopId); +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyDetailMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyDetailMapper.java new file mode 100644 index 00000000..50aa4d06 --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyDetailMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.market.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.market.entity.SmsShopMoneyDetail; + +/** + * 短信余额明细 映射层。 + * + * @author ww + * @since 2025-10-16 + */ +public interface SmsShopMoneyDetailMapper extends BaseMapper { + +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyMapper.java new file mode 100644 index 00000000..9a5e4d44 --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SmsShopMoneyMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.market.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.market.entity.SmsShopMoney; + +/** + * 店铺短信余额 映射层。 + * + * @author ww + * @since 2025-10-16 + */ +public interface SmsShopMoneyMapper extends BaseMapper { + +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopMoneyDetailServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopMoneyDetailServiceImpl.java new file mode 100644 index 00000000..fe97e420 --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopMoneyDetailServiceImpl.java @@ -0,0 +1,30 @@ +package com.czg.service.market.service.impl; + +import com.czg.market.dto.SmsShopMoneyDetailDTO; +import com.czg.market.entity.SmsShopMoneyDetail; +import com.czg.market.service.SmsShopMoneyDetailService; +import com.czg.service.market.mapper.SmsShopMoneyDetailMapper; +import com.czg.utils.PageUtil; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 短信余额明细 服务层实现。 + * + * @author ww + * @since 2025-10-16 + */ +@Service +public class SmsShopMoneyDetailServiceImpl extends ServiceImpl implements SmsShopMoneyDetailService { + + @Override + public Page getSmsMoneyDetailPage(Long shopId) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq(SmsShopMoneyDetail::getShopId, shopId) + .eq(SmsShopMoneyDetail::getIsDel, 0) + .orderBy(SmsShopMoneyDetail::getCreateTime).desc(); + return pageAs(PageUtil.buildPage(), queryWrapper, SmsShopMoneyDetailDTO.class); + } +} diff --git a/cash-service/market-service/src/main/resources/mapper/SmsShopMoneyDetailMapper.xml b/cash-service/market-service/src/main/resources/mapper/SmsShopMoneyDetailMapper.xml new file mode 100644 index 00000000..c617ff13 --- /dev/null +++ b/cash-service/market-service/src/main/resources/mapper/SmsShopMoneyDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/market-service/src/main/resources/mapper/SmsShopMoneyMapper.xml b/cash-service/market-service/src/main/resources/mapper/SmsShopMoneyMapper.xml new file mode 100644 index 00000000..f48bd34b --- /dev/null +++ b/cash-service/market-service/src/main/resources/mapper/SmsShopMoneyMapper.xml @@ -0,0 +1,7 @@ + + + + +