|
@@ -1,6 +1,8 @@
|
|
package com.zswl.cloud.springBtach.server.core.service.impl;
|
|
package com.zswl.cloud.springBtach.server.core.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.lang.Snowflake;
|
|
import cn.hutool.core.lang.Snowflake;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
@@ -16,6 +18,9 @@ import com.xiaoju.open.oil.core.QueryClientFactory;
|
|
import com.xiaoju.open.oil.core.executor.ResponseDTO;
|
|
import com.xiaoju.open.oil.core.executor.ResponseDTO;
|
|
import com.xiaoju.open.oil.interfaces.domain.*;
|
|
import com.xiaoju.open.oil.interfaces.domain.*;
|
|
import com.xiaoju.open.oil.interfaces.request.*;
|
|
import com.xiaoju.open.oil.interfaces.request.*;
|
|
|
|
+import com.zhongshu.vip.client.model.VipUserModel;
|
|
|
|
+import com.zhongshu.vip.client.service.VipUserService;
|
|
|
|
+import com.zswl.cloud.springBatch.client.model.xiaoju.ActivityModel;
|
|
import com.zswl.cloud.springBatch.client.model.xiaoju.QueryApiStorePriceRequest;
|
|
import com.zswl.cloud.springBatch.client.model.xiaoju.QueryApiStorePriceRequest;
|
|
import com.xiaoju.open.oil.interfaces.request.miniprogram.MiniCancelOrderStatusRequest;
|
|
import com.xiaoju.open.oil.interfaces.request.miniprogram.MiniCancelOrderStatusRequest;
|
|
import com.xiaoju.open.oil.interfaces.response.*;
|
|
import com.xiaoju.open.oil.interfaces.response.*;
|
|
@@ -30,22 +35,17 @@ import com.zswl.cloud.shop.client.dto.life.TripartiteShopDto;
|
|
import com.zswl.cloud.shop.client.service.ShopService;
|
|
import com.zswl.cloud.shop.client.service.ShopService;
|
|
import com.zswl.cloud.springBatch.client.model.request.*;
|
|
import com.zswl.cloud.springBatch.client.model.request.*;
|
|
import com.zswl.cloud.springBatch.client.service.XiaoJuService;
|
|
import com.zswl.cloud.springBatch.client.service.XiaoJuService;
|
|
-import com.zswl.cloud.springBtach.server.core.dao.ApiLogDao;
|
|
|
|
-import com.zswl.cloud.springBtach.server.core.dao.XiaoJuOrderDao;
|
|
|
|
-import com.zswl.cloud.springBtach.server.core.dao.XiaoJuStoreDao;
|
|
|
|
-import com.zswl.cloud.springBtach.server.core.domain.ApiLog;
|
|
|
|
-import com.zswl.cloud.springBtach.server.core.domain.XiaoJuOrder;
|
|
|
|
-import com.zswl.cloud.springBtach.server.core.domain.XiaoJuStore;
|
|
|
|
|
|
+import com.zswl.cloud.springBtach.server.core.dao.*;
|
|
|
|
+import com.zswl.cloud.springBtach.server.core.domain.*;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Log4j2
|
|
@Log4j2
|
|
@Service
|
|
@Service
|
|
@@ -70,11 +70,20 @@ public class XiaoJuServiceImpl implements XiaoJuService {
|
|
@Autowired
|
|
@Autowired
|
|
ApiLogDao apiLogDao;
|
|
ApiLogDao apiLogDao;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ XiaoJuActivityDao xiaoJuActivityDao;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private ShopService shopService;
|
|
private ShopService shopService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private OrderService2 orderService2;
|
|
private OrderService2 orderService2;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private VipUserService vipUserService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private XiaoJuActivityReceiverDao xiaoJuActivityReceiverDao;
|
|
|
|
+
|
|
// 同步加油站
|
|
// 同步加油站
|
|
public ResponseDTO notificationPushStoreInfoRequest(OilRequest oilRequest) {
|
|
public ResponseDTO notificationPushStoreInfoRequest(OilRequest oilRequest) {
|
|
|
|
|
|
@@ -667,7 +676,54 @@ public class XiaoJuServiceImpl implements XiaoJuService {
|
|
}
|
|
}
|
|
|
|
|
|
// 券发放
|
|
// 券发放
|
|
- public ResultContent<List<GenPromotionInfo>> getPromotion(QueryGetPromotionRequest queryGetPromotionRequest) {
|
|
|
|
|
|
+ public ResultContent<List<GenPromotionInfo>> getPromotion(String activityId) {
|
|
|
|
+ AuthDetails currentUser = authHelper.getCurrentUser();
|
|
|
|
+ XiaoJuActivity byActivityId = xiaoJuActivityDao.findByActivityId(activityId);
|
|
|
|
+ if (byActivityId == null) {
|
|
|
|
+ return ResultContent.build(ResultState.Fail, "活动不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ AtomicBoolean grant = new AtomicBoolean(false);
|
|
|
|
+ List<String> planningId = byActivityId.getPlanningId();
|
|
|
|
+
|
|
|
|
+ planningId.forEach(it -> {
|
|
|
|
+ ResultContent<List<VipUserModel>> listResultContent = vipUserService.userInfo(currentUser.getPhone());
|
|
|
|
+ List<VipUserModel> content = listResultContent.getContent();
|
|
|
|
+ List<String> collect = content.stream().map(vipUserModel -> vipUserModel.getPlanningId()).collect(Collectors.toList());
|
|
|
|
+ for (String s : planningId) {
|
|
|
|
+ grant.set(collect.remove(s));
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ if (!grant.get()) {
|
|
|
|
+ return ResultContent.build(ResultState.Fail, "当前会员不能领取");
|
|
|
|
+ }
|
|
|
|
+ DateTime dateTime = DateUtil.beginOfMonth(new Date());
|
|
|
|
+ List<XiaoJuActivityReceiver> xiaoJuActivityReceivers = xiaoJuActivityReceiverDao.findByUserIdAndCreateTimeAfter(currentUser.getUserId(), dateTime.getTime());
|
|
|
|
+ if (xiaoJuActivityReceivers.size() >= 3) {
|
|
|
|
+ return ResultContent.build(ResultState.Fail, "当月已经领取3次");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ XiaoJuQueryUserPromotionListModel xiaoJuQueryUserPromotionListModel = new XiaoJuQueryUserPromotionListModel();
|
|
|
|
+ xiaoJuQueryUserPromotionListModel.setPageIndex(0);
|
|
|
|
+ xiaoJuQueryUserPromotionListModel.setPageSize(20);
|
|
|
|
+ xiaoJuQueryUserPromotionListModel.setStatus(5);
|
|
|
|
+
|
|
|
|
+ ResultContent<QueryUserPromotionListResponse> queryUserPromotionListResponseResultContent = queryUserPromotionList(xiaoJuQueryUserPromotionListModel);
|
|
|
|
+ QueryUserPromotionListResponse queryUserPromotionListResponse = queryUserPromotionListResponseResultContent.getContent();
|
|
|
|
+
|
|
|
|
+ if (queryUserPromotionListResponse != null) {
|
|
|
|
+ return ResultContent.build(ResultState.Fail, "有未消费的优惠券,请先使用");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ QueryGetPromotionRequest queryGetPromotionRequest = new QueryGetPromotionRequest();
|
|
|
|
+ queryGetPromotionRequest.setActivityId(activityId);
|
|
|
|
+ queryGetPromotionRequest.setOutUserId(currentUser.getUserId());
|
|
|
|
+ queryGetPromotionRequest.setMobile(currentUser.getPhone());
|
|
|
|
+
|
|
|
|
+
|
|
QueryClient queryClient = QueryClientFactory.create(oilConfig);
|
|
QueryClient queryClient = QueryClientFactory.create(oilConfig);
|
|
|
|
|
|
ApiLog apiLog = new ApiLog();
|
|
ApiLog apiLog = new ApiLog();
|
|
@@ -689,6 +745,22 @@ public class XiaoJuServiceImpl implements XiaoJuService {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ public ResultContent<XiaoJuActivity> addActivity(ActivityModel addActivityModel) {
|
|
|
|
+ if (ObjectUtil.isEmpty(addActivityModel.getId())) {
|
|
|
|
+ XiaoJuActivity xiaoJuActivity = new XiaoJuActivity();
|
|
|
|
+ BeanUtils.copyProperties(addActivityModel, xiaoJuActivity);
|
|
|
|
+ return ResultContent.build(ResultState.Success, xiaoJuActivityDao.save(xiaoJuActivity));
|
|
|
|
+ }
|
|
|
|
+ Optional<XiaoJuActivity> byId = xiaoJuActivityDao.findById(addActivityModel.getId());
|
|
|
|
+ if (byId.isPresent()) {
|
|
|
|
+ XiaoJuActivity xiaoJuActivity = byId.get();
|
|
|
|
+ BeanUtils.copyProperties(addActivityModel, xiaoJuActivity);
|
|
|
|
+ return ResultContent.build(ResultState.Success, xiaoJuActivityDao.save(xiaoJuActivity));
|
|
|
|
+ }
|
|
|
|
+ return ResultContent.build(ResultState.Fail, "数据不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
private void updateOrder(String orderNo, UpdateGoodsModel updateGoodsModel) {
|
|
private void updateOrder(String orderNo, UpdateGoodsModel updateGoodsModel) {
|
|
|
|
|
|
ResultContent<List<GoodsResultModel>> listResultContent = orderService2.goodsDetail(orderNo);
|
|
ResultContent<List<GoodsResultModel>> listResultContent = orderService2.goodsDetail(orderNo);
|