记得上下班打卡 | git大法好,push需谨慎

Commit f3c5843a authored by 胡佳晨's avatar 胡佳晨

演出列表增加速度

parent 66939aad
......@@ -19,6 +19,7 @@ import com.liquidnet.service.slime.service.SlimeRdmService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
......@@ -37,6 +38,7 @@ import java.util.List;
import java.util.stream.Collectors;
@Component
@Slf4j
public class MongoSlimeUtils {
@Autowired
private MongoTemplate mongoTemplate;
......@@ -263,7 +265,7 @@ public class MongoSlimeUtils {
if (performancePartnerListParam.getOrderSc().equals("asc")) {
orderBy = Sort.Direction.ASC;
}
long currentTime = System.currentTimeMillis();
List<String> performanceIdList = null;
List<SlimeAuthorizationPerformanceVo> permissionVoList = ObjectUtil.getPermissionVoList();
if (!redisSlimeUtils.superAccount(performancePartnerListParam.getMerchantId())) {
......@@ -280,6 +282,8 @@ public class MongoSlimeUtils {
SlimeAuthorizationPerformanceVo.class, SlimeAuthorizationPerformanceVo.class.getSimpleName());
performanceIdList = permissionVoList.stream().map(SlimeAuthorizationPerformanceVo::getPerformanceId).collect(Collectors.toList());
}
log.debug("TIME 1= "+ (System.currentTimeMillis()-currentTime));
currentTime = System.currentTimeMillis();
//查询演出
Criteria criteriaPerformanceId = performanceIdList == null ? Criteria.where("performancesId").ne(null) : Criteria.where("performancesId").in(performanceIdList);
Criteria criteria = Criteria.where("performancesId").ne(null);
......@@ -304,11 +308,14 @@ public class MongoSlimeUtils {
.skip(((performancePartnerListParam.getPage() - 1) * performancePartnerListParam.getSize()))
.limit(performancePartnerListParam.getSize()),
KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
log.debug("TIME 2= "+ (System.currentTimeMillis()-currentTime));
currentTime = System.currentTimeMillis();
long total = mongoTemplate.count(
Query.query(new Criteria().andOperator(criteria).orOperator(criteriaPerformanceId, Criteria.where("merchantId").is(performancePartnerListParam.getMerchantId())))
.with(Sort.by(orderBy, performancePartnerListParam.getOrderItem())),
KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
log.debug("TIME 3= "+ (System.currentTimeMillis()-currentTime));
currentTime = System.currentTimeMillis();
//查询销量
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(Criteria.where("status").in(0, 1, 3, 6).and("couponType").is("no").and("transferStatus").in(0, 1, 2, 5).and("performanceId").in(performanceIdList)),
......@@ -321,8 +328,12 @@ public class MongoSlimeUtils {
);
AggregationResults<PerformancePartnerListDao> outputType = mongoTemplate.aggregate(aggregation, KylinOrderTicketVo.class.getSimpleName(), PerformancePartnerListDao.class);
log.debug("TIME 4= "+ (System.currentTimeMillis()-currentTime));
currentTime = System.currentTimeMillis();
List<PerformancePartnerListDao> dataList = new ArrayList(outputType.getMappedResults());
List<PerformancePartnerListDao> list = ObjectUtil.getPerformancePartnerListDaoArrayList();
boolean isSuperAccount = redisSlimeUtils.superAccount(performancePartnerListParam.getMerchantId());
for (KylinPerformanceVo item : performanceVos) {
boolean findData = false;
PerformancePartnerListDao dao = PerformancePartnerListDao.getNew();
......@@ -359,7 +370,7 @@ public class MongoSlimeUtils {
dao.setTimeSell(timeSell);
dao.setTimeStop(timeStop);
if (item.getMerchantId().equals(performancePartnerListParam.getMerchantId()) || redisSlimeUtils.superAccount(performancePartnerListParam.getMerchantId())) {
if (item.getMerchantId().equals(performancePartnerListParam.getMerchantId()) || isSuperAccount) {
dao.setPermissionId(new ArrayList<String>() {{
add(SlimeAuthorizationConst.PerformancePermission.READ.getId());
add(SlimeAuthorizationConst.PerformancePermission.EDIT.getId());
......@@ -371,7 +382,7 @@ public class MongoSlimeUtils {
}
for (SlimeAuthorizationPerformanceVo permission : permissionVoList) {
if (item.getMerchantId().equals(performancePartnerListParam.getMerchantId()) || redisSlimeUtils.superAccount(performancePartnerListParam.getMerchantId())) {
if (item.getMerchantId().equals(performancePartnerListParam.getMerchantId()) || isSuperAccount) {
dao.setPermissionId(new ArrayList<String>() {{
add(SlimeAuthorizationConst.PerformancePermission.READ.getId());
add(SlimeAuthorizationConst.PerformancePermission.EDIT.getId());
......@@ -410,6 +421,7 @@ public class MongoSlimeUtils {
}
list.add(dao);
}
log.debug("TIME 5= "+ (System.currentTimeMillis()-currentTime));
HashMap<String ,Object> map = CollectionUtil.mapStringObject();
map.put("data",list);
map.put("total",total);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment