diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/MerchantRegisterController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/MerchantRegisterController.java deleted file mode 100644 index 39b458ca7..000000000 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/MerchantRegisterController.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.czg.controller.admin; - -import com.czg.account.dto.PageDTO; -import com.czg.account.dto.register.MerchantRegisterDTO; -import com.czg.account.entity.MerchantRegister; -import com.czg.account.service.MerchantRegisterService; -import com.czg.annotation.SaAdminCheckPermission; -import com.czg.annotation.SaAdminCheckRole; -import com.czg.resp.CzgResult; -import com.mybatisflex.core.paginate.Page; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -/** - * 激活码管理 - * @author Administrator - */ -@RestController -@RequestMapping("/admin/merchantRegister") -public class MerchantRegisterController { - @Resource - private MerchantRegisterService merchantRegisterService; - - - /** - * 激活码列表 - * 权限标识: merchantRegister:list - * @param pageDTO 分页参数 - * @param state 状态 0未激活 1已激活 - * @param startTime 开始时间 - * @param endTime 结束时间 - * @return 激活码列表 - */ - @SaAdminCheckRole("管理员") - @SaAdminCheckPermission(parentName = "激活码", value = "merchantRegister:list", name = "激活码列表") - @GetMapping - public CzgResult> get(PageDTO pageDTO, Integer state, String startTime, String endTime) { - return CzgResult.success(merchantRegisterService.get(pageDTO, state, startTime, endTime)); - } - - /** - * 生成激活码 - * 权限标识: merchantRegister:add - * @param merchantRegisterDTO 激活码信息 - * @return 是否成功 - */ - @SaAdminCheckRole("管理员") - @SaAdminCheckPermission(parentName = "激活码", value = "merchantRegister:add", name = "生成激活码") - @PostMapping - public CzgResult add(@RequestBody @Validated MerchantRegisterDTO merchantRegisterDTO) { - return CzgResult.success(merchantRegisterService.add(merchantRegisterDTO)); - } -} diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopInfoController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopInfoController.java index b41f6cb4a..9fb1c83b7 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopInfoController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopInfoController.java @@ -5,8 +5,10 @@ import com.czg.account.dto.shopinfo.ShopBranchSelectDTO; import com.czg.account.dto.shopinfo.ShopDetailDTO; import com.czg.account.dto.shopinfo.ShopInfoAddDTO; import com.czg.account.dto.shopinfo.ShopInfoEditDTO; +import com.czg.account.entity.ShopRegister; import com.czg.account.entity.ShopInfo; import com.czg.account.service.AuthorizationService; +import com.czg.account.service.ShopRegisterService; import com.czg.account.service.ShopInfoService; import com.czg.annotation.SaAdminCheckPermission; import com.czg.annotation.SaAdminCheckRole; @@ -32,6 +34,8 @@ public class ShopInfoController { private ShopInfoService shopInfoService; @Resource private AuthorizationService authorizationService; + @Resource + private ShopRegisterService shopRegisterService; /** * 店铺列表, 只允许管理员调用 @@ -118,4 +122,17 @@ public class ShopInfoController { return CzgResult.success(); } + /** + * 续期记录 + * + * @param pageDTO 分页参数 + * @return 续期记录列表 + */ + @SaAdminCheckRole("管理员") + @GetMapping("/registerRecord") + public CzgResult> get(PageDTO pageDTO, Long shopId) { + Page page = shopRegisterService.page(new Page<>(pageDTO.page(), pageDTO.size()), + new QueryWrapper().eq(ShopRegister::getShopId, shopId).orderBy(ShopRegister::getCreateTime, false)); + return CzgResult.success(page); + } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/register/MerchantRegisterDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/register/MerchantRegisterDTO.java deleted file mode 100644 index 85edf8bcf..000000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/register/MerchantRegisterDTO.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.czg.account.dto.register; - -import jakarta.validation.constraints.Max; -import jakarta.validation.constraints.Min; -import jakarta.validation.constraints.NotNull; - -public record MerchantRegisterDTO( - @NotNull(message = "激活时长不能为空") - @Min(1) - Integer periodMonth, - @NotNull(message = "数量不为空") - @Min(1) - @Max(10) - Integer num -) { -} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoAddDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoAddDTO.java index d42cb6a32..f1bcb0c94 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoAddDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoAddDTO.java @@ -4,6 +4,8 @@ import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; +import java.math.BigDecimal; + /** * @author Administrator */ @@ -20,8 +22,14 @@ public class ShopInfoAddDTO { private String frontImg; @NotEmpty(message = "试用/正式不为空") private String profiles; -// @NotEmpty(message = "激活码不为空") - private String activateCode; + /** + * 激活时长 + */ + private Integer activateDuration; + /** + * 激活费用 + */ + private BigDecimal activateAmount; @NotEmpty(message = "登录账号不为空") private String accountName; @NotEmpty(message = "登录密码不为空") diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java index 73ceba70e..0d86fa041 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java @@ -249,9 +249,13 @@ public class ShopInfoEditDTO { private String taxAmount; /** - * 店铺激活码 + * 激活时长 */ - private String activateCode; + private Integer activateDuration; + /** + * 激活费用 + */ + private BigDecimal activateAmount; /** * 是否为主店 1-是 0-否 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/MerchantRegister.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopRegister.java similarity index 78% rename from cash-common/cash-common-service/src/main/java/com/czg/account/entity/MerchantRegister.java rename to cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopRegister.java index f79cad3b5..76db5fb6f 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/MerchantRegister.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopRegister.java @@ -14,7 +14,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; /** - * 激活码 实体类。 + * 店铺签约 实体类。 * * @author Administrator * @since 2025-02-11 @@ -23,8 +23,8 @@ import java.time.LocalDateTime; @NoArgsConstructor @AllArgsConstructor -@Table("tb_merchant_register") -public class MerchantRegister implements Serializable { +@Table("tb_shop_register") +public class ShopRegister implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -32,18 +32,13 @@ public class MerchantRegister implements Serializable { @Id(keyType = KeyType.Auto) private Integer id; - /** - * 激活码 - */ - private String registerCode; - /** * 店铺id */ private Long shopId; /** - * 激活码金额 + * 店铺签约金额 */ private BigDecimal amount; @@ -52,11 +47,6 @@ public class MerchantRegister implements Serializable { */ private Integer periodMonth; - /** - * 状态0未使用1已使用 - */ - private Integer status; - /** * 创建时间 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/MerchantRegisterService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/MerchantRegisterService.java deleted file mode 100644 index 96fbf86f2..000000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/MerchantRegisterService.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.czg.account.service; - -import com.czg.account.dto.PageDTO; -import com.czg.account.dto.register.MerchantRegisterDTO; -import com.czg.account.entity.MerchantRegister; -import com.mybatisflex.core.paginate.Page; -import com.mybatisflex.core.service.IService; - -/** - * 激活码 服务层。 - * - * @author Administrator - * @since 2025-02-11 - */ -public interface MerchantRegisterService extends IService { - - Page get(PageDTO pageDTO, Integer state, String startTime, String endTime); - - Boolean add(MerchantRegisterDTO merchantRegisterDTO); -} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopRegisterService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopRegisterService.java new file mode 100644 index 000000000..8815eea5b --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopRegisterService.java @@ -0,0 +1,14 @@ +package com.czg.account.service; + +import com.czg.account.entity.ShopRegister; +import com.mybatisflex.core.service.IService; + +/** + * 店铺签约 服务层。 + * + * @author Administrator + * @since 2025-02-11 + */ +public interface ShopRegisterService extends IService { + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/MerchantRegisterVO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/ShopRegisterVO.java similarity index 74% rename from cash-common/cash-common-service/src/main/java/com/czg/account/vo/MerchantRegisterVO.java rename to cash-common/cash-common-service/src/main/java/com/czg/account/vo/ShopRegisterVO.java index 5c65b6dcd..62d34b1da 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/MerchantRegisterVO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/ShopRegisterVO.java @@ -1,6 +1,6 @@ package com.czg.account.vo; -import com.czg.account.entity.MerchantRegister; +import com.czg.account.entity.ShopRegister; import lombok.Data; import lombok.EqualsAndHashCode; @@ -11,7 +11,7 @@ import java.time.LocalDateTime; */ @EqualsAndHashCode(callSuper = true) @Data -public class MerchantRegisterVO extends MerchantRegister { +public class ShopRegisterVO extends ShopRegister { private String shopName; private String phone; private String registerType; diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/MerchantRegisterMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/MerchantRegisterMapper.java deleted file mode 100644 index 62eea7cbf..000000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/MerchantRegisterMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.czg.service.account.mapper; - -import com.czg.account.entity.MerchantRegister; -import com.czg.account.vo.MerchantRegisterVO; -import com.mybatisflex.core.BaseMapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 激活码 映射层。 - * - * @author Administrator - * @since 2025-02-11 - */ -public interface MerchantRegisterMapper extends BaseMapper { - - List pageInfo(@Param("state") Integer state, @Param("startTime") String startTime, @Param("endTime") String endTime); -} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopRegisterMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopRegisterMapper.java new file mode 100644 index 000000000..a644215b7 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopRegisterMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.czg.account.entity.ShopRegister; +import com.mybatisflex.core.BaseMapper; + +/** + * 店铺签约 映射层。 + * + * @author Administrator + * @since 2025-02-11 + */ +public interface ShopRegisterMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/MerchantRegisterServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/MerchantRegisterServiceImpl.java deleted file mode 100644 index 13273aab3..000000000 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/MerchantRegisterServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.czg.service.account.service.impl; - -import cn.hutool.core.util.IdUtil; -import com.czg.account.dto.PageDTO; -import com.czg.account.dto.register.MerchantRegisterDTO; -import com.czg.account.entity.MerchantRegister; -import com.czg.account.service.MerchantRegisterService; -import com.czg.service.account.mapper.MerchantRegisterMapper; -import com.czg.utils.PageUtil; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import com.mybatisflex.core.paginate.Page; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; - -/** - * 激活码 服务层实现。 - * - * @author Administrator - * @since 2025-02-11 - */ -@Service -public class MerchantRegisterServiceImpl extends ServiceImpl implements MerchantRegisterService { - - @Override - public Page get(PageDTO pageDTO, Integer state, String startTime, String endTime) { - Page page = PageUtil.buildPage(); - PageHelper.startPage(Math.toIntExact(page.getPageNumber()), Math.toIntExact(page.getPageSize())); - return PageUtil.convert(new PageInfo<>(mapper.pageInfo(state, startTime, endTime))); - } - - @Override - public Boolean add(MerchantRegisterDTO merchantRegisterDTO) { - ArrayList registers = new ArrayList<>(); - for (int i = 0; i < merchantRegisterDTO.num(); i++) { - MerchantRegister tbMerchantRegister = new MerchantRegister(); - tbMerchantRegister.setRegisterCode(IdUtil.simpleUUID()); - tbMerchantRegister.setStatus(0); - tbMerchantRegister.setPeriodMonth(merchantRegisterDTO.periodMonth()); - registers.add(tbMerchantRegister); - } - int i = mapper.insertBatchSelective(registers, 50); - return i > 0; - } -} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java index 3e2d8fd71..6e619bd32 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java @@ -63,7 +63,7 @@ public class ShopInfoServiceImpl extends ServiceImpl i @Resource private SysUserService sysUserService; @Resource - private MerchantRegisterService merchantRegisterService; + private ShopRegisterService shopRegisterService; @Resource private ShopTableService shopTableService; @Resource @@ -147,22 +147,23 @@ public class ShopInfoServiceImpl extends ServiceImpl i return page; } - private void activateShop(ShopInfo shopInfo, String activateCode) { - MerchantRegister merchantRegister = merchantRegisterService.queryChain().eq(MerchantRegister::getRegisterCode, activateCode).one(); - AssertUtil.isNull(merchantRegister, "激活码不存在"); - if (merchantRegister.getStatus() == 1) { - throw new CzgException("激活码已使用"); - } - - // 续期 + /** + * 签约店铺 + * @param activateDuration 签约时长 + * @param amount 续期费用 + */ + private void activateShop(ShopInfo shopInfo, Integer activateDuration, BigDecimal amount) { + // 签约/续期 if (shopInfo.getExpireTime() != null && shopInfo.getExpireTime().isAfter(LocalDateTime.now())) { - shopInfo.setExpireTime(DateUtil.offsetMonth(DateUtil.date(shopInfo.getExpireTime()), merchantRegister.getPeriodMonth()).toLocalDateTime()); + shopInfo.setExpireTime(DateUtil.offsetMonth(DateUtil.date(shopInfo.getExpireTime()), activateDuration).toLocalDateTime()); } else { - shopInfo.setExpireTime(DateUtil.offsetMonth(DateUtil.date(), merchantRegister.getPeriodMonth()).toLocalDateTime()); + shopInfo.setExpireTime(DateUtil.offsetMonth(DateUtil.date(), activateDuration).toLocalDateTime()); } - merchantRegister.setStatus(1); - merchantRegister.setShopId(shopInfo.getId()); - merchantRegisterService.updateById(merchantRegister); + ShopRegister register = new ShopRegister(); + register.setShopId(shopInfo.getId()); + register.setPeriodMonth(activateDuration); + register.setAmount(amount); + shopRegisterService.save(register); } @Override @@ -207,10 +208,9 @@ public class ShopInfoServiceImpl extends ServiceImpl i shopInfo.setProfiles("release"); } save(shopInfo); - if (StrUtil.isNotBlank(shopInfoAddDTO.getActivateCode())) { - activateShop(shopInfo, shopInfoAddDTO.getActivateCode()); + if (shopInfoAddDTO.getActivateDuration() != null) { + activateShop(shopInfo, shopInfoAddDTO.getActivateDuration(),shopInfoAddDTO.getActivateAmount()); } - // 增加支付方式 shopPayTypeService.addInfo(shopInfo.getId()); // 初始化积分霸王餐设置 @@ -264,6 +264,7 @@ public class ShopInfoServiceImpl extends ServiceImpl i @Override @CacheEvict(key = "#shopInfoEditDTO.id") + @Transactional(rollbackFor = Exception.class) public Boolean edit(ShopInfoEditDTO shopInfoEditDTO) { shopInfoEditDTO.setIsMemberPrice(null); ShopInfo shopInfo; @@ -298,8 +299,8 @@ public class ShopInfoServiceImpl extends ServiceImpl i } else { throw new CzgException("禁止连锁店/加盟店修改为单店"); } - if (shopInfoEditDTO.getActivateCode() != null) { - activateShop(shopInfo, shopInfoEditDTO.getActivateCode()); + if (shopInfoEditDTO.getActivateDuration() != null) { + activateShop(shopInfo, shopInfoEditDTO.getActivateDuration(),shopInfoEditDTO.getActivateAmount()); } BeanUtil.copyProperties(shopInfoEditDTO, shopInfo); if (shopInfoEditDTO.getOperationPwd() != null) { diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopRegisterServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopRegisterServiceImpl.java new file mode 100644 index 000000000..c1da3ddf9 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopRegisterServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.service.account.service.impl; + +import com.czg.account.entity.ShopRegister; +import com.czg.account.service.ShopRegisterService; +import com.czg.service.account.mapper.ShopRegisterMapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 店铺签约 服务层实现。 + * + * @author Administrator + * @since 2025-02-11 + */ +@Service +public class ShopRegisterServiceImpl extends ServiceImpl implements ShopRegisterService { + +} diff --git a/cash-service/account-service/src/main/resources/mapper/MerchantRegisterMapper.xml b/cash-service/account-service/src/main/resources/mapper/MerchantRegisterMapper.xml deleted file mode 100644 index 3b06ed81e..000000000 --- a/cash-service/account-service/src/main/resources/mapper/MerchantRegisterMapper.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - diff --git a/cash-service/account-service/src/main/resources/mapper/ShopRegisterMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopRegisterMapper.xml new file mode 100644 index 000000000..a6efe57b1 --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/ShopRegisterMapper.xml @@ -0,0 +1,7 @@ + + + + +