|
|
@@ -15,9 +15,13 @@ import com.cyksj.mapper.fission.UserMirrorFissionRecordMapper;
|
|
|
import com.cyksj.mapper.fission.UserMirrorFissionTicketConfigMapper;
|
|
|
import com.cyksj.mapper.sys.SysConfigMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
+import com.cyksj.model.views.RenewalView;
|
|
|
import com.cyksj.service.fission.UserMirrorFissionFrontService;
|
|
|
import com.cyksj.service.relation.GroupRelationFrontService;
|
|
|
import com.cyksj.service.user.UserBindRelationService;
|
|
|
+import com.ejlchina.searcher.BeanSearcher;
|
|
|
+import com.ejlchina.searcher.param.Operator;
|
|
|
+import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
|
@@ -56,6 +60,9 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
|
|
|
private final UserMirrorFissionTicketConfigMapper userMirrorFissionTicketConfigMapper;
|
|
|
|
|
|
private final SysConfigMapper sysConfigMapper;
|
|
|
+
|
|
|
+ private final BeanSearcher beanSearcher;
|
|
|
+
|
|
|
@Override
|
|
|
public Boolean getPurchasedMirrorStatus(long userId, Long goodsId) {
|
|
|
return hasPaidMirrorTicket(userId, goodsId);
|
|
|
@@ -134,6 +141,9 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
|
|
|
UserMirrorFissionRecord userMirrorFissionRecord;
|
|
|
GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
|
|
|
GoodsDonSku sku = goodsDonSkuMapper.selectById(groupsTrips.getSkuId());
|
|
|
+ if (!sku.getIsMirror()) {
|
|
|
+ throw BusinessRuntimeException.getInstance("只支持镜像车票");
|
|
|
+ }
|
|
|
Integer count = userMirrorFissionRecordMapper.selectCount(Wrappers.lambdaQuery(UserMirrorFissionRecord.class)
|
|
|
.eq(UserMirrorFissionRecord::getGoodsId, sku.getGoodsId())
|
|
|
.in(UserMirrorFissionRecord::getUserId, userIdList));
|
|
|
@@ -165,6 +175,9 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
|
|
|
UserMirrorFissionTicketConfig userMirrorFissionTicketConfig = userMirrorFissionTicketConfigMapper.selectOne(Wrappers.lambdaQuery(UserMirrorFissionTicketConfig.class)
|
|
|
.eq(UserMirrorFissionTicketConfig::getGoodsId, sku.getGoodsId())
|
|
|
.last("limit 1"));
|
|
|
+ if (userMirrorFissionTicketConfig == null) {
|
|
|
+ throw BusinessRuntimeException.getInstance("活动不存在");
|
|
|
+ }
|
|
|
try {
|
|
|
userMirrorFissionRecord = new UserMirrorFissionRecord();
|
|
|
userMirrorFissionRecord.setUserId(relation.getUserId());
|
|
|
@@ -185,7 +198,7 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Boolean getPermitStatus(long userId) throws Exception {
|
|
|
+ public Boolean getPermitStatus(long userId, Long goodsId) throws Exception {
|
|
|
List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
|
|
|
//特定老用户可进行镜像裂变活动
|
|
|
SysConfig sysConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class)
|
|
|
@@ -201,6 +214,15 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
|
|
|
isCt.set(true);
|
|
|
}
|
|
|
});
|
|
|
+ Number count = beanSearcher.searchCount(RenewalView.class, MapUtils.builder()
|
|
|
+ .field(RenewalView::getGoodsId, goodsId)
|
|
|
+ .field(RenewalView::getIsMirror, true)
|
|
|
+ .field(RenewalView::getUserId, userIdList).op(Operator.InList)
|
|
|
+ .field(RenewalView::getExpiryTime, DateTime.now()).op(Operator.GreaterThan)
|
|
|
+ .build());
|
|
|
+ if (count.intValue() == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
return isCt.get();
|
|
|
}
|
|
|
|