|
@@ -24,9 +24,11 @@ import com.cyksj.mapper.shop.YhShopGoodsSkuMapper;
|
|
|
import com.cyksj.mapper.sys.SysConfigMapper;
|
|
import com.cyksj.mapper.sys.SysConfigMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.request.ClickRecordReq;
|
|
import com.cyksj.model.request.ClickRecordReq;
|
|
|
|
|
+import com.cyksj.model.request.GoodsSubscribeAlertReq;
|
|
|
import com.cyksj.model.views.*;
|
|
import com.cyksj.model.views.*;
|
|
|
import com.cyksj.redis.RedisService;
|
|
import com.cyksj.redis.RedisService;
|
|
|
import com.cyksj.service.goods.GoodsDonFrontService;
|
|
import com.cyksj.service.goods.GoodsDonFrontService;
|
|
|
|
|
+import com.cyksj.service.goods.UserSubscribeAlertGoodsRecordService;
|
|
|
import com.cyksj.service.home.ClickRecordFrontService;
|
|
import com.cyksj.service.home.ClickRecordFrontService;
|
|
|
import com.cyksj.service.shop.YhShopFrontService;
|
|
import com.cyksj.service.shop.YhShopFrontService;
|
|
|
import com.cyksj.service.translations.BackInfoTranslationsFrontService;
|
|
import com.cyksj.service.translations.BackInfoTranslationsFrontService;
|
|
@@ -96,6 +98,8 @@ public class GoodsDonController {
|
|
|
|
|
|
|
|
private final ApiVerifyService apiVerifyService;
|
|
private final ApiVerifyService apiVerifyService;
|
|
|
|
|
|
|
|
|
|
+ private final UserSubscribeAlertGoodsRecordService userSubscribeAlertGoodsRecordService;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取平台商品分类
|
|
* 获取平台商品分类
|
|
|
*/
|
|
*/
|
|
@@ -436,7 +440,9 @@ public class GoodsDonController {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
views.setSpecs(beanSearcher.searchFirst(GoodsDonSpecFrontView.class, MapUtils.builder().field(GoodsDonSpecFrontView::getGoodsId, views.getId()).build()));
|
|
views.setSpecs(beanSearcher.searchFirst(GoodsDonSpecFrontView.class, MapUtils.builder().field(GoodsDonSpecFrontView::getGoodsId, views.getId()).build()));
|
|
|
- MapBuilder builder = MapUtils.builder().field(GoodsDonSkuFrontView::getGoodsId, views.getId()).field(GoodsDonSkuFrontView::getStatus, true);
|
|
|
|
|
|
|
+ //把开启订阅提醒的规格展示出来
|
|
|
|
|
+ String condition = "or (sku.status = 0 and sku.is_subscribe_alert)";
|
|
|
|
|
+ MapBuilder builder = MapUtils.builder().field(GoodsDonSkuFrontView::getGoodsId, views.getId()).put("condition", condition).field(GoodsDonSkuFrontView::getStatus, true);
|
|
|
|
|
|
|
|
if (views.getType() == 1) {
|
|
if (views.getType() == 1) {
|
|
|
builder.orderBy(GoodsDonSkuFrontView::getSorted).asc();
|
|
builder.orderBy(GoodsDonSkuFrontView::getSorted).asc();
|
|
@@ -551,6 +557,10 @@ public class GoodsDonController {
|
|
|
//设置规格优惠后的价格
|
|
//设置规格优惠后的价格
|
|
|
sku.setChannelDiscount(discount);
|
|
sku.setChannelDiscount(discount);
|
|
|
setUserCouponSkuMoney(fUid, sku);
|
|
setUserCouponSkuMoney(fUid, sku);
|
|
|
|
|
+ //查看用户是否已订阅到货通知
|
|
|
|
|
+ if (fUid != null && sku.getIsSubscribeAlert()) {
|
|
|
|
|
+ sku.setUserSubscribeStatus(userSubscribeAlertGoodsRecordService.getUserSubscribeGoodsStatus(fUid, null, sku.getId()));
|
|
|
|
|
+ }
|
|
|
return true;
|
|
return true;
|
|
|
}).collect(Collectors.toList()));
|
|
}).collect(Collectors.toList()));
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(views);
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(views);
|
|
@@ -736,7 +746,7 @@ public class GoodsDonController {
|
|
|
try {
|
|
try {
|
|
|
o = redisService.get(key);
|
|
o = redisService.get(key);
|
|
|
if (o == null) {
|
|
if (o == null) {
|
|
|
- String condition = "g.deleted is true and g.status is true";
|
|
|
|
|
|
|
+ String condition = "g.deleted is true and g.status is true or (g.status = 0 and g.is_subscribe_alert)";
|
|
|
Long finalYhsId = yhsId;
|
|
Long finalYhsId = yhsId;
|
|
|
if (yhsId != null) {
|
|
if (yhsId != null) {
|
|
|
condition += String.format(" and g.id in (select distinct goods_id from yh_shop_goods_sku where yhs_id = %s and status is true and deleted is true) and g.is_distribute is true", yhsId);
|
|
condition += String.format(" and g.id in (select distinct goods_id from yh_shop_goods_sku where yhs_id = %s and status is true and deleted is true) and g.is_distribute is true", yhsId);
|
|
@@ -1116,6 +1126,10 @@ public class GoodsDonController {
|
|
|
//推荐优惠券商品最低折扣
|
|
//推荐优惠券商品最低折扣
|
|
|
setHomeConfigGoodsCouponMoney(data);
|
|
setHomeConfigGoodsCouponMoney(data);
|
|
|
}
|
|
}
|
|
|
|
|
+ //已登录 查看是否开启通知订阅
|
|
|
|
|
+ if (fUid != null && data.getIsSubscribeAlert()) {
|
|
|
|
|
+ data.setUserSubscribeStatus(userSubscribeAlertGoodsRecordService.getUserSubscribeGoodsStatus(fUid, data.getGoodsId(), null));
|
|
|
|
|
+ }
|
|
|
return true;
|
|
return true;
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
setHomeManageSpecific(list, fUid, dsUserId.get(), discount);
|
|
setHomeManageSpecific(list, fUid, dsUserId.get(), discount);
|
|
@@ -1254,13 +1268,17 @@ public class GoodsDonController {
|
|
|
if (o == null) {
|
|
if (o == null) {
|
|
|
DateTime now = DateTime.now();
|
|
DateTime now = DateTime.now();
|
|
|
MapBuilder mapBuilder = MapUtils.flatBuilder(request.getParameterMap());
|
|
MapBuilder mapBuilder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
|
|
+ //把开启订阅提醒的商品展示出来
|
|
|
|
|
+ String condition = "or (g.status = 0 and g.is_subscribe_alert)";
|
|
|
if (cgy != null) {
|
|
if (cgy != null) {
|
|
|
- String condition = String.format(" and gcr.category = %s", cgy);
|
|
|
|
|
- mapBuilder.put("condition", condition);
|
|
|
|
|
|
|
+ condition += String.format(" and gcr.category = %s", cgy);
|
|
|
}
|
|
}
|
|
|
if (isFilterGoodsIds) {
|
|
if (isFilterGoodsIds) {
|
|
|
mapBuilder.field(GoodsFrontListCategoryView::getFilter, Boolean.FALSE);
|
|
mapBuilder.field(GoodsFrontListCategoryView::getFilter, Boolean.FALSE);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (StrUtil.isNotEmpty(condition)) {
|
|
|
|
|
+ mapBuilder.put("condition", condition);
|
|
|
|
|
+ }
|
|
|
List<GoodsFrontListCategoryView> goodsFrontListViews = beanSearcher.searchAll(GoodsFrontListCategoryView.class, mapBuilder.build());
|
|
List<GoodsFrontListCategoryView> goodsFrontListViews = beanSearcher.searchAll(GoodsFrontListCategoryView.class, mapBuilder.build());
|
|
|
List<Long> gptBuyGids = getGptMirrorGiveawayBuyGids();
|
|
List<Long> gptBuyGids = getGptMirrorGiveawayBuyGids();
|
|
|
goodsFrontListViews.forEach(data -> {
|
|
goodsFrontListViews.forEach(data -> {
|
|
@@ -1328,6 +1346,9 @@ public class GoodsDonController {
|
|
|
if (fUid == null) {
|
|
if (fUid == null) {
|
|
|
setGoodsCouponMoney(data);
|
|
setGoodsCouponMoney(data);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (fUid != null && data.getIsSubscribeAlert()) {
|
|
|
|
|
+ data.setUserSubscribeStatus(userSubscribeAlertGoodsRecordService.getUserSubscribeGoodsStatus(fUid, data.getId(), null));
|
|
|
|
|
+ }
|
|
|
return true;
|
|
return true;
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(goodsFrontListViews);
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(goodsFrontListViews);
|
|
@@ -1651,6 +1672,17 @@ public class GoodsDonController {
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 用户开启到货提醒
|
|
|
|
|
+ */
|
|
|
|
|
+ @PostMapping("/user/subscribe/alert")
|
|
|
|
|
+ public Result<String> userSubscribeAlert(@RequestBody GoodsSubscribeAlertReq goodsSubscribeAlertReq) throws Exception {
|
|
|
|
|
+ long userId = StpUserUtil.getLoginIdAsLong();
|
|
|
|
|
+ goodsSubscribeAlertReq.setUserId(userId);
|
|
|
|
|
+ userSubscribeAlertGoodsRecordService.userSubscribeAlert(goodsSubscribeAlertReq);
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取平台销量
|
|
* 获取平台销量
|
|
|
* @param goodsId
|
|
* @param goodsId
|