Przeglądaj źródła

Merge branch 'test' into test_v2

yumeng 5 lat temu
rodzic
commit
6ba49a09cd

+ 31 - 25
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/CallbackController.java

@@ -140,15 +140,8 @@ public class CallbackController {
                     if (Check.isNull(accountId)) {
                         return "授权绑定失败!";
                     }
-                    QueryWrapper<UserAllocation> userAllocationQueryWrapper = new QueryWrapper<>();
-                    userAllocationQueryWrapper.eq("account_id", accountId);
-                    userAllocationQueryWrapper.eq("media_id", 2);
-                    userAllocationQueryWrapper.orderByDesc("create_time");
-                    userAllocationQueryWrapper.last("limit 1");
-                    UserAllocation checkUserAllocation = allocationMapper.selectOne(userAllocationQueryWrapper);
-                    if (!Check.isNull(checkUserAllocation)) {
-                        return "授权失败,该账号已被:" + checkUserAllocation.getAuthName() + "绑定!";
-                    }
+
+
                     String advertiserId = json.getString("advertiserId");
                     //指定分配人姓名
                     String userName = json.getString("userName");
@@ -159,6 +152,34 @@ public class CallbackController {
                     //创建人
                     String userId = json.getString("userId");
                     Long projectId = json.getLong("projectId");
+
+                    CtopOauthToken topOauthToken = new CtopOauthToken();
+                    topOauthToken.setId(accountId + "");
+                    topOauthToken.setAccountId(accountId);
+                    topOauthToken.setMediaId("2");
+                    topOauthToken.setAdvertiserId(advertiserId);
+                    topOauthToken.setAccessToken(token.getAccessToken());
+                    long accessTokenExpireIn = token.getAccessTokenExpiresIn() * 1000L;
+                    long now = System.currentTimeMillis();
+                    Date accessTokenExpireInDate = new Date(now + accessTokenExpireIn);
+                    topOauthToken.setAccessTokenExpiresIn(accessTokenExpireInDate);
+                    topOauthToken.setRefreshToken(token.getRefreshToken());
+                    long refreshTokenExpireIn = token.getRefreshTokenExpiresIn() * 1000L;
+                    Date refreshTokenExpireInDate = new Date(now + refreshTokenExpireIn);
+                    topOauthToken.setRefreshTokenExpiresIn(refreshTokenExpireInDate);
+                    topOauthToken.setUpdateTime(new Date());
+                    ctopOauthTokenService.saveOrUpdate(topOauthToken);
+
+
+                    QueryWrapper<UserAllocation> userAllocationQueryWrapper = new QueryWrapper<>();
+                    userAllocationQueryWrapper.eq("account_id", accountId);
+                    userAllocationQueryWrapper.eq("media_id", 2);
+                    userAllocationQueryWrapper.orderByDesc("create_time");
+                    userAllocationQueryWrapper.last("limit 1");
+                    UserAllocation checkUserAllocation = allocationMapper.selectOne(userAllocationQueryWrapper);
+                    if (!Check.isNull(checkUserAllocation)) {
+                        return "授权失败,该账号已被:" + checkUserAllocation.getUserName() + " 绑定!";
+                    }
                     String projectName = json.getString("projectName");
                     UserAllocation userAllocation = new UserAllocation();
                     userAllocation.setUserName(userName);
@@ -185,22 +206,7 @@ public class CallbackController {
                     if (i > 0) {
                         logger.info("同步分配用户表完成,task_id:{},accountId:{}", state, accountId);
                     }
-                    CtopOauthToken topOauthToken = new CtopOauthToken();
-                    topOauthToken.setId(accountId + "");
-                    topOauthToken.setAccountId(accountId);
-                    topOauthToken.setMediaId("2");
-                    topOauthToken.setAdvertiserId(advertiserId);
-                    topOauthToken.setAccessToken(token.getAccessToken());
-                    long accessTokenExpireIn = token.getAccessTokenExpiresIn() * 1000L;
-                    long now = System.currentTimeMillis();
-                    Date accessTokenExpireInDate = new Date(now + accessTokenExpireIn);
-                    topOauthToken.setAccessTokenExpiresIn(accessTokenExpireInDate);
-                    topOauthToken.setRefreshToken(token.getRefreshToken());
-                    long refreshTokenExpireIn = token.getRefreshTokenExpiresIn() * 1000L;
-                    Date refreshTokenExpireInDate = new Date(now + refreshTokenExpireIn);
-                    topOauthToken.setRefreshTokenExpiresIn(refreshTokenExpireInDate);
-                    topOauthToken.setUpdateTime(new Date());
-                    ctopOauthTokenService.saveOrUpdate(topOauthToken);
+
                     //账号绑定
                     bindAccountAuthService.addBindAccount(accountId, KuaishouInterfaceConstant.LOGIN_TYPE_KUAISHOU, advertiserId);
                     Thread t = new Thread() {

+ 42 - 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProjectController.java

@@ -87,19 +87,20 @@ public class ProjectController {
     @GetMapping(value = "/responsibleList")
     public Map<String, Object> responsibleList(String userId) {
         Map<String, Object> map = new HashMap<>();
-
         String roleCode = materialReportMapper.getRoleCodeByUserId(userId);
         QueryWrapper<Project> queryWrapper = new QueryWrapper<>();
         if (!"admin".equals(roleCode)) {
-            queryWrapper.eq("responsible_id", userId);
-            queryWrapper.orderByDesc("create_time");
+            if ("designTeamLeader".equals(roleCode)) {
+                queryWrapper.eq("design_responsible_id", userId);
+            } else {
+                queryWrapper.eq("responsible_id", userId);
+            }
         }
+        queryWrapper.orderByDesc("create_time");
         List<Project> projects = projectMapper.selectList(queryWrapper);
         map.put("success", true);
         map.put("code", 0);
         map.put("result", projects);
-
-
         return map;
     }
 
@@ -158,31 +159,48 @@ public class ProjectController {
         try {
             String advertiserId = project.getAdvertiserId();
             Advertiser advertiser = advertiserService.getById(advertiserId);
+            Map<String, String> memberMap = new HashMap<>();
             if (!Check.isNull(advertiser)) {
                 project.setCompanyId(advertiser.getCompanyId());
+
             }
             SysUser sysUser = sysUserService.getById(project.getResponsibleId());
             if (!Check.isNull(sysUser)) {
                 project.setResponsibleName(sysUser.getRealname());
+                memberMap.put(sysUser.getId(), sysUser.getRealname());
+            }
+
+
+            SysUser designSysUser = sysUserService.getById(project.getDesignResponsibleId());
+            if (!Check.isNull(designSysUser)) {
+                project.setDesignResponsibleName(designSysUser.getRealname());
+                memberMap.put(designSysUser.getId(), designSysUser.getRealname());
             }
+
             projectService.save(project);
+
             Long id = project.getId();
-            Map<String, Object> map = new HashMap<>();
-            map.put("project_id", id);
-            map.put("user_id", project.getResponsibleId());
-            projectMemberService.removeByMap(map);
-            ProjectMember member = new ProjectMember();
-            member.setProjectId(id);
-            member.setProjectName(project.getProjectName());
-            member.setUserId(project.getResponsibleId());
-            if (!Check.isNull(sysUser)) {
-                member.setUserName(sysUser.getRealname());
-            }
-            String roleCode = materialReportMapper.getRoleCodeByUserId(project.getUserId());
-            if (!Check.isNull(roleCode)) {
-                member.setRoleCode(roleCode);
+            for (Map.Entry<String, String> projectMember : memberMap.entrySet()) {
+
+                String userId = projectMember.getKey();
+                String userName = projectMember.getValue();
+                Map<String, Object> map = new HashMap<>();
+                map.put("project_id", id);
+                map.put("user_id", userId);
+                projectMemberService.removeByMap(map);
+                ProjectMember member = new ProjectMember();
+                member.setProjectId(id);
+                member.setProjectName(project.getProjectName());
+                member.setUserId(userId);
+                member.setUserName(userName);
+                String roleCode = materialReportMapper.getRoleCodeByUserId(userId);
+                if (!Check.isNull(roleCode)) {
+                    member.setRoleCode(roleCode);
+                }
+                projectMemberService.save(member);
             }
-            projectMemberService.save(member);
+
+
             result.success("添加成功!");
         } catch (Exception e) {
             e.printStackTrace();
@@ -208,6 +226,10 @@ public class ProjectController {
             project.setResponsibleName(sysUser.getRealname());
         }
 
+        SysUser designSysUser = sysUserService.getById(project.getDesignResponsibleId());
+        if (!Check.isNull(designSysUser)) {
+            project.setDesignResponsibleName(designSysUser.getRealname());
+        }
         Project projectEntity = projectService.getById(project.getId());
         if (projectEntity == null) {
             result.error500("未找到对应实体");

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

@@ -65,7 +65,7 @@ public class ProjectMemberController {
 
 
     /**
-     * 我参与项目
+     * 查看项目成员
      *
      * @param projectId
      * @return
@@ -119,6 +119,7 @@ public class ProjectMemberController {
                     Project project = projectService.getById(projectMember.getProjectId());
                     if (!Check.isNull(project)) {
                         projectMember.setResponsibleName(project.getResponsibleName());
+                        projectMember.setDesignResponsibleName(project.getDesignResponsibleName());
                         projectMember.setAdvertiserName(project.getAdvertiserName());
                         projectMember.setAdvertiserId(project.getAdvertiserId());
                         projectMember.setMediaId(project.getMediaId());

+ 9 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/entity/Project.java

@@ -68,6 +68,15 @@ public class Project {
     @ApiModelProperty(value = "负责人名称")
     private String responsibleName;
 
+    @Excel(name = "设计负责人", width = 15)
+    @ApiModelProperty(value = "设计负责人")
+    private String designResponsibleId;
+
+    @Excel(name = "设计负责人名称", width = 15)
+    @ApiModelProperty(value = "设计负责人名称")
+    private String designResponsibleName;
+
+
     @Excel(name = "公司id", width = 15)
     @ApiModelProperty(value = "公司id")
     private String companyId;

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/entity/ProjectMember.java

@@ -66,6 +66,10 @@ public class ProjectMember {
     @TableField(exist = false)
     private String responsibleName;
 
+
+    @TableField(exist = false)
+    private String designResponsibleName;
+
     @TableField(exist = false)
     private String advertiserName;
     @TableField(exist = false)

+ 58 - 0
module-common/src/main/java/cn/com/ctop/common/module/utils/MpsUtils.java

@@ -269,6 +269,64 @@ public class MpsUtils {
         return jobId;
     }
 
+    public String videoWaterMark(String videoPath,String waterMarkPath,String watermarkTemplateId){
+        String jobId = "";
+        IAcsClient client = getClient();
+        String pipelineId = getPipelineId(client);
+        SubmitJobsRequest request = new SubmitJobsRequest();
+        JSONObject videoWatermarkInput = new JSONObject();
+        videoWatermarkInput.put("Location", ossLocation);
+        videoWatermarkInput.put("Bucket", ossBucket);
+        try {
+            videoWatermarkInput.put("Object", URLEncoder.encode(videoPath, "utf-8"));
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException("videoWatetmark Input URL encode failed");
+        }
+        JSONObject videoWatermark = new JSONObject();
+        videoWatermark.put("WaterMarkTemplateId", watermarkTemplateId);
+        videoWatermark.put("Type", "Image");
+        videoWatermark.put("InputFile", videoWatermarkInput);
+        videoWatermark.put("ReferPos", "BottomLeft");
+        videoWatermark.put("Height", "240");
+        videoWatermark.put("Dx", "0");
+        videoWatermark.put("Dy", "0");
+        String outputOSSObject;
+        try {
+            outputOSSObject = URLEncoder.encode(waterMarkPath, "utf-8");
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException("output URL encode failed");
+        }
+        JSONObject output = new JSONObject();
+        output.put("OutputObject", outputOSSObject);
+        JSONArray watermarks = new JSONArray();
+        watermarks.add(videoWatermark);
+        output.put("WaterMarks", watermarks.toJSONString());
+        // Outputs
+        JSONArray outputs = new JSONArray();
+        outputs.add(output);
+        request.setOutputs(outputs.toJSONString());
+        request.setOutputBucket(ossBucket);
+        request.setOutputLocation(ossLocation);
+        // PipelineId
+        request.setPipelineId(pipelineId);
+        SubmitJobsResponse response;
+        try {
+            response = client.getAcsResponse(request);
+            System.out.println("RequestId is:"+response.getRequestId());
+            if (response.getJobResultList().get(0).getSuccess()) {
+                jobId = response.getJobResultList().get(0).getJob().getJobId();
+                System.out.println("JobId is:" + response.getJobResultList().get(0).getJob().getJobId());
+            } else {
+                System.out.println("SubmitJobs Failed code:" + response.getJobResultList().get(0).getCode() +
+                        " message:" + response.getJobResultList().get(0).getMessage());
+            }
+        } catch (ServerException e) {
+            e.printStackTrace();
+        } catch (ClientException e) {
+            e.printStackTrace();
+        }
+        return jobId;
+    }
 
 
     public String getPipelineId(IAcsClient client){

+ 5 - 0
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/entity/RolePerformanceCommission.java

@@ -60,6 +60,11 @@ public class RolePerformanceCommission {
     @ApiModelProperty(value = "媒体类型")
     @Dict(dicCode = "media_type")
     private Integer appType;
+
+    @Excel(name = "是否有平面", width = 15)
+    @ApiModelProperty(value = "是否有平面")
+    @Dict(dicCode = "has_plane")
+    private Integer hasPlane;
     /**
      * 开始时间
      */

+ 2 - 1
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/IPerformanceService.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.performanceappraisal.service;
 
+import cn.com.ctop.performanceappraisal.entity.OptimizerConfig;
 import cn.com.ctop.performanceappraisal.entity.Performance;
 import cn.com.ctop.performanceappraisal.vo.DesignerCostDetailVO;
 import cn.com.ctop.performanceappraisal.vo.OptimizerCostDetailVO;
@@ -32,5 +33,5 @@ public interface IPerformanceService extends IService<Performance> {
 
     Map<String, Object> getUserOptimizerAccountList(Long projectId, Integer pageNo, Integer pageSize);
 
-    List<OptimizerCostDetailVO> getMemberPerformanceByUserId();
+    List<OptimizerCostDetailVO> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo);
 }

+ 5 - 5
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/OptimizerRoleInfoServiceImpl.java

@@ -2,19 +2,18 @@ package cn.com.ctop.performanceappraisal.service.impl;
 
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
+import cn.com.ctop.performanceappraisal.entity.OptimizerConfig;
 import cn.com.ctop.performanceappraisal.entity.OptimizerRoleInfo;
 import cn.com.ctop.performanceappraisal.mapper.OptimizerRoleInfoMapper;
-import cn.com.ctop.performanceappraisal.mapper.PerformanceMapper;
+import cn.com.ctop.performanceappraisal.service.IOptimizerConfigService;
 import cn.com.ctop.performanceappraisal.service.IOptimizerRoleInfoService;
 import cn.com.ctop.performanceappraisal.service.IPerformanceService;
 import cn.com.ctop.performanceappraisal.vo.OptimizerCostDetailVO;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -31,7 +30,7 @@ public class OptimizerRoleInfoServiceImpl extends ServiceImpl<OptimizerRoleInfoM
     @Autowired
     private IPerformanceService performanceService;
     @Autowired
-    private PerformanceMapper performanceMapper;
+    private IOptimizerConfigService optimizerConfigService;
 
     @Override
     public Map<String, Object> getmanagerDetail(Integer appType) {
@@ -41,8 +40,9 @@ public class OptimizerRoleInfoServiceImpl extends ServiceImpl<OptimizerRoleInfoM
         sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
         //1:查询媒体任务
         OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
+        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(appType + "");
         //查询经理所属人员任务完成信息列表
-        List<OptimizerCostDetailVO> detailVOS = performanceService.getMemberPerformanceByUserId();
+        List<OptimizerCostDetailVO> detailVOS = performanceService.getMemberPerformanceByUserId(config, totalCostVo);
         result.put("data", detailVOS);
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
         return result;

+ 20 - 6
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/PerformanceOptimizerServiceImpl.java

@@ -103,16 +103,30 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
 
     @Override
     public Map<String, Object> getManagerPerformanceDetail(String mediaType) {
+        Map<String, Object> result = new HashMap<>();
         //获取经理相关信息
-        //查询当前登录人信息
-//        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        LoginUser sysUser = new LoginUser();
-        sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
         //查询优化师系统设置数据
-        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType("2");
+        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(mediaType);
         //2: 查询媒体季度任务完成情况
         OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
-        return null;
+        result.put("totalCost", totalCostVo.getTotalCost().toString());
+        if (totalCostVo.getTotalCost().compareTo(config.getMediaTask()) < 0) {
+            //当前消耗季度任务未完成
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
+            result.put("totalRoyalty", totalCostVo.getTotalRoyalty().toString());
+            return result;
+        }
+        //3:查询经理手下所有优化师的总提成
+        List<OptimizerCostDetailVO> opDetails = performanceService.getMemberPerformanceByUserId(config, totalCostVo);
+        BigDecimal totalRoyalty = BigDecimal.ZERO;
+        BigDecimal memberTotalRoyalty = BigDecimal.ZERO;
+        for (OptimizerCostDetailVO vo : opDetails) {
+            memberTotalRoyalty = memberTotalRoyalty.add(vo.getTotalRoyalty());
+        }
+        totalRoyalty = memberTotalRoyalty.multiply(config.getMediaTaskFinishRate()).divide(new BigDecimal("1000")).multiply(new BigDecimal("0.2")).setScale(2, RoundingMode.HALF_UP);
+        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
+        result.put("totalRoyalty", totalRoyalty.toString());
+        return result;
     }
 
     private BigDecimal getTotalRoyalty(OptimizerConfig config, OptimizerCostDetailVO vo, OptimizerCostDetailVO quarterCost) {

+ 7 - 2
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/PerformanceServiceImpl.java

@@ -134,7 +134,7 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
     }
 
     @Override
-    public List<OptimizerCostDetailVO> getMemberPerformanceByUserId() {
+    public List<OptimizerCostDetailVO> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo) {
         Map<String, Object> result = new HashMap<>();
         //        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         LoginUser sysUser = new LoginUser();
@@ -146,7 +146,12 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
         List<OptimizerCostDetailVO> detailVOS = performanceMapper.getMemberPerformanceByUserId(startDate, endDate, year, quarter, sysUser.getId());
-        return detailVOS;
+        List<OptimizerCostDetailVO> getDetails = new ArrayList<>();
+        for (OptimizerCostDetailVO vo : detailVOS) {
+            vo.setTotalRoyalty(getTotalRoyalty(config, vo, totalCostVo));
+            getDetails.add(vo);
+        }
+        return getDetails;
     }
 
     private BigDecimal getTotalRoyalty(OptimizerConfig config, OptimizerCostDetailVO vo, OptimizerCostDetailVO quarterCost) {

+ 1 - 0
pom.xml

@@ -67,6 +67,7 @@
             <id>maven-3rdparty</id>
             <url>https://packages.atlassian.com/maven-3rdparty/</url>
         </repository>
+
     </repositories>
 
     <properties>