添加用户端接口
This commit is contained in:
@@ -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<Long> deletePackage(@PathVariable Long id) {
|
||||
public CzgResult<Boolean> 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<Void> sureDeletePackage(@PathVariable Long id) {
|
||||
ppPackageService.sureDeletePackage(id);
|
||||
return CzgResult.success();
|
||||
@PutMapping("/switch")
|
||||
@SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:switch", name = "上下架套餐")
|
||||
public CzgResult<Boolean> 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<Page<PpOrderListVO>> getPackageOrderList(GbOrderQueryParam reqVo) {
|
||||
return CzgResult.success(ppPackageOrderService.queryOrderList(StpKit.USER.getShopId(), null, reqVo));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Page<PpPackageVO>> getPackageList(PpPackagePageReqVo reqVo) {
|
||||
return CzgResult.success(ppPackageService.getPackagePage(reqVo, false));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取我的订单列表
|
||||
*/
|
||||
@GetMapping("/order")
|
||||
public CzgResult<Page<PpOrderListVO>> getMyOrderList(GbOrderQueryParam reqVo) {
|
||||
return CzgResult.success(ppPackageOrderService.queryOrderList(null, StpKit.USER.getLoginIdAsLong(), reqVo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消订单
|
||||
*/
|
||||
@GetMapping("/cancel")
|
||||
public CzgResult<Boolean> cancelOrder(Long orderId) {
|
||||
return CzgResult.success(ppPackageOrderService.cancelOrder(orderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 助力订单
|
||||
*/
|
||||
@GetMapping("/help")
|
||||
public CzgResult<Boolean> helpOrder(Long orderId) {
|
||||
return CzgResult.success(ppPackageOrderService.helpOrder(orderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取订单详情
|
||||
*/
|
||||
@GetMapping("/order/detail")
|
||||
public CzgResult<PpPackageOrderDTO> getOrderDetail(Long orderId) {
|
||||
return CzgResult.success(ppPackageOrderService.getOrderDetailById(orderId));
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ public interface PpPackageService extends IService<PpPackage> {
|
||||
/**
|
||||
* 更新套餐开关
|
||||
*/
|
||||
boolean updatePackagePromotionSwitch(Integer status);
|
||||
boolean updatePackagePromotionSwitch(Integer status, Long shopId);
|
||||
|
||||
/**
|
||||
* 插入套餐
|
||||
@@ -37,12 +37,9 @@ public interface PpPackageService extends IService<PpPackage> {
|
||||
/**
|
||||
* 删除套餐
|
||||
*/
|
||||
long deletePackage(Long id);
|
||||
boolean deletePackage(Long id);
|
||||
|
||||
/**
|
||||
* 确认删除套餐
|
||||
*/
|
||||
void sureDeletePackage(Long id);
|
||||
boolean updateOnlineStatus(Long id, Integer onlineStatus);
|
||||
|
||||
/**
|
||||
* 获取套餐分页
|
||||
|
||||
@@ -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<PpPackageMapper, PpPackage> 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<PpPackageMapper, PpPackage
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean updatePackagePromotionSwitch(Integer status) {
|
||||
Long shopId = StpKit.USER.getShopId();
|
||||
@CacheEvict(cacheNames = "shopInfo", key = "#shopId")
|
||||
public boolean updatePackagePromotionSwitch(Integer status, Long shopId) {
|
||||
ShopConfig shopConfig = new ShopConfig();
|
||||
shopConfig.setIsPackagePromotion(status);
|
||||
boolean update = shopConfigService.update(shopConfig, QueryWrapper.create().eq(ShopConfig::getId, shopId));
|
||||
@@ -90,13 +83,8 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
||||
throw new CzgException("名称已存在");
|
||||
}
|
||||
|
||||
ppPackage = BeanUtil.copyProperties(packageVO, PpPackage.class);
|
||||
ppPackage = getEntityFromDto(packageVO);
|
||||
ppPackage.setShopId(shopId);
|
||||
ppPackage.setPackageContent(JSONArray.toJSONString(packageVO.getPackageContent()));
|
||||
ppPackage.setUseWeeks(JSONArray.toJSONString(packageVO.getUseWeeks()));
|
||||
ppPackage.setTieredDiscount(JSONArray.toJSONString(packageVO.getTieredDiscount()));
|
||||
ppPackage.setImages(JSONArray.toJSONString(packageVO.getImages()));
|
||||
ppPackage.setDetailImages(JSONArray.toJSONString(packageVO.getDetailImages()));
|
||||
|
||||
save(ppPackage);
|
||||
}
|
||||
@@ -115,17 +103,13 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
||||
throw new CzgException("无权限");
|
||||
}
|
||||
|
||||
ppPackage = BeanUtil.copyProperties(packageVO, PpPackage.class);
|
||||
ppPackage.setPackageContent(JSONArray.toJSONString(packageVO.getPackageContent()));
|
||||
ppPackage.setUseWeeks(JSONArray.toJSONString(packageVO.getUseWeeks()));
|
||||
ppPackage.setTieredDiscount(JSONArray.toJSONString(packageVO.getTieredDiscount()));
|
||||
ppPackage.setImages(JSONArray.toJSONString(packageVO.getImages()));
|
||||
ppPackage = getEntityFromDto(packageVO);
|
||||
updateById(ppPackage);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public long deletePackage(Long id) {
|
||||
public boolean deletePackage(Long id) {
|
||||
Long shopId = StpKit.USER.getShopId();
|
||||
|
||||
PpPackage ppPackage = getPackageById(id);
|
||||
@@ -134,26 +118,32 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
||||
throw new RuntimeException("无权限");
|
||||
}
|
||||
|
||||
QueryWrapper wrapper = QueryWrapper.create().eq(PpPackageOrder::getPackageId, id)
|
||||
.eq(PpPackageOrder::getStatus, PpPackageConstants.OrderStatus.PROCESSING);
|
||||
long orderCount = ppPackageMapper.selectCountByQuery(wrapper);
|
||||
if (orderCount > 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<PpPackageMapper, PpPackage
|
||||
.eq(PpPackageOrder::getStatus, PpPackageConstants.OrderStatus.PROCESSING)
|
||||
.update();
|
||||
}
|
||||
|
||||
public PpPackage getEntityFromDto(PpPackageVO packageVO) {
|
||||
PpPackage ppPackage = BeanUtil.copyProperties(packageVO, PpPackage.class);
|
||||
ppPackage.setPackageContent(JSONArray.toJSONString(packageVO.getPackageContent()));
|
||||
ppPackage.setUseWeeks(JSONArray.toJSONString(packageVO.getUseWeeks()));
|
||||
ppPackage.setTieredDiscount(JSONArray.toJSONString(packageVO.getTieredDiscount()));
|
||||
ppPackage.setImages(JSONArray.toJSONString(packageVO.getImages()));
|
||||
ppPackage.setDetailImages(JSONArray.toJSONString(packageVO.getDetailImages()));
|
||||
return ppPackage;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user