Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
@@ -2,10 +2,14 @@ package com.czg.controller.admin;
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.czg.annotation.SaAdminCheckPermission;
|
import com.czg.annotation.SaAdminCheckPermission;
|
||||||
|
import com.czg.market.service.PpPackageOrderService;
|
||||||
import com.czg.market.service.PpPackageService;
|
import com.czg.market.service.PpPackageService;
|
||||||
|
import com.czg.market.vo.PpOrderListVO;
|
||||||
import com.czg.market.vo.PpPackagePageReqVo;
|
import com.czg.market.vo.PpPackagePageReqVo;
|
||||||
import com.czg.market.vo.PpPackageVO;
|
import com.czg.market.vo.PpPackageVO;
|
||||||
|
import com.czg.order.dto.GbOrderQueryParam;
|
||||||
import com.czg.resp.CzgResult;
|
import com.czg.resp.CzgResult;
|
||||||
|
import com.czg.sa.StpKit;
|
||||||
import com.czg.utils.AssertUtil;
|
import com.czg.utils.AssertUtil;
|
||||||
import com.czg.validator.group.InsertGroup;
|
import com.czg.validator.group.InsertGroup;
|
||||||
import com.czg.validator.group.UpdateGroup;
|
import com.czg.validator.group.UpdateGroup;
|
||||||
@@ -29,6 +33,9 @@ public class PpPackageController {
|
|||||||
@Resource
|
@Resource
|
||||||
private PpPackageService ppPackageService;
|
private PpPackageService ppPackageService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PpPackageOrderService ppPackageOrderService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加套餐
|
* 添加套餐
|
||||||
*/
|
*/
|
||||||
@@ -51,22 +58,26 @@ public class PpPackageController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除套餐
|
* 删除套餐
|
||||||
* 如果返回值大于0则删除失败,存在进行中的订单,请继续调用确认删除套餐接口
|
|
||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
@SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:delete", name = "删除套餐")
|
@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));
|
return CzgResult.success(ppPackageService.deletePackage(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 确认删除套餐
|
* 上下架套餐
|
||||||
|
* 参数: {"status": 1, "packageId": 123}
|
||||||
*/
|
*/
|
||||||
@DeleteMapping("/sure/{id}")
|
@PutMapping("/switch")
|
||||||
@SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:sureDelete", name = "确认删除套餐")
|
@SaAdminCheckPermission(parentName = "套餐推广", value = "market:package:switch", name = "上下架套餐")
|
||||||
public CzgResult<Void> sureDeletePackage(@PathVariable Long id) {
|
public CzgResult<Boolean> switchPackage(@RequestBody JSONObject param) {
|
||||||
ppPackageService.sureDeletePackage(id);
|
AssertUtil.isNull(param, "参数错误");
|
||||||
return CzgResult.success();
|
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");
|
Integer status = param.getInteger("status");
|
||||||
AssertUtil.isNull(status, "参数错误");
|
AssertUtil.isNull(status, "参数错误");
|
||||||
log.info("修改套餐推广开关 status == {}", 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);
|
||||||
|
|
||||||
/**
|
boolean updateOnlineStatus(Long id, Integer onlineStatus);
|
||||||
* 确认删除套餐
|
|
||||||
*/
|
|
||||||
void sureDeletePackage(Long id);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取套餐分页
|
* 获取套餐分页
|
||||||
|
|||||||
@@ -15,15 +15,13 @@ import com.czg.market.vo.PpPackagePageReqVo;
|
|||||||
import com.czg.market.vo.PpPackageVO;
|
import com.czg.market.vo.PpPackageVO;
|
||||||
import com.czg.sa.StpKit;
|
import com.czg.sa.StpKit;
|
||||||
import com.czg.service.market.mapper.PpPackageMapper;
|
import com.czg.service.market.mapper.PpPackageMapper;
|
||||||
import com.czg.service.market.mapper.PpPackageOrderMapper;
|
|
||||||
import com.czg.utils.AssertUtil;
|
import com.czg.utils.AssertUtil;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.core.update.UpdateChain;
|
import com.mybatisflex.core.update.UpdateChain;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
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.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -40,16 +38,11 @@ import java.util.List;
|
|||||||
@Service
|
@Service
|
||||||
public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage> implements PpPackageService {
|
public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage> implements PpPackageService {
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PpPackageOrderMapper ppPackageOrderMapper;
|
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
private ShopInfoService shopInfoService;
|
private ShopInfoService shopInfoService;
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
private ShopConfigService shopConfigService;
|
private ShopConfigService shopConfigService;
|
||||||
@Autowired
|
|
||||||
private PpPackageMapper ppPackageMapper;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer getPackagePromotionSwitch() {
|
public Integer getPackagePromotionSwitch() {
|
||||||
@@ -59,8 +52,8 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean updatePackagePromotionSwitch(Integer status) {
|
@CacheEvict(cacheNames = "shopInfo", key = "#shopId")
|
||||||
Long shopId = StpKit.USER.getShopId();
|
public boolean updatePackagePromotionSwitch(Integer status, Long shopId) {
|
||||||
ShopConfig shopConfig = new ShopConfig();
|
ShopConfig shopConfig = new ShopConfig();
|
||||||
shopConfig.setIsPackagePromotion(status);
|
shopConfig.setIsPackagePromotion(status);
|
||||||
boolean update = shopConfigService.update(shopConfig, QueryWrapper.create().eq(ShopConfig::getId, shopId));
|
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("名称已存在");
|
throw new CzgException("名称已存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
ppPackage = BeanUtil.copyProperties(packageVO, PpPackage.class);
|
ppPackage = getEntityFromDto(packageVO);
|
||||||
ppPackage.setShopId(shopId);
|
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);
|
save(ppPackage);
|
||||||
}
|
}
|
||||||
@@ -115,17 +103,13 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
|||||||
throw new CzgException("无权限");
|
throw new CzgException("无权限");
|
||||||
}
|
}
|
||||||
|
|
||||||
ppPackage = BeanUtil.copyProperties(packageVO, PpPackage.class);
|
ppPackage = getEntityFromDto(packageVO);
|
||||||
ppPackage.setPackageContent(JSONArray.toJSONString(packageVO.getPackageContent()));
|
|
||||||
ppPackage.setUseWeeks(JSONArray.toJSONString(packageVO.getUseWeeks()));
|
|
||||||
ppPackage.setTieredDiscount(JSONArray.toJSONString(packageVO.getTieredDiscount()));
|
|
||||||
ppPackage.setImages(JSONArray.toJSONString(packageVO.getImages()));
|
|
||||||
updateById(ppPackage);
|
updateById(ppPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public long deletePackage(Long id) {
|
public boolean deletePackage(Long id) {
|
||||||
Long shopId = StpKit.USER.getShopId();
|
Long shopId = StpKit.USER.getShopId();
|
||||||
|
|
||||||
PpPackage ppPackage = getPackageById(id);
|
PpPackage ppPackage = getPackageById(id);
|
||||||
@@ -134,26 +118,32 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
|||||||
throw new RuntimeException("无权限");
|
throw new RuntimeException("无权限");
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryWrapper wrapper = QueryWrapper.create().eq(PpPackageOrder::getPackageId, id)
|
cancelProgressingPackageOrder(StpKit.USER.getShopId(), id);
|
||||||
.eq(PpPackageOrder::getStatus, PpPackageConstants.OrderStatus.PROCESSING);
|
|
||||||
long orderCount = ppPackageMapper.selectCountByQuery(wrapper);
|
|
||||||
if (orderCount > 0) {
|
|
||||||
return orderCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
ppPackage.setIsDel(1);
|
ppPackage.setIsDel(SystemConstants.OneZero.ONE);
|
||||||
updateById(ppPackage);
|
return updateById(ppPackage);
|
||||||
return 0L;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void sureDeletePackage(Long id) {
|
public boolean updateOnlineStatus(Long id, Integer onlineStatus) {
|
||||||
PpPackage ppPackage = getPackageById(id);
|
if (!SystemConstants.OneZero.ZERO.equals(onlineStatus) && !SystemConstants.OneZero.ONE.equals(onlineStatus)) {
|
||||||
ppPackage.setIsDel(1);
|
throw new CzgException("参数错误");
|
||||||
updateById(ppPackage);
|
}
|
||||||
|
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
|
@Override
|
||||||
@@ -242,4 +232,14 @@ public class PpPackageServiceImpl extends ServiceImpl<PpPackageMapper, PpPackage
|
|||||||
.eq(PpPackageOrder::getStatus, PpPackageConstants.OrderStatus.PROCESSING)
|
.eq(PpPackageOrder::getStatus, PpPackageConstants.OrderStatus.PROCESSING)
|
||||||
.update();
|
.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