From 9a7256b82c8bfc5025b0523fd7f19e3dcc38f555 Mon Sep 17 00:00:00 2001 From: gong <1157756119@qq.com> Date: Thu, 18 Dec 2025 18:27:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/PpPackageController.java | 38 +++++++--- .../controller/user/UPpPackageController.java | 73 +++++++++++++++++++ .../czg/market/service/PpPackageService.java | 9 +-- .../service/impl/PpPackageServiceImpl.java | 72 +++++++++--------- 4 files changed, 141 insertions(+), 51 deletions(-) create mode 100644 cash-api/market-server/src/main/java/com/czg/controller/user/UPpPackageController.java diff --git a/cash-api/market-server/src/main/java/com/czg/controller/admin/PpPackageController.java b/cash-api/market-server/src/main/java/com/czg/controller/admin/PpPackageController.java index 7b5381730..17d0529c3 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/admin/PpPackageController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/admin/PpPackageController.java @@ -2,10 +2,14 @@ package com.czg.controller.admin; import com.alibaba.fastjson2.JSONObject; import com.czg.annotation.SaAdminCheckPermission; +import com.czg.market.service.PpPackageOrderService; import com.czg.market.service.PpPackageService; +import com.czg.market.vo.PpOrderListVO; import com.czg.market.vo.PpPackagePageReqVo; import com.czg.market.vo.PpPackageVO; +import com.czg.order.dto.GbOrderQueryParam; import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; import com.czg.utils.AssertUtil; import com.czg.validator.group.InsertGroup; import com.czg.validator.group.UpdateGroup; @@ -29,6 +33,9 @@ public class PpPackageController { @Resource private PpPackageService ppPackageService; + @Resource + private PpPackageOrderService ppPackageOrderService; + /** * 添加套餐 */ @@ -51,22 +58,26 @@ public class PpPackageController { /** * 删除套餐 - * 如果返回值大于0则删除失败,存在进行中的订单,请继续调用确认删除套餐接口 */ @DeleteMapping("/{id}") @SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:delete", name = "删除套餐") - public CzgResult deletePackage(@PathVariable Long id) { + public CzgResult deletePackage(@PathVariable Long id) { return CzgResult.success(ppPackageService.deletePackage(id)); } /** - * 确认删除套餐 + * 上下架套餐 + * 参数: {"status": 1, "packageId": 123} */ - @DeleteMapping("/sure/{id}") - @SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:sureDelete", name = "确认删除套餐") - public CzgResult sureDeletePackage(@PathVariable Long id) { - ppPackageService.sureDeletePackage(id); - return CzgResult.success(); + @PutMapping("/switch") + @SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:switch", name = "上下架套餐") + public CzgResult switchPackage(@RequestBody JSONObject param) { + AssertUtil.isNull(param, "参数错误"); + Integer status = param.getInteger("status"); + Long packageId = param.getLong("packageId"); + AssertUtil.isNull(status, "参数错误"); + AssertUtil.isNull(packageId, "参数错误"); + return CzgResult.success(ppPackageService.updateOnlineStatus(packageId, status)); } /** @@ -100,6 +111,15 @@ public class PpPackageController { Integer status = param.getInteger("status"); AssertUtil.isNull(status, "参数错误"); log.info("修改套餐推广开关 status == {}", status); - return CzgResult.success(ppPackageService.updatePackagePromotionSwitch(status)); + return CzgResult.success(ppPackageService.updatePackagePromotionSwitch(status, StpKit.USER.getShopId())); + } + + /** + * 获取套餐推广订单列表 + */ + @GetMapping("/order") + @SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:order", name = "获取套餐推广订单列表") + public CzgResult> getPackageOrderList(GbOrderQueryParam reqVo) { + return CzgResult.success(ppPackageOrderService.queryOrderList(StpKit.USER.getShopId(), null, reqVo)); } } diff --git a/cash-api/market-server/src/main/java/com/czg/controller/user/UPpPackageController.java b/cash-api/market-server/src/main/java/com/czg/controller/user/UPpPackageController.java new file mode 100644 index 000000000..0213d19a9 --- /dev/null +++ b/cash-api/market-server/src/main/java/com/czg/controller/user/UPpPackageController.java @@ -0,0 +1,73 @@ +package com.czg.controller.user; + +import com.czg.market.dto.PpPackageOrderDTO; +import com.czg.market.service.PpPackageOrderService; +import com.czg.market.service.PpPackageService; +import com.czg.market.vo.PpOrderListVO; +import com.czg.market.vo.PpPackagePageReqVo; +import com.czg.market.vo.PpPackageVO; +import com.czg.order.dto.GbOrderQueryParam; +import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; +import com.mybatisflex.core.paginate.Page; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 用户端/套餐推广 + * + * @author yjjie + * @date 2025/12/18 18:03 + */ +@RestController +@RequestMapping("/user/package") +public class UPpPackageController { + + @Resource + private PpPackageService ppPackageService; + + @Resource + private PpPackageOrderService ppPackageOrderService; + + /** + * 获取套餐列表 + */ + @GetMapping + public CzgResult> getPackageList(PpPackagePageReqVo reqVo) { + return CzgResult.success(ppPackageService.getPackagePage(reqVo, false)); + } + + /** + * 获取我的订单列表 + */ + @GetMapping("/order") + public CzgResult> getMyOrderList(GbOrderQueryParam reqVo) { + return CzgResult.success(ppPackageOrderService.queryOrderList(null, StpKit.USER.getLoginIdAsLong(), reqVo)); + } + + /** + * 取消订单 + */ + @GetMapping("/cancel") + public CzgResult cancelOrder(Long orderId) { + return CzgResult.success(ppPackageOrderService.cancelOrder(orderId)); + } + + /** + * 助力订单 + */ + @GetMapping("/help") + public CzgResult helpOrder(Long orderId) { + return CzgResult.success(ppPackageOrderService.helpOrder(orderId)); + } + + /** + * 获取订单详情 + */ + @GetMapping("/order/detail") + public CzgResult getOrderDetail(Long orderId) { + return CzgResult.success(ppPackageOrderService.getOrderDetailById(orderId)); + } +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/PpPackageService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/PpPackageService.java index 72a2ed654..5ea30b58e 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/PpPackageService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/PpPackageService.java @@ -22,7 +22,7 @@ public interface PpPackageService extends IService { /** * 更新套餐开关 */ - boolean updatePackagePromotionSwitch(Integer status); + boolean updatePackagePromotionSwitch(Integer status, Long shopId); /** * 插入套餐 @@ -37,12 +37,9 @@ public interface PpPackageService extends IService { /** * 删除套餐 */ - long deletePackage(Long id); + boolean deletePackage(Long id); - /** - * 确认删除套餐 - */ - void sureDeletePackage(Long id); + boolean updateOnlineStatus(Long id, Integer onlineStatus); /** * 获取套餐分页 diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/PpPackageServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/PpPackageServiceImpl.java index f02c91266..bc2c15d1e 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/PpPackageServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/PpPackageServiceImpl.java @@ -15,15 +15,13 @@ import com.czg.market.vo.PpPackagePageReqVo; import com.czg.market.vo.PpPackageVO; import com.czg.sa.StpKit; import com.czg.service.market.mapper.PpPackageMapper; -import com.czg.service.market.mapper.PpPackageOrderMapper; import com.czg.utils.AssertUtil; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.update.UpdateChain; import com.mybatisflex.spring.service.impl.ServiceImpl; -import jakarta.annotation.Resource; import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,16 +38,11 @@ import java.util.List; @Service public class PpPackageServiceImpl extends ServiceImpl implements PpPackageService { - @Resource - private PpPackageOrderMapper ppPackageOrderMapper; - @DubboReference private ShopInfoService shopInfoService; @DubboReference private ShopConfigService shopConfigService; - @Autowired - private PpPackageMapper ppPackageMapper; @Override public Integer getPackagePromotionSwitch() { @@ -59,8 +52,8 @@ public class PpPackageServiceImpl extends ServiceImpl 0) { - return orderCount; - } + cancelProgressingPackageOrder(StpKit.USER.getShopId(), id); - ppPackage.setIsDel(1); - updateById(ppPackage); - return 0L; + ppPackage.setIsDel(SystemConstants.OneZero.ONE); + return updateById(ppPackage); } @Override @Transactional - public void sureDeletePackage(Long id) { - PpPackage ppPackage = getPackageById(id); - ppPackage.setIsDel(1); - updateById(ppPackage); + public boolean updateOnlineStatus(Long id, Integer onlineStatus) { + if (!SystemConstants.OneZero.ZERO.equals(onlineStatus) && !SystemConstants.OneZero.ONE.equals(onlineStatus)) { + throw new CzgException("参数错误"); + } + Long shopId = StpKit.USER.getShopId(); - cancelProgressingPackageOrder(StpKit.USER.getShopId(), id); + PpPackage ppPackage = getPackageById(id); + + if (!ppPackage.getShopId().equals(shopId)) { + throw new RuntimeException("无权限"); + } + + if (SystemConstants.OneZero.ZERO.equals(onlineStatus)) { + cancelProgressingPackageOrder(StpKit.USER.getShopId(), id); + } + + ppPackage.setOnlineStatus(onlineStatus); + return updateById(ppPackage); } @Override @@ -242,4 +232,14 @@ public class PpPackageServiceImpl extends ServiceImpl