|
|
@@ -15,6 +15,7 @@ import com.cyksj.mapper.*;
|
|
|
import com.cyksj.mapper.manage.GroupsTripsAccountReplaceRecordMapper;
|
|
|
import com.cyksj.mapper.manage.cms.CmsUserMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
+import com.cyksj.model.manage.views.AccountView;
|
|
|
import com.cyksj.model.request.ReplaceTripsAccountReq;
|
|
|
import com.cyksj.model.views.GroupsAccountView;
|
|
|
import com.cyksj.redis.RedisService;
|
|
|
@@ -23,6 +24,7 @@ import com.cyksj.service.mange.CmsGroupService;
|
|
|
import com.cyksj.service.sms.SmsService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
import com.ejlchina.searcher.param.Operator;
|
|
|
+import com.ejlchina.searcher.util.MapBuilder;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -172,6 +174,17 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
|
|
|
if (count > 0) {
|
|
|
throw new BusinessRuntimeException("该账号已发车.请选择未发车账户");
|
|
|
}
|
|
|
+ Account account = accountMapper.selectById(groupsTrips.getAccountId());
|
|
|
+ //将预备账号 类型替换掉
|
|
|
+ if (account.getType() == 2) {
|
|
|
+ int update = accountMapper.update(null, Wrappers.lambdaUpdate(Account.class)
|
|
|
+ .set(Account::getType, 1)
|
|
|
+ .eq(Account::getId, account.getId())
|
|
|
+ .eq(Account::getType, 2));
|
|
|
+ if (update == 0) {
|
|
|
+ throw BusinessRuntimeException.getInstance("该账号已配置车队");
|
|
|
+ }
|
|
|
+ }
|
|
|
List<GroupsRelation> groupsRelations = relationMapper.selectList(Wrappers.lambdaQuery(GroupsRelation.class).eq(GroupsRelation::getGroupsId, groupsTrips.getId()).eq(GroupsRelation::getStatus, GroupsRelation.Status.validity));
|
|
|
GroupsTrips trips = beanSearcher.searchFirst(GroupsTrips.class, MapUtils.builder().field(GroupsTrips::getId, groupsTrips.getId()).onlySelect(GroupsTrips::getTitle).build());
|
|
|
String title = "车票";
|
|
|
@@ -358,18 +371,21 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
|
|
|
public Integer getAvailableRelation(Long goodsId, Long skuId) {
|
|
|
//chatGPT
|
|
|
GoodsDonSku sku = skuMapper.selectById(skuId);
|
|
|
- Integer num = sku.getNum();
|
|
|
+ Integer skuNum = sku.getNum();
|
|
|
if (Constant.AI_goodsIds.contains(sku.getGoodsId()) && sku.getNum() > 1) {
|
|
|
Integer extraNum = Constant.AI_EXTRACT_NUM;
|
|
|
- Integer maxNum = num + extraNum;
|
|
|
+ Integer maxNum = skuNum + extraNum;
|
|
|
DateTime tenExpiry = DateUtil.offsetDay(DateTime.now(), 10);
|
|
|
Integer available = relationMapper.selectAvailableRelation(skuId);
|
|
|
//额外硬塞
|
|
|
Integer special_available = relationMapper.selectSpecialGroupsRelationAvailable(skuId, maxNum, extraNum, tenExpiry);
|
|
|
- return special_available + available;
|
|
|
+ available += special_available;
|
|
|
+ available = getAvailableAfterPreAccount(available, skuId, maxNum, goodsId);
|
|
|
+ return available;
|
|
|
}
|
|
|
|
|
|
Integer available = relationMapper.selectAvailableRelation(skuId);
|
|
|
+ available = getAvailableAfterPreAccount(available, skuId, skuNum, goodsId);
|
|
|
return available;
|
|
|
}
|
|
|
|
|
|
@@ -399,4 +415,21 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ public Integer getAvailableAfterPreAccount(Integer available, Long skuId, Integer maxNum, Long goodsId) {
|
|
|
+ MapBuilder builder = MapUtils.builder();
|
|
|
+ if (goodsId == 26) {
|
|
|
+ builder.field(AccountView::getPreSkuId, skuId);
|
|
|
+ }
|
|
|
+ Number preAccount = beanSearcher.searchCount(AccountView.class, builder
|
|
|
+ .field(AccountView::getGoodsId, goodsId)
|
|
|
+ .field(AccountView::getAccountType, 2)
|
|
|
+ .field(AccountView::getGroupsId).op(Operator.IsNull)
|
|
|
+ .build());
|
|
|
+ //计算上预发布账号车位数
|
|
|
+ if (preAccount.intValue() > 0) {
|
|
|
+ available += preAccount.intValue() * maxNum;
|
|
|
+ }
|
|
|
+ return available;
|
|
|
+ }
|
|
|
}
|