|
|
@@ -1,6 +1,7 @@
|
|
|
package com.ytpm.lemonios.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
@@ -14,6 +15,7 @@ import com.ytpm.agent.view.AgentAdGroupStaticsVO;
|
|
|
import com.ytpm.agent.view.AgentTopCountView;
|
|
|
import com.ytpm.app.model.YtDyzAdRecord;
|
|
|
import com.ytpm.app.model.YtDyzUser;
|
|
|
+import com.ytpm.app.param.DyzAdRecordDelayParam;
|
|
|
import com.ytpm.app.param.DyzAdRecordParam;
|
|
|
import com.ytpm.feign.RiskFeign;
|
|
|
import com.ytpm.general.RepMessage;
|
|
|
@@ -369,4 +371,47 @@ public class AdServiceImpl implements AdService {
|
|
|
return vos;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Result<String> delaySaveRecord(DyzAdRecordDelayParam param) {
|
|
|
+ YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
|
|
|
+ if (Objects.isNull(user)) {
|
|
|
+ return Result.resultOk(RepMessage.SAVE_SUCCESS);
|
|
|
+ }
|
|
|
+ if (!UserStatusEnum.NORMAL.getCode().equals(user.getUserStatus())) {
|
|
|
+ return new Result<>(StatusCode.ACCESS_ERR, getTipsMsg());
|
|
|
+ }
|
|
|
+ log.info("[delaySaveRecord] userId:{}", param.getUserId());
|
|
|
+ if (CollectionUtil.isNotEmpty(param.getAdRecords())) {
|
|
|
+ YtDyzAdRecord insertEntity;
|
|
|
+ List<YtDyzAdRecord> saveList = new ArrayList<>();
|
|
|
+ BigDecimal totalRevenue = BigDecimal.ZERO;
|
|
|
+ int count = 0;
|
|
|
+ for (DyzAdRecordParam adParam : param.getAdRecords()) {
|
|
|
+ handleParam(adParam);
|
|
|
+ insertEntity = new YtDyzAdRecord();
|
|
|
+ BeanUtils.copyProperties(adParam, insertEntity);
|
|
|
+ insertEntity.setRecordId(IdUtil.fastSimpleUUID());
|
|
|
+ insertEntity.setUserId(user.getUserId());
|
|
|
+ insertEntity.setNetworkName(AdPlatformTypeEnum.getDesc(Integer.parseInt(adParam.getNetworkFormId())));
|
|
|
+ saveList.add(insertEntity);
|
|
|
+ if (param.getLoginStatus() != null && AdRecordEnum.LOGIN_BEFORE.getCode().equals(param.getLoginStatus())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (insertEntity.getRevenue() != null) {
|
|
|
+ totalRevenue = totalRevenue.add(insertEntity.getRevenue());
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(saveList)) {
|
|
|
+ if (param.getLoginStatus() != null && AdRecordEnum.LOGIN_BEFORE.getCode().equals(param.getLoginStatus())) {
|
|
|
+ adRecordMapper.batchAddVisitor(saveList);
|
|
|
+ } else {
|
|
|
+ adRecordMapper.batchAdd(saveList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ appUserMapper.updateTotal(user.getUserId(), count, totalRevenue);
|
|
|
+ }
|
|
|
+ return Result.resultOk(RepMessage.SAVE_SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
}
|