Ver código fonte

广告投放小程序

chenbiao 3 anos atrás
pai
commit
6f85996217

+ 0 - 11
netflix-dao/src/main/java/com/cyksj/model/entity/AdvertisementPopularize.java

@@ -35,22 +35,11 @@ public class AdvertisementPopularize extends BaseEntity implements Serializable
      */
     private Boolean isDel;
 
-    /**
-     * 
-     */
-    private Integer type;
-
     /**
      * adp专属行为数据源id
      */
     private Long dataId;
 
-    /**
-     * 
-     */
-    private String img;
-
-
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }

+ 0 - 2
netflix-dao/src/main/java/com/cyksj/model/request/WeChatPayRequest.java

@@ -24,8 +24,6 @@ public class WeChatPayRequest {
     @DecimalMin(value = "1",message = "请输入金额")
     private BigDecimal donMoney;
 
-    private Integer project;
-
     private String appId;
 
 

+ 42 - 0
netflix-dao/src/main/java/com/cyksj/model/views/AdvertisementTencentView.java

@@ -0,0 +1,42 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName advertiserTencentVo
+ * @Description 腾讯广告账号
+ * @Author Huang yuanzhi
+ * @Date 2022/8/5 13:41
+ * @Version 1.0.0
+ **/
+@Data
+@SearchBean( tables = " tencent_user tu left join tencent_action_set tas on tu.id = tas.user_id")
+public class AdvertisementTencentView {
+
+    @DbField("tu.id")
+    private Long id;
+
+    /**
+     * 推广账号id
+     */
+    @DbField("tu.account_id")
+    private Long accountId;
+
+    @DbField("tas.name")
+    private String name;
+
+    @DbField("tas.user_action_set_id")
+    private Long userActionSetId;
+
+    @DbField("tas.status")
+    private String status;
+
+    @DbField("tu.created_time")
+    private Date createdTime;
+
+    private static final long serialVersionUID = 1L;
+}

+ 30 - 0
netflix-dao/src/main/java/com/cyksj/model/views/PaySuccessViews.java

@@ -0,0 +1,30 @@
+package com.cyksj.model.views;
+
+import com.cyksj.model.entity.AdvertisementOrderDon;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author chan
+ * @date 2022/1/7 下午12:17
+ */
+@Getter
+@Setter
+public class PaySuccessViews implements Serializable {
+
+    private Boolean isPay;
+
+    private String transactionId;
+
+    private BigDecimal money;
+
+    private Date payTime;
+
+    private AdvertisementOrderDon.Source source;
+
+
+}

+ 4 - 0
netflix-service/src/main/java/com/cyksj/service/advertisement/AdvertisementOrderDonService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.cyksj.model.dto.H5JsPayParams;
 import com.cyksj.model.entity.AdvertisementOrderDon;
 import com.cyksj.model.entity.AdvertisementUser;
+import com.cyksj.model.views.PaySuccessViews;
 
 import java.math.BigDecimal;
 import java.util.Map;
@@ -16,4 +17,7 @@ public interface AdvertisementOrderDonService extends IService<AdvertisementOrde
     H5JsPayParams minipay(Long popularizeId, BigDecimal money, String appId, AdvertisementUser user, String callback, String callbackType) throws Exception;
 
     void prepayNotify(Map<String, String> map) throws Exception;
+
+    PaySuccessViews isPay(Long orderId);
+
 }

+ 25 - 0
netflix-service/src/main/java/com/cyksj/service/advertisement/impl/AdvertisementOrderDonServiceImpl.java

@@ -19,9 +19,11 @@ import com.cyksj.mapper.advertisement.AdvertisementProjectMapper;
 import com.cyksj.model.dto.H5JsPayParams;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.request.OrderAttach;
+import com.cyksj.model.views.PaySuccessViews;
 import com.cyksj.service.advertisement.AdvertisementOrderDonService;
 import com.cyksj.service.advertisement.AdvertisementOrderPostService;
 import com.cyksj.service.advertisement.AdvertisementPopularizeService;
+import com.cyksj.service.advertisement.AdvertisementProjectService;
 import com.cyksj.service.wechat.WeChatService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -29,6 +31,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
 
 import java.math.BigDecimal;
 import java.util.HashMap;
@@ -124,6 +127,28 @@ public class AdvertisementOrderDonServiceImpl extends ServiceImpl<AdvertisementO
         return params;
     }
 
+    @Override
+    public PaySuccessViews isPay(Long orderId) {
+        
+        AdvertisementOrderDon orderDon = getById(orderId);
+
+        Assert.notNull(orderDon, "订单不存在!");
+
+        AdvertisementPopularize popularize = popularizeMapper.selectById(orderDon.getPopularizeId());
+        Assert.notNull(popularize, "推广链接不存在");
+
+        AdvertisementProject project = projectMapper.selectById(popularize.getProjectId());
+        Assert.notNull(project, "推广项目不存在");
+        
+        PaySuccessViews paySuccessViews = new PaySuccessViews();
+        paySuccessViews.setTransactionId(orderDon.getTransactionId());
+        paySuccessViews.setIsPay(AdvertisementOrderDon.Status.hasPayment.equals(orderDon.getStatus()));
+        paySuccessViews.setMoney(orderDon.getMoney());
+        paySuccessViews.setPayTime(orderDon.getPayTime());
+        paySuccessViews.setSource(orderDon.getSource());
+
+        return paySuccessViews;
+    }
 
     @Override
     @Transactional(rollbackFor = Throwable.class)

+ 8 - 4
netflix-web/src/main/java/com/cyksj/web/controller/advertisement/AdvertisementOrderDonController.java

@@ -12,18 +12,17 @@ import com.cyksj.model.dto.H5JsPayParams;
 import com.cyksj.model.entity.AdvertisementUser;
 import com.cyksj.model.entity.WxApp;
 import com.cyksj.model.request.WeChatPayRequest;
+import com.cyksj.model.views.PaySuccessViews;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.advertisement.AdvertisementOrderDonService;
 import com.cyksj.service.advertisement.AdvertisementUserService;
 import com.cyksj.web.util.StpUserUtil;
+import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.validation.annotation.Validated;
-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 org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -67,6 +66,11 @@ public class AdvertisementOrderDonController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(payParams);
     }
 
+    @GetMapping("/isPay/{orderId}")
+    public Result<PaySuccessViews> isPay(@PathVariable @NonNull Long orderId) {
+        return GatewayResponse.SUCCESS.newBuilder().toResult(advertisementOrderDonService.isPay(orderId));
+    }
+
     @PostMapping("/prepay/notify")
     public void prepayNotify(HttpServletRequest request, HttpServletResponse response) throws Exception {
 

+ 27 - 3
netflix-web/src/main/java/com/cyksj/web/controller/manage/advertisement/CmsAdvertisementPopularizeController.java

@@ -3,15 +3,19 @@ package com.cyksj.web.controller.manage.advertisement;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.entity.AdvertisementPopularize;
+import com.cyksj.model.views.AdvertisementTencentView;
 import com.cyksj.service.advertisement.AdvertisementPopularizeService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.param.Operator;
+import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * @author chan
@@ -38,23 +42,43 @@ public class CmsAdvertisementPopularizeController {
     }
 
     @PostMapping
-    public Result<AdvertisementPopularize> post(@RequestBody AdvertisementPopularize popularize){
+    public Result<AdvertisementPopularize> post(@RequestBody AdvertisementPopularize popularize) {
         advertisementPopularizeService.save(popularize);
         return GatewayResponse.SUCCESS.newBuilder().toResult(advertisementPopularizeService.getById(popularize.getId()));
     }
 
     @PutMapping
-    public Result<String> put(@RequestBody AdvertisementPopularize popularize){
+    public Result<String> put(@RequestBody AdvertisementPopularize popularize) {
         advertisementPopularizeService.updateById(popularize);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
 
     @DeleteMapping("/{id}")
-    public Result<String> del(@PathVariable Long id){
+    public Result<String> del(@PathVariable Long id) {
         advertisementPopularizeService.removeById(id);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
 
 
+    @GetMapping("/getDataIdList")
+    public Result<SearchResult<AdvertisementTencentView>> get(@RequestParam(required = false) Long accountId,
+                                                              @RequestParam(required = false) Long userActionSetId) throws Exception {
+
+        MapBuilder params = MapUtils.builder()
+                .field(AdvertisementTencentView::getAccountId, accountId)
+                .field(AdvertisementTencentView::getUserActionSetId, userActionSetId)
+                .orderBy(AdvertisementTencentView::getId, "desc");
+        // 选择数据源查询数据
+
+        params.field(AdvertisementTencentView::getName)
+                .op(Operator.NotNull)
+                .onlySelect(AdvertisementTencentView::getUserActionSetId, AdvertisementTencentView::getName);
+        List<AdvertisementTencentView> list = beanSearcher.searchAll(AdvertisementTencentView.class, params.build());
+        list.stream().forEach(advertiserTencentVo -> advertiserTencentVo.setName(advertiserTencentVo.getName() + "-" + advertiserTencentVo.getUserActionSetId()));
+        return GatewayResponse.SUCCESS.newBuilder().toResult(new SearchResult<>(list));
+
+
+    }
+
 
 }