| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package com.cyksj.service.groups.impl;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.cyksj.common.constant.Constant;
- import com.cyksj.mapper.AccountMapper;
- import com.cyksj.mapper.GroupsMapper;
- import com.cyksj.mapper.GroupsRelationMapper;
- import com.cyksj.model.entity.Account;
- import com.cyksj.model.entity.GoodsDonSku;
- import com.cyksj.model.entity.GroupsRelation;
- import com.cyksj.model.entity.GroupsTrips;
- import com.cyksj.model.manage.views.AccountView;
- import com.cyksj.service.groups.GroupsFuncService;
- import com.ejlchina.searcher.BeanSearcher;
- import com.ejlchina.searcher.util.MapUtils;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.dao.DuplicateKeyException;
- import org.springframework.stereotype.Service;
- /*
- *项目名: netflix
- *文件名: GroupFunServiceImpl
- *创建者: JavaZou
- *创建时间:2023/6/8 16:34
- */
- @Service
- @RequiredArgsConstructor
- @Slf4j
- public class GroupFunServiceImpl implements GroupsFuncService {
- private final BeanSearcher beanSearcher;
- private final GroupsMapper groupsMapper;
- private final GroupsRelationMapper groupsRelationMapper;
- private final AccountMapper accountMapper;
- @Override
- public GroupsRelation createNewGroupsTrips(GoodsDonSku sku) {
- //新增车次
- GroupsTrips groups = new GroupsTrips();
- groups.setSkuId(sku.getId());
- groups.setNum(sku.getNum());
- groups.setAvailableNum(sku.getNum());
- if (sku.getGoodsId() == 23) {
- AccountView accountView = beanSearcher.searchFirst(AccountView.class, MapUtils.builder().field(AccountView::getGoodsId, 23).onlySelect(AccountView::getId).build());
- if (accountView != null) {
- groups.setAccountId(accountView.getId());
- groups.setStatus(GroupsTrips.Status.validity);
- groups.setRemark("已设置唯一账号");
- } else {
- groups.setStatus(GroupsTrips.Status.waiting);
- groups.setRemark("等待设置账号");
- }
- } else {
- groups.setStatus(GroupsTrips.Status.waiting);
- groups.setRemark("等待设置账号");
- }
- //限制每天新车队前3天 停车数量
- //10人镜像月付GPT
- Integer availableParkingNum = 0;
- if (sku.getId() == 161l || sku.getId() == 422l) {
- availableParkingNum = 20;
- }
- //4人镜像月付GPT
- if (sku.getId() == 178l || sku.getId() == 423l) {
- availableParkingNum = 6;
- }
- //如果是镜像车队
- setMirrorUnifyAccount(sku, groups);
- groups.setAvailableParkingNum(availableParkingNum);
- groupsMapper.insert(groups);
- GroupsRelation relation = new GroupsRelation();
- relation.setGroupsId(groups.getId());
- relation.setNum(1);
- relation.setStatus(GroupsRelation.Status.none);
- relation.setGroupsId(groups.getId());
- groupsRelationMapper.insert(relation);
- for (int i = 2; i <= groups.getNum(); i++) {
- GroupsRelation groupsRelation = new GroupsRelation();
- groupsRelation.setGroupsId(groups.getId());
- groupsRelation.setNum(i);
- groupsRelation.setStatus(GroupsRelation.Status.none);
- groupsRelationMapper.insert(groupsRelation);
- }
- return relation;
- }
- /**
- * 设置镜像统一账号
- */
- public void setMirrorUnifyAccount(GoodsDonSku sku, GroupsTrips groups) {
- //如果是GPT、MJ镜像车队
- //设置唯一账号
- Long goodsId = sku.getGoodsId();
- Boolean isMirror = sku.getIsMirror();
- Boolean isCar = sku.getIsCar();
- String account = null;
- if ((goodsId == Constant.CLAUDE_CODE_GOODS_ID) || (goodsId == 88 && isMirror) || (goodsId == 87 && isMirror) || (goodsId == 18 && isCar) || (goodsId == 26 && isMirror) || (goodsId == 75 && isCar)) {
- if (goodsId == 18) {
- account = Constant.GPT_CAR_ONLY_ACCOUNT;
- }
- if (goodsId == 26) {
- account = Constant.MJ_MIRROR_ONLY_ACCOUNT;
- }
- if (goodsId == 75) {
- account = Constant.CLAUDE_MIRROR_ONLY_ACCOUNT;
- }
- if (goodsId == 87) {
- account = Constant.LUMA_MIRROR_ONLY_ACCOUNT;
- }
- if (goodsId == 88) {
- account = Constant.GROK_MIRROR_ONLY_ACCOUNT;
- }
- //claude code
- if (goodsId == Constant.CLAUDE_CODE_GOODS_ID) {
- account = Constant.CLAUDE_CODE_ONLY_ACCOUNT;
- }
- AccountView accountView = beanSearcher.searchFirst(AccountView.class, MapUtils.builder()
- .field(AccountView::getGoodsId, goodsId)
- .field(AccountView::getAccount, account).
- onlySelect(AccountView::getId).build());
- Long accountId;
- if (accountView == null) {
- try {
- Account insert = new Account();
- insert.setAccount(account);
- insert.setPassword(account);
- insert.setGoodsId(goodsId);
- accountMapper.insert(insert);
- accountId = insert.getId();
- } catch (DuplicateKeyException e) {
- accountId = accountMapper.selectOne(Wrappers.lambdaQuery(Account.class)
- .eq(Account::getGoodsId, goodsId)
- .eq(Account::getAccount, account)
- .last("limit 1")).getId();
- }
- } else {
- accountId = accountView.getId();
- }
- groups.setAccountId(accountId);
- groups.setStatus(GroupsTrips.Status.validity);
- groups.setRemark("已设置镜像车队唯一账号");
- }
- }
- }
|