Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

小杜 4 ay önce
ebeveyn
işleme
7a77046877

+ 1 - 1
yt-app/app-service/src/main/java/com/ytpm/config/YtWebMvcConfigurerAdapter.java

@@ -22,7 +22,7 @@ public class YtWebMvcConfigurerAdapter implements WebMvcConfigurer {
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(new HttpInterceptor()).addPathPatterns("/**").excludePathPatterns("/resources/**");
-        registry.addInterceptor(userActionInterceptor).addPathPatterns("/**").excludePathPatterns("/user/**","/wx/**","/question/**","/sys/toLogin*","/login/**","/resources/**","/fastDFS/**","/error",
+        registry.addInterceptor(userActionInterceptor).addPathPatterns("/**").excludePathPatterns("/ad/**","/user/**","/wx/**","/question/**","/sys/toLogin*","/login/**","/resources/**","/fastDFS/**","/error",
                 "/doc.html","/api/v2/**","/v2/api-docs", "/configuration/ui", "/swagger-resources", "/configuration/security",
                 "/swagger-ui.html", "/webjars/**","/swagger-resources/configuration/ui","/swagger-ui.html");
         registry.addInterceptor(postHttpRequestInterceptor).addPathPatterns("/**").excludePathPatterns("/sys/toLogin*","/resources/**"

+ 32 - 0
yt-app/app-service/src/main/java/com/ytpm/controller/AdController.java

@@ -0,0 +1,32 @@
+package com.ytpm.controller;
+
+import com.ytpm.app.param.DyzAdRecordParam;
+import com.ytpm.general.Result;
+import com.ytpm.service.AdService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+@Api(tags = "题目管理模块")
+@RestController
+@RequestMapping("/ad")
+public class AdController {
+
+    @Resource
+    private AdService adService;
+
+    /**
+     * 保存广告记录
+     */
+    @ApiOperation("保存")
+    @PostMapping("/saveRecord")
+    public Result<?> saveRecord(@RequestBody DyzAdRecordParam param){
+        return adService.saveRecord(param);
+    }
+}

+ 12 - 0
yt-app/app-service/src/main/java/com/ytpm/dao/AdRecordMapper.java

@@ -0,0 +1,12 @@
+package com.ytpm.dao;
+
+import com.ytpm.app.model.YtDyzAdRecord;
+import org.mapstruct.Mapper;
+
+@Mapper
+public interface AdRecordMapper {
+    /**
+     * 新增广告记录
+     */
+    void addOne(YtDyzAdRecord adRecord);
+}

+ 11 - 0
yt-app/app-service/src/main/java/com/ytpm/service/AdService.java

@@ -0,0 +1,11 @@
+package com.ytpm.service;
+
+import com.ytpm.app.param.DyzAdRecordParam;
+import com.ytpm.general.Result;
+
+public interface AdService {
+    /**
+     * 保存广告记录
+     */
+    Result<?> saveRecord(DyzAdRecordParam param);
+}

+ 52 - 0
yt-app/app-service/src/main/java/com/ytpm/service/impl/AdServiceImpl.java

@@ -0,0 +1,52 @@
+package com.ytpm.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.ytpm.app.model.YtDyzAdRecord;
+import com.ytpm.app.model.YtDyzUser;
+import com.ytpm.app.param.DyzAdRecordParam;
+import com.ytpm.dao.AdRecordMapper;
+import com.ytpm.dao.AppUserMapper;
+import com.ytpm.general.RepMessage;
+import com.ytpm.general.Result;
+import com.ytpm.service.AdService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.Objects;
+
+@Service
+public class AdServiceImpl implements AdService {
+
+    @Autowired
+    private AdRecordMapper adRecordMapper;
+    @Autowired
+    private AppUserMapper appUserMapper;
+    /**
+     * 保存广告记录
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<?> saveRecord(DyzAdRecordParam param) {
+        YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
+        if(Objects.isNull(user)){
+            return Result.resultOk(RepMessage.SAVE_SUCCESS);
+        }
+        //增加广告记录
+        YtDyzAdRecord adRecord = new YtDyzAdRecord();
+        BeanUtils.copyProperties(param, adRecord);
+        adRecord.setRecordId(IdUtil.fastSimpleUUID());
+        adRecord.setFinishTime(new Date());
+        adRecordMapper.addOne(adRecord);
+        //修改用户信息, 广告次数+1  总收益 + revenue
+        YtDyzUser dyzUser = new YtDyzUser();
+        dyzUser.setUserId(user.getUserId());
+        dyzUser.setTotalVideo(Objects.isNull(user.getTotalVideo())?1:(user.getTotalVideo()+1));
+        dyzUser.setTotalIncome(user.getTotalIncome().add(param.getRevenue()));
+        appUserMapper.updateUser(dyzUser);
+        return Result.resultOk(RepMessage.SAVE_SUCCESS);
+    }
+}

+ 35 - 0
yt-app/app-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ytpm.dao.AdRecordMapper">
+
+    <insert id="addOne">
+        insert into yt_dyz_ad_record
+        (
+         record_id,
+         user_id,
+         nick_name,
+         placement_id,
+         ad_source_id,
+         revenue,
+         network_form_id,
+         network_name,
+         network_placement_id,
+         begin_time,
+         finish_time
+        )
+        values
+        (
+         #{recordId},
+         #{userId},
+         #{nickName},
+         #{placementId},
+         #{adSourceId},
+         #{revenue},
+         #{networkFormId},
+         #{networkName},
+         #{networkPlacementId},
+         #{beginTime},
+         #{finishTime}
+        )
+    </insert>
+</mapper>

+ 38 - 0
yt-common/src/main/java/com/ytpm/app/model/YtDyzAdRecord.java

@@ -0,0 +1,38 @@
+package com.ytpm.app.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("用户观看广告记录")
+public class YtDyzAdRecord {
+    @ApiModelProperty("广告记录ID")
+    private String recordId;
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("广告位ID")
+    private String placementId;
+    @ApiModelProperty("广告源ID")
+    private String adSourceId;
+    @ApiModelProperty("广告收益")
+    private BigDecimal revenue;
+    @ApiModelProperty("广告平台ID")
+    private String networkFormId;
+    @ApiModelProperty("广告平台名称")
+    private String networkName;
+    @ApiModelProperty("广告平台广告位ID")
+    private String networkPlacementId;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("开始时间")
+    private Date beginTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("完成时间")
+    private Date finishTime;
+}

+ 1 - 1
yt-common/src/main/java/com/ytpm/app/model/YtDyzUser.java

@@ -47,7 +47,7 @@ public class YtDyzUser {
     /** 总观看视频数 */
     @CustomField
     @ApiModelProperty("总观看视频数")
-    private String totalVideo;
+    private Integer totalVideo;
     /** 总收益 */
     @ApiModelProperty("总收益")
     private BigDecimal totalIncome;

+ 38 - 0
yt-common/src/main/java/com/ytpm/app/param/DyzAdRecordParam.java

@@ -0,0 +1,38 @@
+package com.ytpm.app.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("用户观看广告记录")
+public class DyzAdRecordParam {
+    @ApiModelProperty("广告记录ID")
+    private String recordId;
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("广告位ID")
+    private String placementId;
+    @ApiModelProperty("广告源ID")
+    private String adSourceId;
+    @ApiModelProperty("广告收益")
+    private BigDecimal revenue;
+    @ApiModelProperty("广告平台ID")
+    private String networkFormId;
+    @ApiModelProperty("广告平台名称")
+    private String networkName;
+    @ApiModelProperty("广告平台广告位ID")
+    private String networkPlacementId;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("开始时间")
+    private Date beginTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("完成时间")
+    private Date finishTime;
+}