|
@@ -1,5 +1,7 @@
|
|
|
package com.ytpm.question.service.impl;
|
|
package com.ytpm.question.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
@@ -11,6 +13,7 @@ import com.ytpm.agent.view.AgentAdGroupStaticsVO;
|
|
|
import com.ytpm.agent.view.AgentTopCountView;
|
|
import com.ytpm.agent.view.AgentTopCountView;
|
|
|
import com.ytpm.app.model.YtDyzAdRecord;
|
|
import com.ytpm.app.model.YtDyzAdRecord;
|
|
|
import com.ytpm.app.model.YtDyzUser;
|
|
import com.ytpm.app.model.YtDyzUser;
|
|
|
|
|
+import com.ytpm.app.param.DyzAdRecordDelayParam;
|
|
|
import com.ytpm.app.param.DyzAdRecordParam;
|
|
import com.ytpm.app.param.DyzAdRecordParam;
|
|
|
import com.ytpm.app.view.WxDefaultConfig;
|
|
import com.ytpm.app.view.WxDefaultConfig;
|
|
|
import com.ytpm.feign.RiskFeign;
|
|
import com.ytpm.feign.RiskFeign;
|
|
@@ -70,15 +73,15 @@ public class AdServiceImpl implements AdService {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Result<?> saveRecord(DyzAdRecordParam param) {
|
|
|
|
|
|
|
+ public Result<String> saveRecord(DyzAdRecordParam param) {
|
|
|
YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
|
|
YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
|
|
|
- log.debug(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
|
|
|
|
|
if (Objects.isNull(user)) {
|
|
if (Objects.isNull(user)) {
|
|
|
return Result.resultOk(RepMessage.SAVE_SUCCESS);
|
|
return Result.resultOk(RepMessage.SAVE_SUCCESS);
|
|
|
}
|
|
}
|
|
|
if (!UserStatusEnum.NORMAL.getCode().equals(user.getUserStatus())) {
|
|
if (!UserStatusEnum.NORMAL.getCode().equals(user.getUserStatus())) {
|
|
|
return new Result<>(StatusCode.ACCESS_ERR, getTipsMsg());
|
|
return new Result<>(StatusCode.ACCESS_ERR, getTipsMsg());
|
|
|
}
|
|
}
|
|
|
|
|
+ log.debug(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
|
|
|
saveRecordAndChangeUser(param, user);
|
|
saveRecordAndChangeUser(param, user);
|
|
|
//调用风控广告校验
|
|
//调用风控广告校验
|
|
|
if (AdSourceTypeEnum.rewarded_video.getAdSourceType() == param.getAdSourceType()) {
|
|
if (AdSourceTypeEnum.rewarded_video.getAdSourceType() == param.getAdSourceType()) {
|
|
@@ -87,7 +90,7 @@ public class AdServiceImpl implements AdService {
|
|
|
user.setPowerLimitTip(format);
|
|
user.setPowerLimitTip(format);
|
|
|
Result<?> result = riskFeign.checkAdRisk(user);
|
|
Result<?> result = riskFeign.checkAdRisk(user);
|
|
|
if (result.getCode() != 200) {
|
|
if (result.getCode() != 200) {
|
|
|
- Result<Object> resultObj = new Result<>(StatusCode.ACCESS_ERR, getTipsMsg());
|
|
|
|
|
|
|
+ Result<String> resultObj = new Result<>(StatusCode.ACCESS_ERR, getTipsMsg());
|
|
|
// 766处理
|
|
// 766处理
|
|
|
if ("766".contains(result.getMessage())) {
|
|
if ("766".contains(result.getMessage())) {
|
|
|
resultObj.setData(result.getMessage());
|
|
resultObj.setData(result.getMessage());
|
|
@@ -107,6 +110,56 @@ public class AdServiceImpl implements AdService {
|
|
|
return split[RandomUtil.randomInt(split.length)];
|
|
return split[RandomUtil.randomInt(split.length)];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @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;
|
|
|
|
|
+ for (DyzAdRecordParam adParam : param.getAdRecords()) {
|
|
|
|
|
+ insertEntity = new YtDyzAdRecord();
|
|
|
|
|
+ if (Objects.isNull(adParam.getBeginTime()) || "null".equals(adParam.getBeginTime())) {
|
|
|
|
|
+ if ("null".equals(adParam.getBeginTime())) {
|
|
|
|
|
+ log.warn("param beginTime is null !");
|
|
|
|
|
+ }
|
|
|
|
|
+ insertEntity.setBeginTime(adParam.getFinishTime());
|
|
|
|
|
+ }
|
|
|
|
|
+ BeanUtils.copyProperties(adParam, insertEntity);
|
|
|
|
|
+ insertEntity.setRecordId(IdUtil.fastSimpleUUID());
|
|
|
|
|
+ insertEntity.setUserId(user.getUserId());
|
|
|
|
|
+ insertEntity.setNetworkName(AdPlatformTypeEnum.getDesc(Integer.parseInt(adParam.getNetworkFormId())));
|
|
|
|
|
+ saveList.add(insertEntity);
|
|
|
|
|
+ if (AdRecordEnum.LOGIN_BEFORE.getCode().equals(param.getLoginStatus())
|
|
|
|
|
+ && AdSourceTypeEnum.rewarded_video.getAdSourceType() == adParam.getAdSourceType()) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (insertEntity.getRevenue() != null) {
|
|
|
|
|
+ totalRevenue = totalRevenue.add(insertEntity.getRevenue());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ 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(), saveList.size(), totalRevenue);
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.resultOk(RepMessage.SAVE_SUCCESS);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 根据应用查询广告数量
|
|
* 根据应用查询广告数量
|
|
|
*/
|
|
*/
|