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

Merge remote-tracking branch 'origin/test' into test

xuzuoyun 5 роки тому
батько
коміт
d1bea50867

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

@@ -154,7 +154,7 @@ public class CallbackController {
                     Long projectId = json.getLong("projectId");
 
                     CtopOauthToken topOauthToken = new CtopOauthToken();
-                    topOauthToken.setId(accountId + "");
+                    topOauthToken.setId(String.valueOf(accountId));
                     topOauthToken.setAccountId(accountId);
                     topOauthToken.setMediaId("2");
                     topOauthToken.setAdvertiserId(advertiserId);

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

@@ -179,13 +179,11 @@ public class ProjectController {
 
             projectService.save(project);
 
-
             Long id = project.getId();
             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);
@@ -228,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("未找到对应实体");

+ 7 - 7
jeecg-boot-module-system/src/main/java/org/jeecg/modules/shiro/authc/ShiroRealm.java

@@ -83,14 +83,14 @@ public class ShiroRealm extends AuthorizingRealm {
      */
     @Override
     protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken auth) throws AuthenticationException {
-        log.debug("————身份认证————");
-        String token = (String) auth.getCredentials();
-        if (token == null) {
-            log.error("token为空!");
+        if (!Check.isNull(auth)) {
+            String token = (String) auth.getCredentials();
+            if (token != null) {
+                LoginUser loginUser = this.checkUserTokenIsEffect(token);
+                return new SimpleAuthenticationInfo(loginUser, token, getName());
+            }
         }
-        // 校验token有效性
-        LoginUser loginUser = this.checkUserTokenIsEffect(token);
-        return new SimpleAuthenticationInfo(loginUser, token, getName());
+        return null;
     }
 
     /**

+ 63 - 53
jeecg-boot-module-system/src/main/java/org/jeecg/modules/shiro/authc/aop/JwtFilter.java

@@ -1,16 +1,16 @@
 package org.jeecg.modules.shiro.authc.aop;
 
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.shiro.authc.AuthenticationException;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
 import org.jeecg.modules.shiro.authc.JwtToken;
 import org.jeecg.modules.shiro.vo.DefContants;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.RequestMethod;
-import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 /**
  * @Description: 鉴权登录拦截器
@@ -20,54 +20,64 @@ import lombok.extern.slf4j.Slf4j;
 @Slf4j
 public class JwtFilter extends BasicHttpAuthenticationFilter {
 
-	/**
-	 * 执行登录认证
-	 *
-	 * @param request
-	 * @param response
-	 * @param mappedValue
-	 * @return
-	 */
-	@Override
-	protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
-		try {
-			executeLogin(request, response);
-			return true;
-		} catch (Exception e) {
-			throw new AuthenticationException("Token失效,请重新登录", e);
-		}
-	}
+    /**
+     * 执行登录认证
+     *
+     * @param request
+     * @param response
+     * @param mappedValue
+     * @return
+     */
+    @Override
+    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
+
+        boolean successful = false;
+        try {
+            successful = executeLogin(request, response);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return successful;
+
+    }
+
+    /**
+     *
+     */
+    @Override
+    protected boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {
+
+        try {
+            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+            String token = httpServletRequest.getHeader(DefContants.X_ACCESS_TOKEN);
+            JwtToken jwtToken = new JwtToken(token);
+            // 提交给realm进行登入,如果错误他会抛出异常并被捕获
+            getSubject(request, response).login(jwtToken);
+            // 如果没有抛出异常则代表登入成功,返回true
+            return true;
+        } catch (Exception e) {
+            log.error("登录失败");
 
-	/**
-	 *
-	 */
-	@Override
-	protected boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {
-		HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-		String token = httpServletRequest.getHeader(DefContants.X_ACCESS_TOKEN);
+        }
+        return false;
 
-		JwtToken jwtToken = new JwtToken(token);
-		// 提交给realm进行登入,如果错误他会抛出异常并被捕获
-		getSubject(request, response).login(jwtToken);
-		// 如果没有抛出异常则代表登入成功,返回true
-		return true;
-	}
+    }
 
-	/**
-	 * 对跨域提供支持
-	 */
-	@Override
-	protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
-		HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-		HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-		httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin"));
-		httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
-		httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
-		// 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
-		if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
-			httpServletResponse.setStatus(HttpStatus.OK.value());
-			return false;
-		}
-		return super.preHandle(request, response);
-	}
+    /**
+     * 对跨域提供支持
+     */
+    @Override
+    protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
+        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
+        httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin"));
+        httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
+        httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
+        // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
+        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
+            httpServletResponse.setStatus(HttpStatus.OK.value());
+            return false;
+        }
+        return super.preHandle(request, response);
+    }
 }

+ 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) {