Переглянути джерело

修改穿山甲代码逻辑

syh 5 роки тому
батько
коміт
478ce7f603
16 змінених файлів з 122 додано та 37 видалено
  1. 1 10
      jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java
  2. 4 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/BindAccountLoginController.java
  3. 29 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/PangolinController.java
  4. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/ICreateInternalService.java
  5. 4 13
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/CreateInternalServiceImpl.java
  6. 3 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/MaterialTopServiceImpl.java
  7. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/BindAccountLogin.java
  8. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IBindAccountLoginService.java
  9. 6 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IUserAllocationService.java
  10. 16 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/BindAccountLoginServiceImpl.java
  11. 39 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/UserAllocationServiceImpl.java
  12. 1 0
      module-common/src/main/java/cn/com/ctop/common/module/utils/CtopAdConstant.java
  13. 1 1
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinAppMapper.java
  14. 4 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/xml/PangolinAppMapper.xml
  15. 2 1
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinAppService.java
  16. 7 2
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinAppServiceImpl.java

+ 1 - 10
jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java

@@ -81,16 +81,7 @@ public class ShiroConfig {
 		filterChainDefinitionMap.put("/ctop/byteDance/homePage/report/*", "anon");
 		filterChainDefinitionMap.put("/ctop/material/top/cost", "anon");
 
-
-
-
-		//优化师相关
-		//filterChainDefinitionMap.put("/ctop/performanceOptimizer/detail", "anon");
-		//filterChainDefinitionMap.put("/ctop/performanceOptimizer/ranking/list", "anon");
-		//filterChainDefinitionMap.put("/ctop/performance/project/list", "anon");
-		//filterChainDefinitionMap.put("/ctop/performance/account/list", "anon");
-		//filterChainDefinitionMap.put("/ctop/optimizerRoleInfo/manager/detail", "anon");
-
+		filterChainDefinitionMap.put("/pangolin/**", "anon");
 
         filterChainDefinitionMap.put("/generic/**", "anon");
 		filterChainDefinitionMap.put("/", "anon");

+ 4 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/BindAccountLoginController.java

@@ -65,10 +65,12 @@ public class BindAccountLoginController {
         String loginType = json.getString("loginType");
         // 广告主名称
         String advertiserName = json.getString("advertiser_name");
+        //项目id
+        Long projectId = json.getLong("projectId");
         //账号
         String accountName = json.getString("accountName");
         String password = json.getString("password");
-        Map<String, Object> stringObjectMap = createInternalService.bindLogin(advertiserId, accountName, password, loginType, userId, advertiserName);
+        Map<String, Object> stringObjectMap = createInternalService.bindLogin(projectId,advertiserId, accountName, password, loginType, userId, advertiserName);
         Boolean trueOrFalse = (Boolean) stringObjectMap.get("success");
         if (Boolean.TRUE.equals(trueOrFalse)&&!loginType.equals(CtopAdConstant.PLATFORM_TYPE_PANGOLIN_PY)) {
             Map<String, Object> deleteMap = new HashMap<>();
@@ -77,10 +79,9 @@ public class BindAccountLoginController {
             deleteMap.put("advertiser_id", advertiserId);
             userAllocationMapper.deleteByMap(deleteMap);
             Long accountId = (Long) stringObjectMap.get("accountId");
+            String mediaId = json.getString("mediaId");
             String userName = json.getString("userName");
             // 媒体类型: 1 头条 2 快手
-            String mediaId = json.getString("mediaId");
-            Long projectId = json.getLong("projectId");
             String projectName = json.getString("projectName");
             String systemType = json.getString("systemType");
             UserAllocation userAllocation = new UserAllocation();

+ 29 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/PangolinController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.ctop.controller;
 
 import cn.com.ctop.common.module.service.ISysRoleService;
+import cn.com.ctop.common.module.service.IUserAllocationService;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
 import cn.com.ctop.crawler.modules.pangolin.service.*;
@@ -33,6 +34,32 @@ public class PangolinController {
     private PangolinChannelService pangolinChannelService;
     @Autowired
     private ISysRoleService sysRoleService;
+    @Autowired
+    private IUserAllocationService  userAllocationService;
+    @PostMapping("api/user/list")
+    public Map<String, Object> userList(@RequestBody JSONObject data) {
+//        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+//        String userId = user.getId();
+        String userId = "6b4c821adc414dc8b7718ab63ccbfcaf";
+        String roleCode = sysRoleService.getRoleCodeByUserId(userId);
+        if(null!=roleCode&&(roleCode.equals("admin"))){
+            userId = null;
+        }
+        return userAllocationService.getPangolinAccountListByParams(userId,data);
+    }
+
+    @PostMapping("api/project/list")
+    public Map<String, Object> projectList(@RequestBody JSONObject data) {
+//        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+//        String userId = user.getId();
+        String userId = "6b4c821adc414dc8b7718ab63ccbfcaf";
+        String roleCode = sysRoleService.getRoleCodeByUserId(userId);
+        if(null!=roleCode&&(roleCode.equals("admin"))){
+            userId = null;
+        }
+        return userAllocationService.getPangolinProjectListByParams(userId);
+    }
+
     @PostMapping("api/channel/list")
     public Map<String, Object> channelList(@RequestBody JSONObject data) {
 //        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -47,7 +74,7 @@ public class PangolinController {
 
 
     @PostMapping("api/app/list")
-    public Map<String, Object> appList() {
+    public Map<String, Object> appList(@RequestBody JSONObject data) {
 //        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 //        String userId = user.getId();
         String userId = "6b4c821adc414dc8b7718ab63ccbfcaf";
@@ -55,7 +82,7 @@ public class PangolinController {
         if(null!=roleCode&&(roleCode.equals("admin"))){
             userId = null;
         }
-        return pangolinAppService.getListByUserId(userId);
+        return pangolinAppService.getListByUserId(userId,data);
     }
 
 

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/ICreateInternalService.java

@@ -6,5 +6,5 @@ public interface ICreateInternalService {
 
     Map<String, Object> checkAccountPassword(String account, String password);
 
-    Map<String, Object> bindLogin(String advertiserId, String accountName, String password, String loginType, String userId, String advertiserName);
+    Map<String, Object> bindLogin(Long projectId,String advertiserId, String accountName, String password, String loginType, String userId, String advertiserName);
 }

+ 4 - 13
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/CreateInternalServiceImpl.java

@@ -35,25 +35,15 @@ public class CreateInternalServiceImpl implements ICreateInternalService {
     private BindAccountLoginMapper bindAccountLoginMapper;
 
     @Override
-    public Map<String, Object> bindLogin(String advertiserId, String accountName, String password, String loginType, String userId, String advertiserName) {
+    public Map<String, Object> bindLogin(Long projectId,String advertiserId, String accountName, String password, String loginType, String userId, String advertiserName) {
         Map<String, Object> returnMap = new HashMap<>();
         Map<String, Object> requestMap = new HashMap<>();
         requestMap.put("advertiser_id", advertiserId);
         requestMap.put("account_name", accountName);
         requestMap.put("login_type", loginType);
         requestMap.put("user_id", userId);
-        Map<String, Object> deleteMap = new HashMap<>();
-        deleteMap.put("advertiser_id", advertiserId);
-        deleteMap.put("account_name", accountName);
-        deleteMap.put("login_type", loginType);
-        deleteMap.put("user_id", userId);
-        bindAccountLoginMapper.deleteByMap(deleteMap);
-        List<BindAccountLogin> bindAccounts = bindAccountLoginMapper.selectByMap(requestMap);
-        if (!Check.isNull(bindAccounts)) {
-            returnMap.put("success", false);
-            returnMap.put("message", "账号已存在");
-            return returnMap;
-        }
+        requestMap.put("project_id", projectId);
+        bindAccountLoginMapper.deleteByMap(requestMap);
         String accountId = "";
         //头条登录
         if (null != loginType && loginType.equals(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_PY)) {
@@ -72,6 +62,7 @@ public class CreateInternalServiceImpl implements ICreateInternalService {
         bindAccountLogin.setPassword(password);
         bindAccountLogin.setAccountId(accountId);
         bindAccountLogin.setLoginType(loginType);
+        bindAccountLogin.setProjectId(projectId);
         bindAccountLogin.setUserId(userId);
         int i = bindAccountLoginMapper.insert(bindAccountLogin);
         if (i > 0) {

+ 3 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/MaterialTopServiceImpl.java

@@ -21,8 +21,8 @@ public class MaterialTopServiceImpl  implements IMaterialTopService {
     MaterialTopMapper materialTopMapper;
     @Override
     public IPage<MaterialTopVO> selectByPage(String endDate, String startDate, String target, String order, int pageNo, int pageSize) {
-        QueryWrapper<MaterialTopVO> wrapper = new QueryWrapper();
-        wrapper.ge("stat_date", startDate).le("stat_date", endDate).isNotNull("url");
+        QueryWrapper<MaterialTopVO> wrapper = new QueryWrapper<>();
+        wrapper.ge("stat_date", startDate).le("stat_date", endDate).ne("url","").isNotNull("url");
         target = StringUtils.humpToLine2(target);
         if(order.equals(CtopAdConstant.COMMON_ORDER_TYPE_ASC)){
             wrapper.orderByAsc(target);
@@ -31,8 +31,7 @@ public class MaterialTopServiceImpl  implements IMaterialTopService {
         }
         wrapper.groupBy("code");
         Page<MaterialTopVO> page = new Page<>((pageNo-1)*pageSize,pageSize);
-        IPage<MaterialTopVO> mapIPage = materialTopMapper.selectMapsPage(page, wrapper);
-        return mapIPage;
+        return materialTopMapper.selectMapsPage(page, wrapper);
     }
 
 }

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/BindAccountLogin.java

@@ -101,4 +101,6 @@ public class BindAccountLogin {
     private Date updateTime;
 
     private String cookie;
+
+    private Long projectId;
 }

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IBindAccountLoginService.java

@@ -17,4 +17,6 @@ public interface IBindAccountLoginService extends IService<BindAccountLogin> {
      * @return
      */
     BindAccountLogin selectByAccountId(String accountId);
+
+    BindAccountLogin getByParams(String accountName, String password, String advertiserId);
 }

+ 6 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IUserAllocationService.java

@@ -1,9 +1,11 @@
 package cn.com.ctop.common.module.service;
 
 import cn.com.ctop.common.module.entity.UserAllocation;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 用户分配
@@ -16,4 +18,8 @@ public interface IUserAllocationService extends IService<UserAllocation> {
     UserAllocation getByAccountId(Long accountId);
 
     List<UserAllocation> getByProjectId(Long projectId, String systemType);
+
+    Map<String, Object> getPangolinAccountListByParams(String userId, JSONObject data);
+
+    Map<String, Object> getPangolinProjectListByParams(String userId);
 }

+ 16 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/BindAccountLoginServiceImpl.java

@@ -25,4 +25,20 @@ public class BindAccountLoginServiceImpl extends ServiceImpl<BindAccountLoginMap
         queryWrapper.eq("account_id", accountId).orderByDesc("id").last("limit 1");
         return this.getOne(queryWrapper);
     }
+
+    @Override
+    public BindAccountLogin getByParams(String accountName, String password, String advertiserId) {
+        QueryWrapper<BindAccountLogin> queryWrapper = new QueryWrapper<>();
+        if(null!=accountName&&!"".equals(accountName)){
+            queryWrapper.eq("account_name",accountName);
+        }
+        if(null!=password&&!"".equals(password)){
+            queryWrapper.eq("password",password);
+        }
+        if(null!=advertiserId&&!"".equals(advertiserId)){
+            queryWrapper.eq("advertiser_id",advertiserId);
+        }
+        queryWrapper.orderByDesc("create_time").last("limit 1");
+        return this.getOne(queryWrapper);
+    }
 }

+ 39 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/UserAllocationServiceImpl.java

@@ -3,12 +3,18 @@ package cn.com.ctop.common.module.service.impl;
 import cn.com.ctop.common.module.entity.UserAllocation;
 import cn.com.ctop.common.module.mapper.UserAllocationMapper;
 import cn.com.ctop.common.module.service.IUserAllocationService;
+import cn.com.ctop.common.module.utils.CtopAdConstant;
+import cn.com.ctop.common.module.utils.ResultMapUtils;
+import cn.com.ctop.common.module.utils.StatusCode;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 用户分配
@@ -39,4 +45,37 @@ public class UserAllocationServiceImpl extends ServiceImpl<UserAllocationMapper,
         queryWrapper.orderByDesc("id");
         return this.list(queryWrapper);
     }
+
+    @Override
+    public Map<String, Object> getPangolinAccountListByParams(String userId, JSONObject data) {
+        Map<String,Object>result = new HashMap<>();
+        Long projectId = data.getLong("project_id");
+        QueryWrapper<UserAllocation>queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("media_id", CtopAdConstant.PLATFORM_TYPE_PANGOLIN);
+        if(null != userId&&!"".equals(userId.trim())){
+            queryWrapper.eq("user_id",userId);
+        }
+        if(null != projectId&&projectId != 0){
+            queryWrapper.eq("project_id",projectId);
+        }
+        List<UserAllocation> allocations = this.list(queryWrapper);
+        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
+        result.put("data",allocations);
+        return result;
+    }
+
+    @Override
+    public Map<String, Object> getPangolinProjectListByParams(String userId) {
+        Map<String,Object>result = new HashMap<>();
+        QueryWrapper<UserAllocation>queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("distinct project_id,project_name");
+        queryWrapper.eq("media_id",CtopAdConstant.PLATFORM_TYPE_PANGOLIN);
+        if(null != userId&&!"".equals(userId.trim())){
+            queryWrapper.eq("user_id",userId);
+        }
+        List<UserAllocation> allocations = this.list(queryWrapper);
+        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
+        result.put("data",allocations);
+        return result;
+    }
 }

+ 1 - 0
module-common/src/main/java/cn/com/ctop/common/module/utils/CtopAdConstant.java

@@ -8,6 +8,7 @@ import java.math.BigDecimal;
 public class CtopAdConstant {
     public static final String PLATFORM_TYPE_BYTEDANCE = "1";
     public static final String PLATFORM_TYPE_KUAISHOU = "2";
+    public static final String PLATFORM_TYPE_PANGOLIN = "3";
 
     public static final String PLATFORM_TYPE_BYTEDANCE_PY = "bytedance";
     public static final String PLATFORM_TYPE_KUAISHOU_PY = "kuaishou";

+ 1 - 1
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinAppMapper.java

@@ -7,5 +7,5 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 public interface PangolinAppMapper extends BaseMapper<PangolinApp> {
-    List<PangolinApp> getListByUserId(@Param(value = "userId") String userId);
+    List<PangolinApp> getListByUserId(@Param(value = "userId") String userId,@Param(value = "projectId") Long projectID);
 }

+ 4 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/xml/PangolinAppMapper.xml

@@ -5,9 +5,13 @@
         select app.*
             from ctop_pangolin_app app
         left join ctop_bind_account_login login on login.account_name = app.account_name
+        left join ctop_user_allocation allocation on allocation.account_id = login.id
         where 1=1
         <if test="userId!=null">
             and login.user_id = #{userId}
         </if>
+        <if test="projectId!=null">
+            and allocation.project_id = #{projectId}
+        </if>
     </select>
 </mapper>

+ 2 - 1
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinAppService.java

@@ -1,10 +1,11 @@
 package cn.com.ctop.crawler.modules.pangolin.service;
 
 import cn.com.ctop.crawler.modules.pangolin.entity.PangolinApp;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.Map;
 
 public interface PangolinAppService extends IService<PangolinApp> {
-    Map<String, Object> getListByUserId(String userId);
+    Map<String, Object> getListByUserId(String userId, JSONObject data);
 }

+ 7 - 2
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinAppServiceImpl.java

@@ -5,6 +5,7 @@ import cn.com.ctop.common.module.utils.StatusCode;
 import cn.com.ctop.crawler.modules.pangolin.entity.PangolinApp;
 import cn.com.ctop.crawler.modules.pangolin.mapper.PangolinAppMapper;
 import cn.com.ctop.crawler.modules.pangolin.service.PangolinAppService;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -18,9 +19,13 @@ public class PangolinAppServiceImpl extends ServiceImpl<PangolinAppMapper, Pango
     @Autowired
     private PangolinAppMapper pangolinAppMapper;
     @Override
-    public Map<String, Object> getListByUserId(String userId) {
+    public Map<String, Object> getListByUserId(String userId, JSONObject data) {
         Map<String,Object>result = new HashMap<>();
-        List<PangolinApp>appList = pangolinAppMapper.getListByUserId(userId);
+        Long projectId = data.getLong("projectId");
+        if(null == projectId||projectId == 0){
+            projectId = null;
+        }
+        List<PangolinApp>appList = pangolinAppMapper.getListByUserId(userId,projectId);
         result.put("data",appList);
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
         return result;