|
|
@@ -8,7 +8,9 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.servlet.ServletUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.cyksj.common.annotation.NoSubmit;
|
|
|
+import com.cyksj.common.constant.Constant;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.snowflake.Sequence;
|
|
|
import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
|
|
|
@@ -441,7 +443,10 @@ public class GroupRelationController {
|
|
|
@GetMapping("/get/advertise/{goodsId}")
|
|
|
public Result<List<TicketAdvertiseConfigFrontView>> getTicketAdvertiseConfig(@PathVariable Long goodsId) {
|
|
|
List<TicketAdvertiseConfigFrontView> views = beanSearcher.searchAll(TicketAdvertiseConfigFrontView.class, MapUtils.flatBuilder(request.getParameterMap())
|
|
|
- .field(TicketAdvertiseConfig::getGoodsId, goodsId).build());
|
|
|
+ .field(TicketAdvertiseConfig::getGoodsId, goodsId)
|
|
|
+ .orderBy(TicketAdvertiseConfig::getSorted).desc()
|
|
|
+ .orderBy(TicketAdvertiseConfig::getId).desc()
|
|
|
+ .build());
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(views);
|
|
|
}
|
|
|
|
|
|
@@ -454,4 +459,26 @@ public class GroupRelationController {
|
|
|
ticketAdvertiseConfigClickRecordService.recordUserClickTicketAdvertise(userId, configId);
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 推荐平台
|
|
|
+ */
|
|
|
+ @GetMapping("/get/recommend/goods")
|
|
|
+ public Result<Page<UserRecommendGoodsFrontView>> getRecommendGoodsViews(@RequestParam(defaultValue = "0") Integer start, @RequestParam(defaultValue = "5") Integer limit) {
|
|
|
+ //推荐用户未购买的车票平台 优先展示ai类平台 然后是影视流媒体
|
|
|
+ long userId = StpUserUtil.getLoginIdAsLong();
|
|
|
+ List<Long> userIds = userService.getRelationUserIdList(userId, null);
|
|
|
+ List<Long> filter_goods_id = relationMapper.getTicketGoodsId(userIds, List.of("validity", "overdue", "outside"));
|
|
|
+ //用户是否购买过奈飞产品
|
|
|
+ int count = orderDonService.count(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
+ .eq(OrderDon::getGoodsId, 1)
|
|
|
+ .notIn(OrderDon::getStatus, Constant.noOrderAllStatus));
|
|
|
+ Boolean isPayNf = false;
|
|
|
+ if (count > 0) {
|
|
|
+ //优先展示路由器、ai、流媒体
|
|
|
+ isPayNf = true;
|
|
|
+ }
|
|
|
+ Page<UserRecommendGoodsFrontView> page = groupRelationFrontService.getRecommendGoodsViews(isPayNf, filter_goods_id, start, limit);
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(page);
|
|
|
+ }
|
|
|
}
|