package com.txz.mall.controller; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.txz.mall.core.Result; import com.txz.mall.core.ResultCode; import com.txz.mall.core.ServiceException; import com.txz.mall.model.StoreCombination; import com.txz.mall.service.StoreCombinationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; import tk.mybatis.mapper.entity.Condition; import tk.mybatis.mapper.entity.Example; import vo.GoPinkResponse; import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * Created by CodeGenerator on 2025/07/14. */ @Api(tags = "[后台]拼团商品管理") @RestController @RequestMapping("/combination") public class CombinationController { private static Logger log = LoggerFactory.getLogger(CombinationController.class); @Resource private StoreCombinationService storeCombinationService; @PostMapping("/add") @ApiOperation(value = "拼团商品表新增") public Result add(@RequestBody StoreCombination storeCombination) { if (storeCombination == null) { return Result.fail(ResultCode.OBJECT_IS_NULL); } try { storeCombination.setCreateTime(new Date()); // storeCombination.setCreateUserId(userId); storeCombinationService.save(storeCombination); } catch (Exception e) { log.error("新增对象操作异常e:{}", e); return Result.fail(ResultCode.INTERNAL_SERVER_ERROR); } return Result.success(); } @PostMapping("/delete") @ApiOperation(value = "拼团商品表删除") public Result delete(@RequestParam Long id) { if (id == null) { return Result.fail(ResultCode.ID_IS_NULL); } StoreCombination combination = storeCombinationService.findById(id); if (combination == null) { return Result.fail(ResultCode.OBJECT_IS_NULL); } Date date = new Date(); if (combination.getIsShow().equals(1) && combination.getStartTime().before(date) && combination.getStopTime().after(date)) { throw new ServiceException("活动开启中,商品不支持删除"); } try { StoreCombination storeCombination = new StoreCombination(); storeCombination.setId(id); storeCombination.setIsDelete(1); storeCombinationService.update(storeCombination); } catch (Exception e) { log.error("删除对象操作异常e:{}", e); return Result.fail(ResultCode.INTERNAL_SERVER_ERROR); } return Result.success(); } @PostMapping("/update") @ApiOperation(value = "拼团商品表更新") public Result update(@RequestBody StoreCombination storeCombination) { if (storeCombination == null) { return Result.fail(ResultCode.OBJECT_IS_NULL); } if (storeCombination.getId() == null) { return Result.fail(ResultCode.ID_IS_NULL); } try { storeCombination.setUpdateTime(new Date()); // storeCombination.setUpdateUserId(userId); storeCombinationService.update(storeCombination); } catch (Exception e) { log.error("更新对象操作异常e:{}", e); return Result.fail(ResultCode.INTERNAL_SERVER_ERROR); } return Result.success(); } @PostMapping("/detail") @ApiOperation(value = "拼团商品表获取详情") public Result detail(@RequestParam Long id) { if (id == null) { return Result.fail(ResultCode.ID_IS_NULL); } StoreCombination storeCombination = null; try { storeCombination = storeCombinationService.findById(id); } catch (Exception e) { log.error("查询对象操作异常e:{}", e); return Result.fail(ResultCode.INTERNAL_SERVER_ERROR); } return Result.success(storeCombination); } @PostMapping("/list") @ApiOperation(value = "拼团商品表获取列表") public Result> list(@RequestBody StoreCombination storeCombination, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) { PageHelper.startPage(page, size); Condition condition = new Condition(storeCombination.getClass()); Example.Criteria criteria = condition.createCriteria(); criteria.andEqualTo("isDelete", 0); condition.setOrderByClause("create_time DESC"); PageInfo pageInfo = null; try { List list = storeCombinationService.findByCondition(condition); pageInfo = new PageInfo(list); } catch (Exception e) { log.error("查询对象操作异常e:{}", e); return Result.fail(ResultCode.INTERNAL_SERVER_ERROR); } return Result.success(pageInfo); } @PostMapping("/addActivityProduct") @ApiOperation(value = "添加活动商品") public Result addActivityProduct(@RequestBody List list, @RequestParam("activityId") Long activityId) { if (CollectionUtils.isEmpty(list)) { return Result.fail(ResultCode.OBJECT_IS_NULL); } if (activityId == null) { return Result.fail(ResultCode.USERID_IS_NULL); } try { storeCombinationService.addActivityProduct(list, activityId); } catch (Exception e) { log.error("新增对象操作异常e:{}", e); return Result.fail(ResultCode.INTERNAL_SERVER_ERROR); } return Result.success(); } // @PostMapping("/getActivityProduct") // @ApiOperation(value = "获取活动商品列表") // public Result> productList(@RequestParam("activityId") Long activityId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) { // if (activityId == null) { // return Result.fail(ResultCode.ID_IS_NULL); // } // PageInfo list = storeCombinationService.getActivityProduct(activityId, page, size); // return Result.success(list); // } @PostMapping("/getActivityProductIds") @ApiOperation(value = "获取活动商品ids") public Result> getActivityProductIds(@RequestParam("activityId") Long activityId) { Condition condition = new Condition(StoreCombination.class); Example.Criteria criteria = condition.createCriteria(); criteria.andEqualTo("isDelete", 0); criteria.andEqualTo("activityId", activityId); List combinationList = storeCombinationService.findByCondition(condition); List arrayList = combinationList.stream().map(StoreCombination::getProductId).collect(Collectors.toList()); return Result.success(arrayList); } /** * 去开团 */ @ApiOperation(value = "支付成功-去开团") @PostMapping(value = "/open") public Result goOpen(@RequestParam("orderId") Long orderId) { storeCombinationService.goOpen(orderId); return Result.success(); } /** * 去拼团 * * @param pinkId 拼团团长单id */ @ApiOperation(value = "去拼团") @GetMapping(value = "/pink/{pinkId}") public Result goPink(@PathVariable(value = "pinkId") Long pinkId) { GoPinkResponse goPinkResponse = storeCombinationService.goPink(pinkId); return Result.success(goPinkResponse); } /** * 更多拼团 */ @ApiOperation(value = "更多拼团") @GetMapping(value = "/more") public Result> getMore(@RequestParam Integer comId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) { PageHelper.startPage(page, size); PageInfo pageInfo = null; try { List list = storeCombinationService.getMore(comId); pageInfo = new PageInfo(list); } catch (Exception e) { log.error("查询对象操作异常e:{}", e); return Result.fail(ResultCode.INTERNAL_SERVER_ERROR); } return Result.success(pageInfo); } }