Browse Source

开团 - 拼团 - 更多

yangyb 1 tháng trước cách đây
mục cha
commit
20790f2fbc
24 tập tin đã thay đổi với 454 bổ sung690 xóa
  1. 19 27
      mall-service/src/main/java/com/txz/mall/controller/CombinationController.java
  2. 3 3
      mall-service/src/main/java/com/txz/mall/controller/OrderController.java
  3. 40 0
      mall-service/src/main/java/com/txz/mall/controller/PinkController.java
  4. 27 16
      mall-service/src/main/java/com/txz/mall/controller/ProductController.java
  5. 1 1
      mall-service/src/main/java/com/txz/mall/controller/UserAddressController.java
  6. 15 8
      mall-service/src/main/java/com/txz/mall/model/StoreCombination.java
  7. 49 49
      mall-service/src/main/java/com/txz/mall/model/StoreOrder.java
  8. 8 4
      mall-service/src/main/java/com/txz/mall/model/StorePink.java
  9. 8 8
      mall-service/src/main/java/com/txz/mall/service/StoreCombinationService.java
  10. 11 2
      mall-service/src/main/java/com/txz/mall/service/StorePinkService.java
  11. 1 1
      mall-service/src/main/java/com/txz/mall/service/impl/ProductAttrServiceImpl.java
  12. 1 1
      mall-service/src/main/java/com/txz/mall/service/impl/ProductAttrValueServiceImpl.java
  13. 133 120
      mall-service/src/main/java/com/txz/mall/service/impl/StoreCombinationServiceImpl.java
  14. 1 1
      mall-service/src/main/java/com/txz/mall/service/impl/StoreFlashActivityServiceImpl.java
  15. 58 10
      mall-service/src/main/java/com/txz/mall/service/impl/StorePinkServiceImpl.java
  16. 1 1
      mall-service/src/main/java/com/txz/mall/service/impl/UserAddressServiceImpl.java
  17. 51 0
      mall-service/src/main/java/com/txz/mall/util/RandomUtil.java
  18. 2 433
      mall-service/src/main/java/dto/ProductAttrValueDTO.java
  19. 2 2
      mall-service/src/main/java/dto/StoreFlashActivityDTO.java
  20. 12 0
      mall-service/src/main/java/dto/StoreProductDTO.java
  21. 1 1
      mall-service/src/main/java/vo/FlashActivityVO.java
  22. 1 1
      mall-service/src/main/java/vo/GoPinkVO.java
  23. 8 1
      mall-service/src/main/java/vo/StorePinkResultVO.java
  24. 1 0
      mall-service/src/main/resources/mapper/StoreCombinationMapper.xml

+ 19 - 27
mall-service/src/main/java/com/txz/mall/controller/CombinationController.java

@@ -8,18 +8,14 @@ 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 com.txz.mall.service.StorePinkService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example;
 import vo.GoPinkVO;
-import vo.StorePinkDetailVO;
-import vo.StorePinkVO;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -28,7 +24,7 @@ import java.util.List;
 /**
  * Created by CodeGenerator on 2025/07/14.
  */
-@Api(tags = "[后台]拼团商品管理")
+@Api(tags = "[后台]拼团商品管理")
 @RestController
 @RequestMapping("/combination")
 public class CombinationController {
@@ -37,8 +33,6 @@ public class CombinationController {
 
     @Resource
     private StoreCombinationService storeCombinationService;
-    @Resource
-    private StorePinkService storePinkService;
 
     @PostMapping("/add")
     @ApiOperation(value = "拼团商品表新增")
@@ -159,12 +153,13 @@ public class CombinationController {
     }
 
     /**
-     * 拼团订单列表
+     * 去开团
      */
-    @ApiOperation(value = "拼团订单列表")
-    @GetMapping(value = "/orderPink/{id}")
-    public Result<List<StorePinkDetailVO>> getPinkList(@PathVariable(value = "id") Integer id) {
-        return Result.success(storePinkService.getAdminList(id));
+    @ApiOperation(value = "支付成功-去开团")
+    @PostMapping(value = "/open")
+    public Result goOpen(@RequestParam("orderId") Long orderId) {
+        storeCombinationService.goOpen(orderId);
+        return Result.success();
     }
 
     /**
@@ -174,7 +169,7 @@ public class CombinationController {
      */
     @ApiOperation(value = "去拼团")
     @GetMapping(value = "/pink/{pinkId}")
-    public Result<GoPinkVO> goPink(@PathVariable(value = "pinkId") Integer pinkId) {
+    public Result<GoPinkVO> goPink(@PathVariable(value = "pinkId") Long pinkId) {
         GoPinkVO goPinkResponse = storeCombinationService.goPink(pinkId);
         return Result.success(goPinkResponse);
     }
@@ -185,20 +180,17 @@ public class CombinationController {
     @ApiOperation(value = "更多拼团")
     @GetMapping(value = "/more")
     public Result<PageInfo<StoreCombination>> getMore(@RequestParam Integer comId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) {
-        PageInfo<StoreCombination> more = storeCombinationService.getMore(page, size, comId);
-        return Result.success(more);
-    }
-
-    /**
-     * 取消拼团
-     */
-    @ApiOperation(value = "取消拼团")
-    @PostMapping(value = "/remove")
-    public Result<Object> remove(@RequestBody @Validated StorePinkVO storePinkRequest) {
-        if (storeCombinationService.removePink(storePinkRequest)) {
-            return Result.success("取消成功");
-        } else {
-            return Result.fail("取消失败");
+        PageHelper.startPage(page, size);
+        PageInfo pageInfo = null;
+        try {
+            List<StoreCombination> 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);
     }
+
+
 }

+ 3 - 3
mall-service/src/main/java/com/txz/mall/controller/OrderController.java

@@ -115,16 +115,16 @@ public class OrderController {
         criteria.andEqualTo("isDelete", 0);
         condition.setOrderByClause("create_time DESC");
         if (storeOrder.getOrderId() != null) {
-            criteria.andEqualTo("order_id", storeOrder.getOrderId());
+            criteria.andEqualTo("orderId", storeOrder.getOrderId());
         }
         if (storeOrder.getUid() != null) {
             criteria.andEqualTo("uid", storeOrder.getUid());
         }
         if (storeOrder.getUserPhone() != null) {
-            criteria.andEqualTo("user_phone", storeOrder.getUserPhone());
+            criteria.andEqualTo("userPhone", storeOrder.getUserPhone());
         }
         if (storeOrder.getDeliveryId() != null) {
-            criteria.andEqualTo("delivery_id", storeOrder.getDeliveryId());
+            criteria.andEqualTo("deliveryId", storeOrder.getDeliveryId());
         }
 
         PageInfo pageInfo = null;

+ 40 - 0
mall-service/src/main/java/com/txz/mall/controller/PinkController.java

@@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.*;
 import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example;
+import vo.StorePinkDetailVO;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -121,4 +122,43 @@ public class PinkController {
         }
         return Result.success(pageInfo);
     }
+
+    /**
+     * 拼团订单列表
+     */
+    @ApiOperation(value = "拼团订单列表")
+    @GetMapping(value = "/orderPink/{id}")
+    public Result<List<StorePinkDetailVO>> getPinkList(@PathVariable(value = "id") Integer id) {
+        return Result.success(storePinkService.getAdminList(id));
+    }
+
+    /**
+     * 拼团成功
+     */
+    @ApiOperation(value = "拼团失败")
+    @PostMapping(value = "/pinkSuccess")
+    public Result pinkSuccess(@RequestParam("id") Long id) {
+        storePinkService.pinkSuccess(id);
+        return Result.success();
+    }
+
+    /**
+     * 拼团失败
+     */
+    @ApiOperation(value = "拼团失败")
+    @PostMapping(value = "/pinkFail")
+    public Result pinkFail(@RequestParam("id") Long id) {
+        storePinkService.pinkFail(id);
+        return Result.success();
+    }
+
+    /**
+     * 天选
+     */
+    @ApiOperation(value = "天选")
+    @PostMapping(value = "/theSelection")
+    public Result theSelection(@RequestParam("id") Long id) {
+        storePinkService.theSelection(id);
+        return Result.success();
+    }
 }

+ 27 - 16
mall-service/src/main/java/com/txz/mall/controller/ProductController.java

@@ -8,6 +8,7 @@ import com.txz.mall.core.Result;
 import com.txz.mall.core.ResultCode;
 import com.txz.mall.model.StoreProduct;
 import com.txz.mall.service.StoreProductService;
+import dto.StoreProductDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
@@ -40,7 +41,7 @@ public class ProductController {
 
     @PostMapping("/add")
     @ApiOperation(value = "商品新增")
-    public Result add(@RequestBody StoreProduct storeProduct) {
+    public Result<Long> add(@RequestBody StoreProduct storeProduct) {
         if (storeProduct == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
         }
@@ -56,7 +57,7 @@ public class ProductController {
             log.error("新增对象操作异常e:{}", e);
             return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
         }
-        return Result.success();
+        return Result.success(storeProduct.getId());
     }
 
     // 生成货号的方法
@@ -93,7 +94,8 @@ public class ProductController {
             ids.forEach(id -> {
                 StoreProduct storeProduct = new StoreProduct();
                 storeProduct.setId(id);
-                storeProduct.setIsDelete(1);
+                storeProduct.setIsRecycle(1);
+//                storeProduct.setIsDelete(1);
                 storeProduct.setUpdateTime(new Date());
                 storeProductService.update(storeProduct);
             });
@@ -168,22 +170,31 @@ public class ProductController {
 
     @PostMapping("/list")
     @ApiOperation(value = "商品获取列表")
-    public Result<List<StoreProduct>> list(@RequestBody StoreProduct storeProduct, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) {
+    public Result<List<StoreProduct>> list(@RequestBody StoreProductDTO dto, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) {
        
         PageHelper.startPage(page, size);
 
-        Condition condition = new Condition(storeProduct.getClass());
+        Condition condition = new Condition(StoreProduct.class);
         Criteria criteria = condition.createCriteria();
         criteria.andEqualTo("isDelete", 0);
         condition.setOrderByClause("create_time DESC");
-        if (StringUtils.isNotBlank(storeProduct.getStoreName())) {
-            criteria.andLike("storeName", "%" + storeProduct.getStoreName() + "%");
+        if (StringUtils.isNotBlank(dto.getStoreName())) {
+            criteria.andLike("storeName", "%" + dto.getStoreName() + "%");
+        }
+        if (StringUtils.isNotBlank(dto.getItemNumber())) {
+            criteria.andLike("itemNumber", "%" + dto.getItemNumber() + "%");
+        }
+        if (dto.getIsShow() != null) {
+            criteria.andEqualTo("isShow", dto.getIsShow());
         }
-        if (StringUtils.isNotBlank(storeProduct.getItemNumber())) {
-            criteria.andLike("itemNumber", "%" + storeProduct.getItemNumber() + "%");
+        if (dto.getCateId() != null) {
+            criteria.andEqualTo("cateId", dto.getCateId());
         }
-        if (storeProduct.getCateId() != null) {
-            criteria.andEqualTo("cateId", storeProduct.getCateId());
+        if (dto.getIsRecycle() != null) {
+            criteria.andEqualTo("isRecycle", dto.getIsRecycle());
+        }
+        if (dto.getMinPrice() != null && dto.getMaxPrice() != null) {
+            criteria.andBetween("price", dto.getMinPrice(), dto.getMaxPrice());
         }
         PageInfo pageInfo = null;
         try {
@@ -212,15 +223,15 @@ public class ProductController {
     }
 
     @ApiOperation(value = "商品详情")
-    @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
+    @GetMapping(value = "/info/{id}")
     public Result<StoreProductInfoVO> info(@PathVariable Integer id) {
         return Result.success(storeProductService.getInfo(id));
     }
 
     @PostMapping("/batchShowStatus")
     @ApiOperation(value = "批量商品上下架")
-    public Result batchShowStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer ShowStatus) {
-        if (ShowStatus == null) {
+    public Result batchShowStatus(@RequestParam("ids") List<Long> ids, @RequestParam("showStatus") Integer showStatus) {
+        if (showStatus == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
         }
         if (CollectionUtils.isEmpty(ids)) {
@@ -233,7 +244,7 @@ public class ProductController {
                 storeProduct.setUpdateTime(new Date());
 //                storeProduct.setUpdateUserId(userId);
                 storeProduct.setId(id);
-                storeProduct.setIsShow(ShowStatus);
+                storeProduct.setIsShow(showStatus);
                 storeProductService.update(storeProduct);
             });
         } catch (Exception e) {
@@ -243,7 +254,7 @@ public class ProductController {
         return Result.success();
     }
 
-    @ApiOperation(value = "获取订单各状态数量")
+    @ApiOperation(value = "获取商品各状态数量")
     @GetMapping(value = "/status/num")
     public Result<StoreProductCountItemVO> getOrderStatusNum() {
         return Result.success(storeProductService.getOrderStatusNum());

+ 1 - 1
mall-service/src/main/java/com/txz/mall/controller/UserAddressController.java

@@ -123,7 +123,7 @@ public class UserAddressController {
     }
 
     @PostMapping("/default")
-    @ApiOperation(value = "收获地址更新")
+    @ApiOperation(value = "默认地址")
     public Result defaultAddress(@RequestParam("id") Long id) {
         if (id == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);

+ 15 - 8
mall-service/src/main/java/com/txz/mall/model/StoreCombination.java

@@ -11,7 +11,7 @@ import java.util.Date;
 @Table(name = "m_store_combination")
 public class StoreCombination {
     /**
-     * 拼团商品ID
+     * id
      */
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -24,6 +24,13 @@ public class StoreCombination {
     @ApiModelProperty(value = "商品id")
     private Long productId;
 
+    /**
+     * 商品名称
+     */
+    @Column(name = "product_name")
+    @ApiModelProperty(value = "商品名称")
+    private String productName;
+
     /**
      * 商户id
      */
@@ -109,12 +116,12 @@ public class StoreCombination {
      */
     private Integer combination;
 
-    /**
-     * 商户是否可用 1可用 0不可用
-     */
-    @Column(name = "mer_use")
-    @ApiModelProperty(value = "商户是否可用 1可用 0不可用")
-    private Integer merUse;
+//    /**
+//     * 商户是否可用 1可用 0不可用
+//     */
+//    @Column(name = "mer_use")
+//    @ApiModelProperty(value = "商户是否可用 1可用 0不可用")
+//    private Integer merUse;
 
     /**
      * 是否包邮 1是 0否
@@ -147,7 +154,7 @@ public class StoreCombination {
      * 拼团订单有效时间(小时)
      */
     @Column(name = "effective_time")
-    @ApiModelProperty(value = "拼团订单有效时间(小时)")
+    @ApiModelProperty(value = "拼团订单有效时间()")
     private Integer effectiveTime;
 
     /**

+ 49 - 49
mall-service/src/main/java/com/txz/mall/model/StoreOrder.java

@@ -217,26 +217,26 @@ public class StoreOrder {
     @Column(name = "delivery_id")
     private String deliveryId;
 
-    /**
-     * 消费赚取积分
-     */
-    @ApiModelProperty(value = "消费赚取积分")
-    @Column(name = "gain_integral")
-    private Integer gainIntegral;
-
-    /**
-     * 使用积分
-     */
-    @ApiModelProperty(value = "使用积分")
-    @Column(name = "use_integral")
-    private Integer useIntegral;
-
-    /**
-     * 给用户退了多少积分
-     */
-    @ApiModelProperty(value = "给用户退了多少积分")
-    @Column(name = "back_integral")
-    private Integer backIntegral;
+//    /**
+//     * 消费赚取积分
+//     */
+//    @ApiModelProperty(value = "消费赚取积分")
+//    @Column(name = "gain_integral")
+//    private Integer gainIntegral;
+//
+//    /**
+//     * 使用积分
+//     */
+//    @ApiModelProperty(value = "使用积分")
+//    @Column(name = "use_integral")
+//    private Integer useIntegral;
+//
+//    /**
+//     * 给用户退了多少积分
+//     */
+//    @ApiModelProperty(value = "给用户退了多少积分")
+//    @Column(name = "back_integral")
+//    private Integer backIntegral;
 
     /**
      * 备注
@@ -269,20 +269,20 @@ public class StoreOrder {
 //    @ApiModelProperty(value = "是否是商户商品")
 //    @Column(name = "is_mer_check")
 //    private Integer isMerCheck;
-//
-//    /**
-//     * 拼团商品id0一般商品
-//     */
-//    @ApiModelProperty(value = "拼团商品id0一般商品")
-//    @Column(name = "combination_id")
-//    private Integer combinationId;
+
+    /**
+     * 拼团商品id0一般商品
+     */
+    @ApiModelProperty(value = "拼团商品id 0一般商品")
+    @Column(name = "combination_id")
+    private Integer combinationId;
 
     /**
      * 拼团id 0没有拼团
      */
     @ApiModelProperty(value = "拼团id 0没有拼团")
     @Column(name = "pink_id")
-    private Integer pinkId;
+    private Long pinkId;
 
     /**
      * 成本价
@@ -303,20 +303,20 @@ public class StoreOrder {
 //    @ApiModelProperty(value = "砍价id")
 //    @Column(name = "bargain_id")
 //    private Long bargainId;
-
-    /**
-     * 核销码
-     */
-    @ApiModelProperty(value = "核销码")
-    @Column(name = "verify_code")
-    private String verifyCode;
-
-    /**
-     * 门店id
-     */
-    @ApiModelProperty(value = "门店id")
-    @Column(name = "store_id")
-    private Long storeId;
+//
+//    /**
+//     * 核销码
+//     */
+//    @ApiModelProperty(value = "核销码")
+//    @Column(name = "verify_code")
+//    private String verifyCode;
+//
+//    /**
+//     * 门店id
+//     */
+//    @ApiModelProperty(value = "门店id")
+//    @Column(name = "store_id")
+//    private Long storeId;
 
     /**
      * 配送方式 1=快递 ,2=门店自提
@@ -324,13 +324,13 @@ public class StoreOrder {
     @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提")
     @Column(name = "shipping_type")
     private Integer shippingType;
-
-    /**
-     * 店员id/核销员id
-     */
-    @ApiModelProperty(value = "店员id/核销员id")
-    @Column(name = "clerk_id")
-    private Integer clerkId;
+//
+//    /**
+//     * 店员id/核销员id
+//     */
+//    @ApiModelProperty(value = "店员id/核销员id")
+//    @Column(name = "clerk_id")
+//    private Integer clerkId;
 
     /**
      * 支付渠道(0微信公众号1微信小程序2余额)

+ 8 - 4
mall-service/src/main/java/com/txz/mall/model/StorePink.java

@@ -28,7 +28,7 @@ public class StorePink {
      */
     @ApiModelProperty(value = "订单id 生成")
     @Column(name = "order_id")
-    private Long orderId;
+    private String orderId;
 
     /**
      * 订单id  数据库
@@ -94,12 +94,16 @@ public class StorePink {
      */
     @ApiModelProperty(value = "团长id 0为团长")
     @Column(name = "k_id")
-    private Integer kId;
+    private Long kId;
+
+    @ApiModelProperty(value = "幸运儿 默认0  1为幸运儿 (团长不能是天选)")
+    @Column(name = "l_id")
+    private Long lId;
 
     /**
      * 是否发送模板消息0未发送1已发送
      */
-    @ApiModelProperty(value = "是否发送模板消息0未发送1已发送")
+    @ApiModelProperty(value = "是否发送模板消息 0未发送 1已发送")
     @Column(name = "is_tpl")
     private Integer isTpl;
 
@@ -113,7 +117,7 @@ public class StorePink {
     /**
      * 状态1进行中2已完成3未完成
      */
-    @ApiModelProperty(value = "状态1进行中2已完成3未完成")
+    @ApiModelProperty(value = "状态 1进行中 2已完成 3未完成")
     private Integer status;
 
     /**

+ 8 - 8
mall-service/src/main/java/com/txz/mall/service/StoreCombinationService.java

@@ -1,10 +1,8 @@
 package com.txz.mall.service;
 
-import com.github.pagehelper.PageInfo;
 import com.txz.mall.core.Service;
 import com.txz.mall.model.StoreCombination;
 import vo.GoPinkVO;
-import vo.StorePinkVO;
 
 import java.util.List;
 
@@ -22,20 +20,22 @@ public interface StoreCombinationService extends Service<StoreCombination> {
      */
     void addActivityProduct(List<StoreCombination> list, Long activityId);
 
+    /**
+     * 去开团
+     */
+    void goOpen(Long orderId);
+
     /**
      * 去拼团
      *
      * @param pinkId 拼团团长单ID
      */
-    GoPinkVO goPink(Integer pinkId);
+    GoPinkVO goPink(Long pinkId);
 
     /**
      * 更多拼团信息
      */
-    PageInfo<StoreCombination> getMore(Integer page, Integer size, Integer comId);
+    List<StoreCombination> getMore(Integer comId);
+
 
-    /**
-     * 取消拼团
-     */
-    Boolean removePink(StorePinkVO storePinkRequest);
 }

+ 11 - 2
mall-service/src/main/java/com/txz/mall/service/StorePinkService.java

@@ -28,10 +28,19 @@ public interface StorePinkService extends Service<StorePink> {
     /**
      * 拼团成功
      *
-     * @param kid
+     */
+    void pinkSuccess(Long id);
+
+    /**
+     * 拼团失败----到点自动退回余额
+     */
+    void pinkFail(Long id);
+
+    /**
+     * 天选之子
      * @return
      */
-    boolean pinkSuccess(Long kid);
+    void theSelection(Long id);
 
     /**
      * 查询拼团列表

+ 1 - 1
mall-service/src/main/java/com/txz/mall/service/impl/ProductAttrServiceImpl.java

@@ -20,7 +20,7 @@ import java.util.List;
 @Transactional
 public class ProductAttrServiceImpl extends AbstractService<ProductAttr> implements ProductAttrService {
     @Resource
-    private ProductAttrMapper mProductAttrMapper;
+    private ProductAttrMapper productAttrMapper;
 
     @Override
     public List<ProductAttr> getListByProductIdAndType(Long productId, Integer type) {

+ 1 - 1
mall-service/src/main/java/com/txz/mall/service/impl/ProductAttrValueServiceImpl.java

@@ -20,7 +20,7 @@ import java.util.List;
 @Transactional
 public class ProductAttrValueServiceImpl extends AbstractService<ProductAttrValue> implements ProductAttrValueService {
     @Resource
-    private ProductAttrValueMapper mProductAttrValueMapper;
+    private ProductAttrValueMapper productAttrValueMapper;
 
     @Override
     public List<ProductAttrValue> getListByProductIdAndType(Long productId, Integer type) {

+ 133 - 120
mall-service/src/main/java/com/txz/mall/service/impl/StoreCombinationServiceImpl.java

@@ -1,20 +1,32 @@
 package com.txz.mall.service.impl;
 
-import com.github.pagehelper.PageInfo;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.txz.mall.core.AbstractService;
 import com.txz.mall.core.ServiceException;
 import com.txz.mall.dao.StoreCombinationMapper;
 import com.txz.mall.model.StoreCombination;
 import com.txz.mall.model.StoreFlashActivity;
+import com.txz.mall.model.StoreOrder;
+import com.txz.mall.model.StorePink;
 import com.txz.mall.service.StoreCombinationService;
 import com.txz.mall.service.StoreFlashActivityService;
+import com.txz.mall.service.StoreOrderService;
+import com.txz.mall.service.StorePinkService;
+import org.apache.commons.lang.time.DateUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Condition;
+import tk.mybatis.mapper.entity.Example;
+import vo.FlashActivityVO;
 import vo.GoPinkVO;
-import vo.StorePinkVO;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -29,64 +41,126 @@ public class StoreCombinationServiceImpl extends AbstractService<StoreCombinatio
     @Resource
     private StoreFlashActivityService storeFlashActivityService;
 
+    @Resource
+    private StorePinkService storePinkService;
+
+    @Resource
+    private StoreOrderService storeOrderService;
+
     @Override
     public void addActivityProduct(List<StoreCombination> list, Long activityId) {
         StoreFlashActivity flashActivity = storeFlashActivityService.findById(activityId);
-        if (flashActivity == null) {
+        if (flashActivity == null || flashActivity.getIsDelete().equals(1)) {
             throw new ServiceException("找不到对应的活动");
         }
+        if (CollectionUtils.isEmpty(list)) {
+            throw new ServiceException("添加商品不能为空");
+        }
+        FlashActivityVO activityVO = JSONObject.parseObject(flashActivity.getContent(), FlashActivityVO.class);
+        for (StoreCombination storeCombination : list) {
+            storeCombination.setStartTime(flashActivity.getStartTime());
+            storeCombination.setStopTime(flashActivity.getEndTime());
+            storeCombination.setPeople(activityVO.getGroupNumber());
+            storeCombination.setEffectiveTime(activityVO.getCountdownTime());
+            storeCombination.setStock(activityVO.getInventory());
+        }
+        List<Long> productCollect = list.stream().map(StoreCombination::getProductId).collect(Collectors.toList());
+
+
         save(list);
     }
 
+    @Override
+    public void goOpen(Long orderId) {
+        StoreOrder storeOrder = storeOrderService.findById(orderId);
+        StorePink storePink = new StorePink();
+//        storePink.setUid(user.getUid());
+//        storePink.setAvatar(user.getAvatar());
+//        storePink.setNickname(user.getNickname());
+        storePink.setOrderId(storeOrder.getOrderId());
+        storePink.setOrderIdKey(storeOrder.getId());
+        storePink.setTotalNum(storeOrder.getTotalNum());
+        storePink.setTotalPrice(storeOrder.getTotalPrice());
+        StoreCombination storeCombination = findById(storeOrder.getCombinationId());
+        storePink.setCid(storeCombination.getId());
+        storePink.setPid(storeCombination.getProductId());
+        storePink.setPeople(storeCombination.getPeople());
+        storePink.setPrice(storeCombination.getPrice());
+        Date date = new Date();
+        Integer effectiveTime = storeCombination.getEffectiveTime();
+        storePink.setAddTime(date);
+        storePink.setStopTime(DateUtils.addMinutes(date, effectiveTime));
+        storePink.setKId(0L);
+        storePink.setIsTpl(0);
+        storePink.setIsRefund(0);
+        storePink.setStatus(1);
+        storePinkService.save(storePink);
+        // 如果是开团,需要更新订单数据
+        storeOrder.setPinkId(storePink.getId());
+        storeOrderService.update(storeOrder);
+    }
+
 
     @Override
-    public GoPinkVO goPink(Integer pinkId) {
-        int isOk = 0;//判断拼团是否完成
-        int userBool = 0;//判断当前用户是否在团内  0未在 1在
-        int pinkBool = 0;//判断拼团是否成功  0未成功 1成功
-//
-//        StorePink teamPink = storePinkService.getById(pinkId);
-//        if (ObjectUtil.isNull(teamPink) || teamPink.getIsRefund()) throw new CrmebException("对应的拼团不存在");
-//        StoreCombination storeCombination = getById(teamPink.getCid());
-//        if (ObjectUtil.isNull(storeCombination) || storeCombination.getIsDel()) throw new CrmebException("对应拼团商品不存在");
-//
-//        // 判断拼团活动时效
-//        if (!storeCombination.getIsShow()) {
-//            throw new ServiceException("拼团活动已结束");
-//        }
-//        if (System.currentTimeMillis() > storeCombination.getStopTime()) {
-//            throw new ServiceException("拼团活动已结束");
-//        }
+    public GoPinkVO goPink(Long pinkId) {
+        //判断拼团是否完成
+        int isOk = 0;
+        //判断当前用户是否在团内  0未在 1在
+        int userBool = 0;
+        //判断拼团是否成功  0未成功 1成功
+        int pinkBool = 0;
+        Date date = new Date();
+
+        StorePink teamPink = storePinkService.findById(pinkId);
+        if (ObjectUtil.isNull(teamPink) || teamPink.getIsRefund().equals(1)) {
+            throw new ServiceException("对应的拼团不存在");
+        }
+        StoreCombination storeCombination = findById(teamPink.getCid());
+        if (ObjectUtil.isNull(storeCombination) || storeCombination.getIsDelete().equals(1)) {
+            throw new ServiceException("对应拼团商品不存在");
+        }
+
+        // 判断拼团活动时效
+        if (storeCombination.getIsShow().equals(0)) {
+            throw new ServiceException("拼团活动已结束");
+        }
+        if (date.after(storeCombination.getStopTime())) {
+            throw new ServiceException("拼团活动已结束");
+        }
 //
 //        User user = userService.getInfo();
 //
 //        GoPinkResponse goPinkResponse = new GoPinkResponse();
-//        List<StorePink> pinkList;
-//        if (teamPink.getKId().equals(0)) {
-//            pinkList = storePinkService.getListByCidAndKid(teamPink.getCid(), teamPink.getId());
-//            pinkList.add(teamPink);
-//        } else {
-//            pinkList = storePinkService.getListByCidAndKid(teamPink.getCid(), teamPink.getKId());
-//            pinkList.add(storePinkService.getById(teamPink.getKId()));
-//        }
-//        //拼团剩余人数
-//        int count = teamPink.getPeople() - ( CollUtil.isEmpty(pinkList) ? 0 : pinkList.size() );
-//
-//        if (teamPink.getStatus() == 2) {//已完成
-//            isOk = 1;
-//            pinkBool = 1;
-//        }
-//        if (teamPink.getStatus() == 1) {//进行中
-//            if (count < 1) {// 拼团已完成
-//                isOk = 1;
-//                pinkBool = 1;
-//                // 拼团完成处理
-//                storePinkService.pinkSuccess(teamPink.getId());
-//            }
-//        }
-//
-//        List<Integer> uidList = pinkList.stream().map(StorePink::getUid).collect(Collectors.toList());
-//        uidList.add(teamPink.getUid());
+        List<StorePink> pinkList;
+        if (teamPink.getKId().equals(0L)) {
+            pinkList = storePinkService.getListByCidAndKid(teamPink.getCid(), teamPink.getId());
+            pinkList.add(teamPink);
+        } else {
+            // 名额占用的问题 (支付成功的才算1个)
+            pinkList = storePinkService.getListByCidAndKid(teamPink.getCid(), teamPink.getKId());
+            pinkList.add(storePinkService.findById(teamPink.getKId()));
+        }
+        //拼团剩余人数
+        int count = teamPink.getPeople() - (CollUtil.isEmpty(pinkList) ? 0 : pinkList.size());
+
+        if (teamPink.getStatus() == 2) {
+            //已完成
+            isOk = 1;
+            pinkBool = 1;
+        }
+        if (teamPink.getStatus() == 1) {
+            //进行中
+            if (count < 1) {
+                // 拼团已完成
+                isOk = 1;
+                pinkBool = 1;
+                // 拼团完成处理
+                storePinkService.pinkSuccess(teamPink.getId());
+            }
+        }
+
+        List<Long> uidList = pinkList.stream().map(StorePink::getUid).collect(Collectors.toList());
+        uidList.add(teamPink.getUid());
 //        if (uidList.contains(user.getUid())) {
 //            userBool = 1;
 //        }
@@ -174,81 +248,20 @@ public class StoreCombinationServiceImpl extends AbstractService<StoreCombinatio
     }
 
     @Override
-    public PageInfo<StoreCombination> getMore(Integer page, Integer size, Integer comId) {
-//        Page<StoreCombination> combinationPage = PageHelper.startPage(page, size);
-//        LambdaQueryWrapper<StoreCombination> lqw = new LambdaQueryWrapper<>();
-//        if (ObjectUtil.isNotNull(comId)) {
-//            lqw.ne(StoreCombination::getId, comId);
-//        }
-//        lqw.eq(StoreCombination::getIsDel, false);
-//        lqw.eq(StoreCombination::getIsShow, true);
-//        long millis = System.currentTimeMillis();
-//        lqw.le(StoreCombination::getStartTime, millis);
-//        lqw.ge(StoreCombination::getStopTime, millis);
-//        lqw.orderByDesc(StoreCombination::getSort, StoreCombination::getId);
-//        List<StoreCombination> storeCombinations = dao.selectList(lqw);
-//        return CommonPage.copyPageInfo(combinationPage, storeCombinations);
-        return null;
+    public List<StoreCombination> getMore(Integer comId) {
+        Condition condition = new Condition(StoreCombination.class);
+        Example.Criteria criteria = condition.createCriteria();
+        criteria.andEqualTo("isDelete", 0);
+        if (comId != null) {
+            criteria.andEqualTo("id", comId);
+        }
+        criteria.andEqualTo("isShow", 1);
+        Date date = new Date();
+        criteria.andLessThanOrEqualTo("startTime", date);
+        criteria.andGreaterThanOrEqualTo("stopTime", date);
+        condition.setOrderByClause("sort DESC, id DESC");
+        return findByCondition(condition);
     }
 
-    /**
-     * 取消拼团
-     *
-     * @return 此处只是转为申请退款订单
-     * 自己是团长,取消后,顺位第一人变为团长
-     * 自己不是团长,直接取消
-     */
-    @Override
-    public Boolean removePink(StorePinkVO storePinkRequest) {
-//        StorePink userPink = storePinkService.getById(storePinkRequest.getId());
-//        if (ObjectUtil.isNull(userPink)) throw new CrmebException("未查到拼团信息,无法取消");
-//        if (userPink.getIsRefund()) throw new CrmebException("拼团订单已退款");
-//        // 获取是否拼团成功
-//        if (userPink.getStatus() == 2) {
-//            throw new CrmebException("拼团已完成,无法取消");
-//        }
-//        Integer kid = userPink.getKId() > 0 ? userPink.getKId() : userPink.getId();
-//        Integer count = storePinkService.getCountByKid(kid);
-//        if (count.equals(userPink.getPeople())) {
-//            // 拼团完成操作
-//            storePinkService.pinkSuccess(kid);
-//            throw new CrmebException("拼团已完成,无法取消");
-//        }
-//        if (userPink.getStatus() == 3) {
-//            throw new CrmebException("拼团已申请取消");
-//        }
-//
-//        StoreOrder order = storeOrderService.getByOderId(userPink.getOrderId());
-//        if (ObjectUtil.isNull(order) || order.getIsDel()) throw new CrmebException("拼团订单不存在");
-//        if (order.getStatus() == -1 && order.getRefundStatus() != 0) {
-//            throw new CrmebException("拼团订单已进入退款流程");
-//        }
-//
-//        // 订单申请退款
-//        OrderRefundApplyRequest refundRequest = new OrderRefundApplyRequest();
-//        refundRequest.setId(order.getId());
-//        refundRequest.setUni(order.getOrderId());
-//        refundRequest.setText("拼团订单取消,申请退款");
-//        refundRequest.setExplain("用户取消拼团订单,申请退款");
-//        boolean apply = orderService.refundApply(refundRequest);
-//        if (!apply) throw new CrmebException("订单申请退款失败");
-//
-//        // 拼团改为未完成
-//        userPink.setStatus(3).setStopTime(System.currentTimeMillis());
-//        storePinkService.updateById(userPink);
-//        if (userPink.getKId() == 0) {// 是团长
-//            List<StorePink> pinkList = storePinkService.getListByCidAndKid(userPink.getCid(), userPink.getId());
-//            if (CollUtil.isNotEmpty(pinkList)) {
-//                // 团员更换团长
-//                StorePink newHeadPink = pinkList.get(pinkList.size() - 1);
-//                newHeadPink.setKId(0);
-//                pinkList.remove(pinkList.size() - 1);
-//                pinkList.forEach(i -> i.setKId(newHeadPink.getId()));
-//                pinkList.add(newHeadPink);
-//                storePinkService.updateBatchById(pinkList);
-//            }
-//        }
 
-        return true;
-    }
 }

+ 1 - 1
mall-service/src/main/java/com/txz/mall/service/impl/StoreFlashActivityServiceImpl.java

@@ -17,6 +17,6 @@ import javax.annotation.Resource;
 @Transactional
 public class StoreFlashActivityServiceImpl extends AbstractService<StoreFlashActivity> implements StoreFlashActivityService {
     @Resource
-    private StoreFlashActivityMapper mStoreFlashActivityMapper;
+    private StoreFlashActivityMapper storeFlashActivityMapper;
 
 }

+ 58 - 10
mall-service/src/main/java/com/txz/mall/service/impl/StorePinkServiceImpl.java

@@ -54,7 +54,12 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
         List<StorePinkDetailVO> responseList = pinkList.stream().map(pink -> {
             StorePinkDetailVO response = new StorePinkDetailVO();
             BeanUtils.copyProperties(pink, response);
-            StoreOrder storeOrder = storeOrderService.findById(pink.getOrderId());
+            Condition orderCondition = new Condition(StorePink.class);
+            Example.Criteria orderCriteria = condition.createCriteria();
+            orderCriteria.andEqualTo("isDelete", 0);
+            orderCriteria.andEqualTo("id", pinkId);
+            orderCriteria.andEqualTo("orderId", pink.getOrderId());
+            StoreOrder storeOrder = storeOrderService.findByCondition(orderCondition).get(0);
             if (ObjectUtil.isNotNull(storeOrder)) {
                 response.setOrderStatus(storeOrder.getStatus());
                 response.setRefundStatus(storeOrder.getRefundStatus());
@@ -168,23 +173,66 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
     /**
      * 拼团成功
      *
-     * @param kid
-     * @return
+     * @param id
      */
     @Override
-    public boolean pinkSuccess(Long kid) {
-        if (ObjectUtil.isNull(kid)) {
-            return false;
+    public void pinkSuccess(Long id) {
+        if (ObjectUtil.isNull(id)) {
+            return;
         }
-        StorePink teamPink = findById(kid);
-        List<StorePink> memberList = getListByCidAndKid(teamPink.getCid(), kid);
+        StorePink teamPink = findById(id);
+        List<StorePink> memberList = getListByCidAndKid(teamPink.getCid(), id);
         memberList.add(teamPink);
         memberList.forEach(i -> {
             i.setStatus(2);
             i.setStopTime(new Date());
             update(i);
         });
-        return true;
+    }
+
+    @Override
+    public void pinkFail(Long id) {
+        StorePink userPink = findById(id);
+//        // 订单申请退款
+//        OrderRefundApplyRequest refundRequest = new OrderRefundApplyRequest();
+//        refundRequest.setId(order.getId());
+//        refundRequest.setUni(order.getOrderId());
+//        refundRequest.setText("拼团订单取消,申请退款");
+//        refundRequest.setExplain("用户取消拼团订单,申请退款");
+//        boolean apply = orderService.refundApply(refundRequest);
+//        if (!apply) throw new CrmebException("订单申请退款失败");
+//
+//        // 拼团改为未完成
+//        userPink.setStatus(3).setStopTime(System.currentTimeMillis());
+//        storePinkService.updateById(userPink);
+    }
+
+    @Override
+    public void theSelection(Long id) {
+        // 假设只有1个用户是天选
+        long luckNum = 1;
+
+        Condition condition = new Condition(StorePink.class);
+        Example.Criteria criteria = condition.createCriteria();
+        criteria.andEqualTo("isDelete", 0);
+        // 排除团长
+        criteria.andEqualTo("kId", 1);
+        // 支付成功的
+
+        criteria.andEqualTo("status", 1);
+        List<StorePink> list = findByCondition(condition);
+        if (CollUtil.isEmpty(list)) {
+            throw new ServiceException("没有拼团订单");
+        }
+        long count = list.stream().filter(i -> i.getLId().equals(1L)).count();
+        if (count >= luckNum) {
+            throw new ServiceException("已有天选");
+        }
+
+
+        List<Long> idCollect = list.stream().map(StorePink::getId).collect(Collectors.toList());
+//        List<Long> randomIds = RandomUtils.getRandomElements(idCollect, 3);
+
     }
 
     @Override
@@ -193,7 +241,7 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
         Example.Criteria criteria = condition.createCriteria();
         criteria.andEqualTo("isDelete", 0);
         criteria.andEqualTo("kId", kid);
-        criteria.andEqualTo("cid", cid);
+        criteria.andEqualTo("cId", cid);
         condition.setOrderByClause("id DESC");
         return findByCondition(condition);
     }

+ 1 - 1
mall-service/src/main/java/com/txz/mall/service/impl/UserAddressServiceImpl.java

@@ -17,6 +17,6 @@ import javax.annotation.Resource;
 @Transactional
 public class UserAddressServiceImpl extends AbstractService<UserAddress> implements UserAddressService {
     @Resource
-    private UserAddressMapper mUserAddressMapper;
+    private UserAddressMapper userAddressMapper;
 
 }

+ 51 - 0
mall-service/src/main/java/com/txz/mall/util/RandomUtil.java

@@ -0,0 +1,51 @@
+package com.txz.mall.util;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+
+public class RandomUtil {
+
+    /**
+     * 从指定列表中随机抽取若干个唯一元素 (不允许重复)
+     *
+     * @param originalList 原始数据列表
+     * @param count        要抽取的数量
+     * @return 随机抽取的子列表
+     */
+    public static <T> List<T> uniqueRandom(List<T> originalList, int count) {
+        if (originalList == null || originalList.isEmpty() || count <= 0) {
+            return Collections.emptyList();
+        }
+
+        // 创建副本以避免修改原始列表
+        List<T> copyList = new ArrayList<>(originalList);
+        // 打乱顺序
+        Collections.shuffle(copyList);
+        // 取出前 count 个
+        return copyList.subList(0, Math.min(count, copyList.size()));
+    }
+
+
+    /**
+     * 从指定列表中随机抽取若干个元素(允许重复)
+     *
+     * @param originalList 原始数据列表
+     * @param count        要抽取的数量
+     * @return 随机抽取的子列表
+     */
+    public static <T> List<T> repeatedRandom(List<T> originalList, int count) {
+        if (originalList == null || originalList.isEmpty() || count <= 0) {
+            return Collections.emptyList();
+        }
+
+        List<T> result = new ArrayList<>();
+        for (int i = 0; i < count; i++) {
+            int index = new Random().nextInt(originalList.size());
+            result.add(originalList.get(index));
+        }
+        return result;
+    }
+
+}

+ 2 - 433
mall-service/src/main/java/dto/ProductAttrValueDTO.java

@@ -78,7 +78,7 @@ public class ProductAttrValueDTO implements Serializable {
     /**
      * 活动类型 0=商品,1=秒杀,2=砍价,3=拼团
      */
-    private Boolean type;
+    private Integer type;
     /**
      * 活动限购数量
      */
@@ -106,441 +106,10 @@ public class ProductAttrValueDTO implements Serializable {
     /**
      * 是否删除
      */
-    private Byte isDelete;
+    private Integer isDelete;
     /**
      * attr_values 创建更新时的属性对应
      */
     private String attrValue;
 
-    /**
-     * 主键
-     *
-     * @return id 主键
-     */
-    public Long getId() {
-        return id;
-    }
-
-    /**
-     * 主键
-     *
-     * @param id 主键
-     */
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    /**
-     * 商品ID
-     *
-     * @return product_id 商品ID
-     */
-    public Long getProductId() {
-        return productId;
-    }
-
-    /**
-     * 商品ID
-     *
-     * @param productId 商品ID
-     */
-    public void setProductId(Long productId) {
-        this.productId = productId;
-    }
-
-    /**
-     * SKU编号
-     *
-     * @return sku_code SKU编号
-     */
-    public String getSkuCode() {
-        return skuCode;
-    }
-
-    /**
-     * SKU编号
-     *
-     * @param skuCode SKU编号
-     */
-    public void setSkuCode(String skuCode) {
-        this.skuCode = skuCode;
-    }
-
-    /**
-     * 商品属性索引值 (attr_value|attr_value[|....])
-     *
-     * @return suk 商品属性索引值 (attr_value|attr_value[|....])
-     */
-    public String getSuk() {
-        return suk;
-    }
-
-    /**
-     * 商品属性索引值 (attr_value|attr_value[|....])
-     *
-     * @param suk 商品属性索引值 (attr_value|attr_value[|....])
-     */
-    public void setSuk(String suk) {
-        this.suk = suk;
-    }
-
-    /**
-     * 属性对应的库存
-     *
-     * @return stock 属性对应的库存
-     */
-    public Integer getStock() {
-        return stock;
-    }
-
-    /**
-     * 属性对应的库存
-     *
-     * @param stock 属性对应的库存
-     */
-    public void setStock(Integer stock) {
-        this.stock = stock;
-    }
-
-    /**
-     * 库存预警值
-     *
-     * @return stock_threshold 库存预警值
-     */
-    public Integer getStockThreshold() {
-        return stockThreshold;
-    }
-
-    /**
-     * 库存预警值
-     *
-     * @param stockThreshold 库存预警值
-     */
-    public void setStockThreshold(Integer stockThreshold) {
-        this.stockThreshold = stockThreshold;
-    }
-
-    /**
-     * 销量
-     *
-     * @return sales 销量
-     */
-    public Integer getSales() {
-        return sales;
-    }
-
-    /**
-     * 销量
-     *
-     * @param sales 销量
-     */
-    public void setSales(Integer sales) {
-        this.sales = sales;
-    }
-
-    /**
-     * 属性金额
-     *
-     * @return price 属性金额
-     */
-    public BigDecimal getPrice() {
-        return price;
-    }
-
-    /**
-     * 属性金额
-     *
-     * @param price 属性金额
-     */
-    public void setPrice(BigDecimal price) {
-        this.price = price;
-    }
-
-    /**
-     * 图片
-     *
-     * @return image 图片
-     */
-    public String getImage() {
-        return image;
-    }
-
-    /**
-     * 图片
-     *
-     * @param image 图片
-     */
-    public void setImage(String image) {
-        this.image = image;
-    }
-
-    /**
-     * 成本价
-     *
-     * @return cost 成本价
-     */
-    public BigDecimal getCost() {
-        return cost;
-    }
-
-    /**
-     * 成本价
-     *
-     * @param cost 成本价
-     */
-    public void setCost(BigDecimal cost) {
-        this.cost = cost;
-    }
-
-    /**
-     * 原价
-     *
-     * @return ot_price 原价
-     */
-    public BigDecimal getOtPrice() {
-        return otPrice;
-    }
-
-    /**
-     * 原价
-     *
-     * @param otPrice 原价
-     */
-    public void setOtPrice(BigDecimal otPrice) {
-        this.otPrice = otPrice;
-    }
-
-    /**
-     * 重量
-     *
-     * @return weight 重量
-     */
-    public BigDecimal getWeight() {
-        return weight;
-    }
-
-    /**
-     * 重量
-     *
-     * @param weight 重量
-     */
-    public void setWeight(BigDecimal weight) {
-        this.weight = weight;
-    }
-
-    /**
-     * 体积
-     *
-     * @return volume 体积
-     */
-    public BigDecimal getVolume() {
-        return volume;
-    }
-
-    /**
-     * 体积
-     *
-     * @param volume 体积
-     */
-    public void setVolume(BigDecimal volume) {
-        this.volume = volume;
-    }
-
-    /**
-     * 一级返佣
-     *
-     * @return brokerage 一级返佣
-     */
-    public BigDecimal getBrokerage() {
-        return brokerage;
-    }
-
-    /**
-     * 一级返佣
-     *
-     * @param brokerage 一级返佣
-     */
-    public void setBrokerage(BigDecimal brokerage) {
-        this.brokerage = brokerage;
-    }
-
-    /**
-     * 二级返佣
-     *
-     * @return brokerage_two 二级返佣
-     */
-    public BigDecimal getBrokerageTwo() {
-        return brokerageTwo;
-    }
-
-    /**
-     * 二级返佣
-     *
-     * @param brokerageTwo 二级返佣
-     */
-    public void setBrokerageTwo(BigDecimal brokerageTwo) {
-        this.brokerageTwo = brokerageTwo;
-    }
-
-    /**
-     * 活动类型 0=商品,1=秒杀,2=砍价,3=拼团
-     *
-     * @return type 活动类型 0=商品,1=秒杀,2=砍价,3=拼团
-     */
-    public Boolean getType() {
-        return type;
-    }
-
-    /**
-     * 活动类型 0=商品,1=秒杀,2=砍价,3=拼团
-     *
-     * @param type 活动类型 0=商品,1=秒杀,2=砍价,3=拼团
-     */
-    public void setType(Boolean type) {
-        this.type = type;
-    }
-
-    /**
-     * 活动限购数量
-     *
-     * @return quota 活动限购数量
-     */
-    public Integer getQuota() {
-        return quota;
-    }
-
-    /**
-     * 活动限购数量
-     *
-     * @param quota 活动限购数量
-     */
-    public void setQuota(Integer quota) {
-        this.quota = quota;
-    }
-
-    /**
-     * 活动限购数量显示
-     *
-     * @return quota_show 活动限购数量显示
-     */
-    public Integer getQuotaShow() {
-        return quotaShow;
-    }
-
-    /**
-     * 活动限购数量显示
-     *
-     * @param quotaShow 活动限购数量显示
-     */
-    public void setQuotaShow(Integer quotaShow) {
-        this.quotaShow = quotaShow;
-    }
-
-    /**
-     * 创建时间
-     *
-     * @return create_time 创建时间
-     */
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    /**
-     * 创建时间
-     *
-     * @param createTime 创建时间
-     */
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    /**
-     * 更新时间
-     *
-     * @return update_time 更新时间
-     */
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    /**
-     * 更新时间
-     *
-     * @param updateTime 更新时间
-     */
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    /**
-     * 创建人id
-     *
-     * @return create_user_id 创建人id
-     */
-    public Long getCreateUserId() {
-        return createUserId;
-    }
-
-    /**
-     * 创建人id
-     *
-     * @param createUserId 创建人id
-     */
-    public void setCreateUserId(Long createUserId) {
-        this.createUserId = createUserId;
-    }
-
-    /**
-     * 更新人id
-     *
-     * @return update_user_id 更新人id
-     */
-    public Long getUpdateUserId() {
-        return updateUserId;
-    }
-
-    /**
-     * 更新人id
-     *
-     * @param updateUserId 更新人id
-     */
-    public void setUpdateUserId(Long updateUserId) {
-        this.updateUserId = updateUserId;
-    }
-
-    /**
-     * 是否删除
-     *
-     * @return is_delete 是否删除
-     */
-    public Byte getIsDelete() {
-        return isDelete;
-    }
-
-    /**
-     * 是否删除
-     *
-     * @param isDelete 是否删除
-     */
-    public void setIsDelete(Byte isDelete) {
-        this.isDelete = isDelete;
-    }
-
-    /**
-     * attr_values 创建更新时的属性对应
-     *
-     * @return attr_value attr_values 创建更新时的属性对应
-     */
-    public String getAttrValue() {
-        return attrValue;
-    }
-
-    /**
-     * attr_values 创建更新时的属性对应
-     *
-     * @param attrValue attr_values 创建更新时的属性对应
-     */
-    public void setAttrValue(String attrValue) {
-        this.attrValue = attrValue;
-    }
 }

+ 2 - 2
mall-service/src/main/java/dto/StoreFlashActivityDTO.java

@@ -8,6 +8,7 @@ package dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import vo.FlashActivityVO;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -86,7 +87,6 @@ public class StoreFlashActivityDTO implements Serializable {
      * 内容
      */
     @ApiModelProperty(value = "内容")
-    private String content;
-
+    private FlashActivityVO content;
 
 }

+ 12 - 0
mall-service/src/main/java/dto/StoreProductDTO.java

@@ -281,4 +281,16 @@ public class StoreProductDTO implements Serializable {
      */
     @ApiModelProperty("展示图(详情图)")
     private String flatPattern;
+
+    /**
+     * 最低价格
+     */
+    @ApiModelProperty("最低价格")
+    private BigDecimal minPrice;
+
+    /**
+     * 最高价格
+     */
+    @ApiModelProperty("最高价格")
+    private BigDecimal maxPrice;
 }

+ 1 - 1
mall-service/src/main/java/vo/FlashActivityVO.java

@@ -18,7 +18,7 @@ public class FlashActivityVO implements Serializable {
     @ApiModelProperty(value = "成团人数")
     private Integer groupNumber;
 
-    @ApiModelProperty(value = "倒计时时间 (单位:)")
+    @ApiModelProperty(value = "倒计时时间 (单位:)")
     private Integer countdownTime;
 
     @ApiModelProperty(value = "库存")

+ 1 - 1
mall-service/src/main/java/vo/GoPinkVO.java

@@ -29,7 +29,7 @@ public class GoPinkVO implements Serializable {
     /**
      * 团员列表
      **/
-    private List<StorePinkVO> pinkAll;
+    private List<StorePinkResultVO> pinkAll;
 
     /**
      * 拼团是否成功  0未成功 1成功

+ 8 - 1
mall-service/src/main/java/vo/StorePinkVO.java → mall-service/src/main/java/vo/StorePinkResultVO.java

@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.util.List;
 
 
 @Data
@@ -15,7 +16,7 @@ import java.io.Serializable;
 @Accessors(chain = true)
 @TableName("eb_store_pink")
 @ApiModel(value = "StorePink对象", description = "拼团表")
-public class StorePinkVO implements Serializable {
+public class StorePinkResultVO implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -24,4 +25,10 @@ public class StorePinkVO implements Serializable {
 
     @ApiModelProperty(value = "拼团商品id")
     private Integer cid;
+
+    @ApiModelProperty(value = "拼团成功的用户")
+    private List<Long> successUser;
+
+    @ApiModelProperty(value = "拼团失败的用户")
+    private List<Long> failUser;
 }

+ 1 - 0
mall-service/src/main/resources/mapper/StoreCombinationMapper.xml

@@ -7,6 +7,7 @@
         -->
         <id column="id" jdbcType="BIGINT" property="id"/>
         <result column="product_id" jdbcType="BIGINT" property="productId"/>
+        <result column="product_name" jdbcType="VARCHAR" property="productName"/>
         <result column="mer_id" jdbcType="BIGINT" property="merId"/>
         <result column="image" jdbcType="VARCHAR" property="image"/>
         <result column="images" jdbcType="VARCHAR" property="images"/>