| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package com.izouma.jiashanxia.service;
- import cn.hutool.core.util.ObjectUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.izouma.jiashanxia.domain.SetGoods;
- import com.izouma.jiashanxia.domain.User;
- import com.izouma.jiashanxia.domain.UserSet;
- import com.izouma.jiashanxia.domain.UserSetFlow;
- import com.izouma.jiashanxia.dto.GoodsDTO;
- import com.izouma.jiashanxia.dto.PageQuery;
- import com.izouma.jiashanxia.enums.FlowType;
- import com.izouma.jiashanxia.repo.UserRepo;
- import com.izouma.jiashanxia.repo.UserSetFlowRepo;
- import com.izouma.jiashanxia.repo.UserSetRepo;
- import com.izouma.jiashanxia.utils.JpaUtils;
- import lombok.AllArgsConstructor;
- import org.springframework.data.domain.Page;
- import org.springframework.stereotype.Service;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- @Service
- @AllArgsConstructor
- public class UserSetService {
- private UserSetRepo userSetRepo;
- private UserSetFlowRepo userSetFlowRepo;
- private UserRepo userRepo;
- public Page<UserSet> all(PageQuery pageQuery) {
- return userSetRepo.findAll(JpaUtils.toSpecification(pageQuery, UserSet.class), JpaUtils.toPageRequest(pageQuery));
- }
- /*
- 加入套餐
- 用户套餐和企业套餐重叠怎么办?
- */
- public void joinUserSet(Long userId, List<SetGoods> setGoodsList) {
- // 用户已有套餐
- Map<Long, UserSet> userSetMap = userSetRepo.findAllByUserId(userId)
- .stream()
- .collect(Collectors.toMap(UserSet::getGoodsInfoId, userSet -> userSet));
- // 加入用户套餐
- setGoodsList.forEach(setGoods -> {
- UserSet goods = userSetMap.get(setGoods.getGoodsInfoId());
- if (ObjectUtil.isNotEmpty(goods)) {
- goods.setNum(goods.getNum() + setGoods.getNum());
- goods.setRemark(setGoods.getRemark());
- } else {
- goods = UserSet.builder()
- .userId(userId)
- .goodsInfoId(setGoods.getGoodsInfoId())
- .num(setGoods.getNum())
- .remark(setGoods.getRemark())
- .build();
- }
- userSetRepo.save(goods);
- });
- // 记录套餐流水
- List<GoodsDTO> goodsDTOS = JSONObject.parseArray(JSONObject.toJSONString(setGoodsList), GoodsDTO.class);
- userSetFlowRepo.save(UserSetFlow.builder()
- .userId(userId)
- .type(FlowType.BUY)
- .content(JSONObject.toJSONString(goodsDTOS))
- .build());
- }
- /*
- 我的推广
- */
- public List<User> myPromotion(Long userId) {
- List<User> children = userRepo.findAllByParent(userId);
- return null;
- }
- }
|