diff --git a/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java b/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java index eb6929607dab91937bd036d99259ae67b86abe29..7b261fe40198798a9fb058b299ab2124478c361a 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java @@ -12,6 +12,8 @@ import com.tianpengtech.common.model.user.User; */ public class TaskCalculateService { + private double percent=0.98; + private double clickPrice=0.3; public static TaskCalculateService ME = new TaskCalculateService(); /** * 计算,每个人接受任务后通过点击数来计算任务费用 @@ -21,13 +23,20 @@ public class TaskCalculateService { */ public int IShouldPayHowMuchMoney(long click_num,Task task){ double actualFee=0; - actualFee = click_num *0.3; + actualFee = click_num *clickPrice; double totoalFee = calculateTaskTotalFee(task); actualFee = (actualFee>totoalFee)?totoalFee:actualFee; int actualFeeInt = (int)actualFee; return actualFeeInt; } + public int AllTaskClickNumFee(long clickNum){ + double actualFee = clickNum *clickPrice;//当前任务总花费 + int actualFeeInt = (int)actualFee; + return actualFeeInt; + } + + public double calculateTaskTotalFee(Task task){ double totoalFee =task.getDouble(Task.TASK_PRICE)*task.getInt(Task.WH_NUMBER); totoalFee = (totoalFee==0)?task.getDouble(Task.TOTAL_FEE):totoalFee; diff --git a/src/main/java/com/tianpengtech/front/web/task/TaskService.java b/src/main/java/com/tianpengtech/front/web/task/TaskService.java index 4a5c1877c41a03668389a6b8d7f707e955b2ef0a..9b8c66397b43914231b52406283eb2468f9007cb 100644 --- a/src/main/java/com/tianpengtech/front/web/task/TaskService.java +++ b/src/main/java/com/tianpengtech/front/web/task/TaskService.java @@ -39,6 +39,7 @@ import com.tianpengtech.common.validator.rules.numberic.NumbericMustBeLessEqualT import com.tianpengtech.common.validator.rules.numberic.NumbericMustBeLessThan; import com.tianpengtech.common.validator.rules.string.StringLengthBetween; import com.tianpengtech.common.validator.rules.string.StringMustBeRequired; +import com.tianpengtech.front.mobile.task.TaskCalculateService; import com.tianpengtech.front.web.fair.FairService; import com.tianpengtech.front.web.login.LoginService; import cz.mallat.uasparser.OnlineUpdater; @@ -219,7 +220,19 @@ public class TaskService { return; } + token=token+"_"+taskWh.getLong(TaskWh.ID); + task.set(Task.STATUS, Task.STATUS_START); if(task.getInt(Task.STATUS)==Task.STATUS_START){ + + //检查所有网红任务的费用是否已经超出预算总额的98%,假如超过,则不进行统计,并且关闭任务 + int actualFee = TaskCalculateService.ME.AllTaskClickNumFee(task.getClick());//当前任务实际花费 + + if(actualFee>task.getDouble(Task.TOTAL_FEE)*0.98){ + task.set(Task.STATUS, Task.STATUS_COMPLETED); + task.update(); + return; + } + if (!devModel) {//假如是真实环境,则只记录真实的点击数 Object i = CacheKit.get(TASK_CACHE_CLICK_NAME,token); if (i != null) {//假如当前记录再有效期内,则不记录当前数据 @@ -290,8 +303,19 @@ public class TaskService { if(task==null){ return; } - + token=token+"_"+taskWh.getLong(TaskWh.ID); if(task.getInt(Task.STATUS)==Task.STATUS_START){ + + + //检查所有网红任务的费用是否已经超出预算总额的98%,假如超过,则不进行统计,并且关闭任务 + int actualFee = TaskCalculateService.ME.AllTaskClickNumFee(task.getClick());//当前任务实际花费 + + if(actualFee>task.getDouble(Task.TOTAL_FEE)*0.98){ + task.set(Task.STATUS, Task.STATUS_COMPLETED); + task.update(); + return; + } + //如果是测试环境 if (!devModel) { Object i = CacheKit.get(TASK_CACHE_CLICK_NAME,token);