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 447cccf55..7825d4a7a 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,10 +1,7 @@ - package com.czg.controller.admin; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson2.JSONObject; -import com.czg.TimeQueryParam; -import com.czg.annotation.SaAdminCheckLogin; import com.czg.annotation.SaAdminCheckRole; import com.czg.market.dto.SmsMoneyDetailDto; import com.czg.market.dto.SmsShopMoneyDetailDTO; @@ -13,7 +10,9 @@ import com.czg.market.dto.SmsTemplateQueryDTO; import com.czg.market.entity.SmsShopMoney; import com.czg.market.entity.SmsShopMoneyDetail; import com.czg.market.service.SmsShopMoneyDetailService; +import com.czg.market.service.SmsShopMoneyService; import com.czg.market.service.SmsShopTemplateService; +import com.czg.market.vo.SmsShopMoneyVO; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.service.market.mapper.SmsShopMoneyMapper; @@ -44,7 +43,7 @@ public class SmsShopTemplateController { @Resource private SmsShopMoneyDetailService smsMoneyDetailService; @Resource - private SmsShopMoneyMapper shopMoneyMapper; + private SmsShopMoneyService shopMoneyService; /** * 列表 @@ -115,34 +114,31 @@ public class SmsShopTemplateController { */ @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); - } + SmsShopMoney shopMoney = shopMoneyService.getShopMoney(StpKit.USER.getShopId()); return CzgResult.success(shopMoney); } + /** + * 平台:短信店铺配置 + */ + @SaAdminCheckRole("管理员") + @GetMapping("/smsMoney/page") + public CzgResult> getShopSmsMoneyPage(@RequestParam(required = false) Integer page, + @RequestParam(required = false) Integer size, + @RequestParam(required = false) String name + ) { + Page data = shopMoneyService.getShopMoneyPage(page, size, name); + return CzgResult.success(data); + } + + /** * 变更店铺短信余额 */ @PostMapping("/smsMoney/change") public CzgResult change(@RequestBody SmsShopMoneyDetailDTO money) { Long shopId = StpKit.USER.getShopId(); - SmsShopMoney shopMoney = shopMoneyMapper.selectOneByQuery( - new QueryWrapper().eq(SmsShopMoney::getShopId, shopId) - ); - if (shopMoney == null) { - shopMoney = new SmsShopMoney(); - shopMoney.setShopId(shopId); - shopMoney.setMoney(BigDecimal.ZERO); - shopMoneyMapper.insert(shopMoney); - } + SmsShopMoney shopMoney = shopMoneyService.getShopMoney(shopId); SmsShopMoneyDetail moneyDetail = BeanUtil.toBean(money, SmsShopMoneyDetail.class); moneyDetail.setShopId(shopId); if (money.getType() == 1) { @@ -153,7 +149,7 @@ public class SmsShopTemplateController { moneyDetail.setBalance(shopMoney.getMoney()); moneyDetail.setSendRows(0L); smsMoneyDetailService.save(moneyDetail); - shopMoneyMapper.update(shopMoney, true); + shopMoneyService.updateById(shopMoney); return CzgResult.success(); } diff --git a/cash-api/market-server/src/main/java/com/czg/task/AAMarketTasks.java b/cash-api/market-server/src/main/java/com/czg/task/AAMarketTasks.java index a0d2e65f9..d39ba6ca7 100644 --- a/cash-api/market-server/src/main/java/com/czg/task/AAMarketTasks.java +++ b/cash-api/market-server/src/main/java/com/czg/task/AAMarketTasks.java @@ -12,6 +12,7 @@ public class AAMarketTasks { //生日有礼奖励发放 @Resource private BirthdayGiftTask birthdayGiftTask; + //每天12时0分 0秒 执行 @Scheduled(cron = "0 0 12 * * ?") public void birthdayGiftTask() { birthdayGiftTask.deliver(); @@ -21,6 +22,7 @@ public class AAMarketTasks { //优惠券 过期 @Resource private CouponTask couponTask; + //每天每小时的30分 0秒 执行 @Scheduled(cron = "0 30 * * * ? ") public void couponTask() { couponTask.task(); @@ -29,6 +31,7 @@ public class AAMarketTasks { //会员奖励发放 @Resource private MemberTask memberTask; + //每天1点 0分 0秒 执行 @Scheduled(cron = "0 0 1 * * ? ") public void memberTask() { memberTask.task(); @@ -37,10 +40,20 @@ public class AAMarketTasks { //满减活动定时任务 @Resource private DiscountActivityTask discountActivityTask; + //每天0点 0分 1秒 执行 @Scheduled(cron = "1 0 0 * * ? ") public void discountActivityTask() { discountActivityTask.task(); } + @Resource + private SmsShopMoneyTask smsShopMoneyTask; + //每月1号 0点 0分 1秒 执行 + @Scheduled(cron = "1 0 0 1 * ?") + public void smsShopMoneyTask() { + smsShopMoneyTask.task(); + } + + } diff --git a/cash-api/market-server/src/main/java/com/czg/task/SmsShopMoneyTask.java b/cash-api/market-server/src/main/java/com/czg/task/SmsShopMoneyTask.java new file mode 100644 index 000000000..087859247 --- /dev/null +++ b/cash-api/market-server/src/main/java/com/czg/task/SmsShopMoneyTask.java @@ -0,0 +1,29 @@ +package com.czg.task; + +import com.czg.market.entity.SmsShopMoney; +import com.czg.service.market.mapper.SmsShopMoneyMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.HashMap; + +/** + * @author ww + * @description + */ +@Slf4j +@Component +public class SmsShopMoneyTask { + + @Resource + private SmsShopMoneyMapper shopMoneyMapper; + + public void task() { + SmsShopMoney smsShopMoney = new SmsShopMoney(); + smsShopMoney.setMonthAmountTotal(BigDecimal.ZERO); + smsShopMoney.setMonthSendTotal(0L); + shopMoneyMapper.updateByMap(smsShopMoney, true, new HashMap<>()); + } +} 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 index d6c0b193b..93e256039 100644 --- 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 @@ -38,6 +38,11 @@ public class SmsShopMoney implements Serializable { private BigDecimal money; + private Long sendTotal; + private BigDecimal amountTotal; + private Long monthSendTotal; + private BigDecimal monthAmountTotal; + @Column(onInsertValue = "now()") private LocalDateTime createTime; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SmsShopMoneyService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SmsShopMoneyService.java new file mode 100644 index 000000000..1b9d54185 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SmsShopMoneyService.java @@ -0,0 +1,24 @@ +package com.czg.market.service; + +import com.czg.market.vo.SmsShopMoneyVO; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.service.IService; +import com.czg.market.entity.SmsShopMoney; + +/** + * 店铺短信余额 服务层。 + * + * @author ww + * @since 2025-10-16 + */ +public interface SmsShopMoneyService extends IService { + /** + * 获取店铺短信余额 信息 + */ + SmsShopMoney getShopMoney(Long shopId); + + /** + * 获取店铺短信余额分页列表 + */ + Page getShopMoneyPage(Integer page, Integer size, String name); +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/vo/SmsShopMoneyVO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/vo/SmsShopMoneyVO.java new file mode 100644 index 000000000..abf0db67a --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/vo/SmsShopMoneyVO.java @@ -0,0 +1,45 @@ +package com.czg.market.vo; + +import com.czg.market.entity.SmsShopMoney; +import lombok.Data; + +/** + * @author ww + * @description + */ +@Data +public class SmsShopMoneyVO extends SmsShopMoney { + + /** + * 店铺名称 + */ + private String shopName; + /** + * 店铺logo + */ + private String logo; + /** + * 店铺封面图 + */ + private String coverImg; + /** + * trial试用版,release正式 + */ + private String profiles; + + + /** + * 店铺类型 单店--only 连锁店--chain--加盟店join (对应原来 type) + */ + private String shopType; + + /** + * 主店id + */ + private Long mainId; + + /** + * 主店名称 + */ + private String mainShopName; +} 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 index 9a5e4d446..8fe86b948 100644 --- 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 @@ -1,8 +1,11 @@ package com.czg.service.market.mapper; +import com.czg.market.vo.SmsShopMoneyVO; import com.mybatisflex.core.BaseMapper; import com.czg.market.entity.SmsShopMoney; +import java.util.List; + /** * 店铺短信余额 映射层。 * @@ -11,4 +14,5 @@ import com.czg.market.entity.SmsShopMoney; */ public interface SmsShopMoneyMapper extends BaseMapper { + List selectWithShopInfo(String name); } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopMoneyServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopMoneyServiceImpl.java new file mode 100644 index 000000000..7f3663b23 --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopMoneyServiceImpl.java @@ -0,0 +1,47 @@ +package com.czg.service.market.service.impl; + +import com.czg.market.vo.SmsShopMoneyVO; +import com.czg.sa.StpKit; +import com.czg.utils.PageUtil; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.market.entity.SmsShopMoney; +import com.czg.market.service.SmsShopMoneyService; +import com.czg.service.market.mapper.SmsShopMoneyMapper; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 店铺短信余额 服务层实现。 + * + * @author ww + * @since 2025-10-16 + */ +@Service +public class SmsShopMoneyServiceImpl extends ServiceImpl implements SmsShopMoneyService { + + @Override + public SmsShopMoney getShopMoney(Long shopId) { + SmsShopMoney shopMoney = getOne(( + new QueryWrapper().eq(SmsShopMoney::getShopId, StpKit.USER.getShopId()))); + if (shopMoney == null) { + shopMoney = new SmsShopMoney(); + shopMoney.setShopId(StpKit.USER.getShopId()); + shopMoney.setMoney(BigDecimal.ZERO); + save(shopMoney); + } + return shopMoney; + } + + @Override + public Page getShopMoneyPage(Integer page, Integer size, String name) { + PageHelper.startPage(page, size); + List list = mapper.getShopMoneyPages(name); + return PageUtil.convert(new PageInfo<>(list)); + } +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopTemplateServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopTemplateServiceImpl.java index f7a6eb6e7..90e3be7cb 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopTemplateServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SmsShopTemplateServiceImpl.java @@ -37,6 +37,7 @@ public class SmsShopTemplateServiceImpl extends ServiceImpl + +