From d101a2161a956186ac9b188834c2ae3896772526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Fri, 12 Jan 2018 18:58:17 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BB=A5=E5=8F=8A=E7=9F=AD=E4=BF=A1=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=80=9A=E7=9F=A5=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/task/TaskAdminController.java | 20 ++++++++--- .../com/tianpengtech/common/MyConfig.java | 7 ++-- .../tianpengtech/common/util/SendSmsMsg.java | 32 +++++++++++++++++ .../tianpengtech/common/util/push/Jpush.java | 2 +- .../web/job/{TaskJob.java => TaskEndJob.java} | 4 +-- .../front/web/job/TaskStartJob.java | 27 ++++++++++++++ .../WEB-INF/view/admin/task/task-fee.html | 6 ++++ .../view/admin/task/task-wh-detail.html | 35 ++++++++++++++++--- 8 files changed, 118 insertions(+), 15 deletions(-) rename src/main/java/com/tianpengtech/front/web/job/{TaskJob.java => TaskEndJob.java} (90%) create mode 100644 src/main/java/com/tianpengtech/front/web/job/TaskStartJob.java diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java index dcfd237..a3b0b98 100644 --- a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java +++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java @@ -24,6 +24,7 @@ import com.tianpengtech.common.model.task.TaskCount; import com.tianpengtech.common.model.task.TaskWh; import com.tianpengtech.common.model.taskscreenshot.TaskScreenShot; import com.tianpengtech.common.util.JsonUtil; +import com.tianpengtech.common.util.SendSmsMsg; /** * 路由配置地址:add("/admin/task", TaskAdminController.class, "/admin/task"); * 数据库映射地址:arp.addMapping(Task.dao.tableName(),Task.class); @@ -128,28 +129,34 @@ public class TaskAdminController extends AbstractAdminController{ Task task = Task.dao.findById(task_id); actualFee = click_num *0.3; actualFee = (actualFee>task.getDouble(Task.TASK_PRICE))?task.getDouble(Task.TASK_PRICE):actualFee; - setAttr("actualFee",actualFee); + int actualFeeInt = (int)actualFee; + setAttr("actualFee",actualFeeInt); setAttr("click_num",click_num); setAttr("task",task); }else{ setAttr("click_num",0); - setAttr("actualFee",actualFee); + setAttr("actualFee",(int)actualFee); } setAttr("task",Task.dao.findById(task_id)); + Fair fair = Fair.dao.findById(fair_id); setAttr("fair_id",fair_id); + setAttr("fair",fair); renderTemplate("task-fee.html"); } public void accept(){ int task_id = getParaToInt("task_id"); +// int task_id = 3044; int fair_id = getParaToInt("fair_id"); +// int fair_id = 88; String fee = getPara("price"); String sql="select * from "+TaskWh.dao.tableName()+" where task_id=? and wh_id=? limit 1"; TaskWh taskWh = TaskWh.dao.findFirst(sql,task_id,fair_id); int status = taskWh.getInt(TaskWh.STATUS); +// int status = 5; if(status==Task.STATUS_COMPLETED){ - renderJson(JsonUtil.printError("当前任务已经被验收,请勿重复操作")); + renderJson(JsonUtil.printError("当前任务已经被结算验收,请勿重复操作")); return; }else{ @@ -185,7 +192,12 @@ public class TaskAdminController extends AbstractAdminController{ ml.set(MoneyLog.MONEY,acturalFee.doubleValue()); ml.set(MoneyLog.DESCRIPTION,"任务完成:"+task.getStr(Task.TASK_TITLE)); ml.save(); - renderJson(JsonUtil.printSuccess("操作成功")); + if(SysConfigDao.ME.isSendTaskSMS()){ + //发送短信 + SendSmsMsg.sendPayFeeInfo(fair.getStr(Fair.MOIBILE),task.getStr(Task.TASK_TITLE), + taskWh.getLong(TaskWh.CLICK_NUM)+"", acturalFee+"",SendSmsMsg.TEMPLATE_PAY_FEE); + } + renderJson(JsonUtil.printSuccess("操作成功")); return; } } diff --git a/src/main/java/com/tianpengtech/common/MyConfig.java b/src/main/java/com/tianpengtech/common/MyConfig.java index ffc7a36..fa314c1 100644 --- a/src/main/java/com/tianpengtech/common/MyConfig.java +++ b/src/main/java/com/tianpengtech/common/MyConfig.java @@ -57,7 +57,8 @@ import com.tianpengtech.front.mobile.MobileRoutes; import com.tianpengtech.front.web.WebRoutes; import com.tianpengtech.front.web.common.util.WebPageUtil; import com.tianpengtech.front.web.job.SessionJob; -import com.tianpengtech.front.web.job.TaskJob; +import com.tianpengtech.front.web.job.TaskEndJob; +import com.tianpengtech.front.web.job.TaskStartJob; import com.tianpengtech.front.web.tasktemplate.TaskTemplateController; import com.tianpengtech.front.website.H5AdController; import com.tianpengtech.front.website.WebSiteRoutes; @@ -194,8 +195,8 @@ public class MyConfig extends JFinalConfig { public void afterJFinalStart() { //添加定时任务 //0 5 0 * * ? - QuartzPlugin.addJob("TaskJob_first", "0 5 0 * * ?", TaskJob.class);//更新任务状态 使用doubleCheck的方式保证任务被执行 - QuartzPlugin.addJob("TaskJob_second", "0 5 1 * * ?", TaskJob.class);//更新任务状态 使用doubleCheck的方式保证任务被执行 + QuartzPlugin.addJob("TaskJob_first", "0 5 0 * * ?", TaskStartJob.class);//每天凌晨12:05检查当天需要被标记进行中的任务 + QuartzPlugin.addJob("TaskJob_second", "0 50 23 * * ?", TaskEndJob.class);//每天11:50检查当天需要结束的任务 QuartzPlugin.addJob("SessionJob", "0 0/2 * * * ?", SessionJob.class); } diff --git a/src/main/java/com/tianpengtech/common/util/SendSmsMsg.java b/src/main/java/com/tianpengtech/common/util/SendSmsMsg.java index 6212df8..18042a3 100644 --- a/src/main/java/com/tianpengtech/common/util/SendSmsMsg.java +++ b/src/main/java/com/tianpengtech/common/util/SendSmsMsg.java @@ -39,6 +39,7 @@ public class SendSmsMsg { public static final String TEMPLATE_PASS_BACK_SMS="SMS_76595518";//忘记密码验证码 public static final String TEMPLATE_NOBODY_APPLY="SMS_119076886";//没有人接任务的短信模板 public static final String TEMPLATE_NEW_MISSION="SMS_121855289";//新任务短信通知 + public static final String TEMPLATE_PAY_FEE="SMS_121855832";//任务结算通知 private static final String accessKeyId = prop.get("accessKeyId"); @@ -127,6 +128,34 @@ public class SendSmsMsg { return false; } + + + public static boolean sendPayFeeInfo(String mobile,String title,String clickNum,String money,String templateCode) { + IClientProfile profile = DefaultProfile.getProfile("cn-beijing", accessKeyId, accessKeySecret); + try { + DefaultProfile.addEndpoint("cn-beijing", "cn-beijing", product, domain); + } catch (ClientException e) { + e.printStackTrace(); + return false; + } + IAcsClient acsClient = new DefaultAcsClient(profile); + SendSmsRequest request = new SendSmsRequest(); + request.setPhoneNumbers(mobile); + request.setSignName(prop.get("signName")); + request.setTemplateParam("{\"title\":\"《"+title+"》\",\"clickCnt\":\""+clickNum+"\",\"money\":\""+money+"\"}"); + request.setTemplateCode(templateCode); + SendSmsResponse sendSmsResponse = null; + try { + sendSmsResponse = acsClient.getAcsResponse(request); + } catch (ClientException e) { + e.printStackTrace(); + return false; + } + if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) { + return true; + } + return false; + } @@ -233,6 +262,9 @@ public class SendSmsMsg { + public static void main(String[] args) { + sendPayFeeInfo("13641489216", "12345", "10","3",TEMPLATE_PAY_FEE); + } diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java index 54d5f56..ad0f154 100644 --- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java +++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java @@ -120,6 +120,6 @@ public class Jpush { public static void main(String[] args) { Jpush.pushCustomContentToAll("xxxxqqq!!",Jpush.PUSH_TASK); - Jpush.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG); +// Jpush.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG); } } diff --git a/src/main/java/com/tianpengtech/front/web/job/TaskJob.java b/src/main/java/com/tianpengtech/front/web/job/TaskEndJob.java similarity index 90% rename from src/main/java/com/tianpengtech/front/web/job/TaskJob.java rename to src/main/java/com/tianpengtech/front/web/job/TaskEndJob.java index 5f4b992..c7d6a77 100644 --- a/src/main/java/com/tianpengtech/front/web/job/TaskJob.java +++ b/src/main/java/com/tianpengtech/front/web/job/TaskEndJob.java @@ -14,13 +14,13 @@ import java.util.List; /** * Created by ggd on 2017/6/21 0021. */ -public class TaskJob implements Job { +public class TaskEndJob implements Job { private static TaskService taskService = Duang.duang(TaskService.class,Tx.class); @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { //taskService.taskJob(); - taskService.setTaskToStart(); + //taskService.setTaskToStart(); taskService.setTaskToEnd(); // System.out.println("修正Task的状态"); } diff --git a/src/main/java/com/tianpengtech/front/web/job/TaskStartJob.java b/src/main/java/com/tianpengtech/front/web/job/TaskStartJob.java new file mode 100644 index 0000000..7edc2d1 --- /dev/null +++ b/src/main/java/com/tianpengtech/front/web/job/TaskStartJob.java @@ -0,0 +1,27 @@ +package com.tianpengtech.front.web.job; + +import com.jfinal.aop.Duang; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.tx.Tx; +import com.tianpengtech.common.model.task.Task; +import com.tianpengtech.front.web.task.TaskService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +import java.util.List; + +/** + * Created by ggd on 2017/6/21 0021. + */ +public class TaskStartJob implements Job { + + private static TaskService taskService = Duang.duang(TaskService.class,Tx.class); + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + //taskService.taskJob(); + //taskService.setTaskToStart(); + taskService.setTaskToEnd(); +// System.out.println("修正Task的状态"); + } +} diff --git a/src/main/webapp/WEB-INF/view/admin/task/task-fee.html b/src/main/webapp/WEB-INF/view/admin/task/task-fee.html index 6c0ce85..5c92edf 100644 --- a/src/main/webapp/WEB-INF/view/admin/task/task-fee.html +++ b/src/main/webapp/WEB-INF/view/admin/task/task-fee.html @@ -40,6 +40,12 @@ ¥#(task.task_price) </div> </div> + <div class="row cl"> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>网红昵称</label> + <div class="formControls col-xs-8 col-sm-9"> + #(fair.nick_name) + </div> + </div> <div class="row cl"> <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>点击次数</label> <div class="formControls col-xs-8 col-sm-9"> diff --git a/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html b/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html index 17d9d9d..31f0614 100644 --- a/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html +++ b/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html @@ -1,4 +1,18 @@ #@layout() + +#define js() + <script> + function payMoney(task_id,fair_id){ + var title="任务结算"; + var url="#(contextPath)/admin/task/payMoney?task_id="+task_id+"&fair_id="+fair_id; + var w=""; + var h=510; + layer_show(title,url,w,h); + } + </script> +#end + + #define main() <table class="table table-border table-bordered table-bg table-hover "> <tr class="text-c" role="row"> @@ -7,15 +21,26 @@ <th class="sorting_disabled" rowspan="1" colspan="1">测试点击数</th> <th class="sorting_disabled" rowspan="1" colspan="1">正式转换数</th> <th class="sorting_disabled" rowspan="1" colspan="1">测试转换数</th> + <th class="sorting_disabled" rowspan="1" colspan="1">结算状态</th> + <th class="sorting_disabled" rowspan="1" colspan="1">操作</th> </tr> #for(x:taskWh) <tr class="text-c" role="row"> - <td class="sorting_disabled" rowspan="1" colspan="1" >#(x.nick_name??'')</th> - <td class="sorting_disabled" rowspan="1" colspan="1">#(x.click_num)次</th> - <td class="sorting_disabled" rowspan="1" colspan="1">#(x.click_dev)次</th> - <td class="sorting_disabled" rowspan="1" colspan="1">#(x.cvs_num)次</th> - <td class="sorting_disabled" rowspan="1" colspan="1">#(x.cvs_dev)次</th> + <td class="sorting_disabled" rowspan="1" colspan="1" >#(x.nick_name??'')</td> + <td class="sorting_disabled" rowspan="1" colspan="1">#(x.click_num)次</td> + <td class="sorting_disabled" rowspan="1" colspan="1">#(x.click_dev)次</td> + <td class="sorting_disabled" rowspan="1" colspan="1">#(x.cvs_num)次</td> + <td class="sorting_disabled" rowspan="1" colspan="1">#(x.cvs_dev)次</td> + <td class="sorting_disabled" rowspan="1" colspan="1"> + #if(x.status==5) + 等待结算 + #else if(x.status==6) + 结算完成 + #end + </td> + <td class="sorting_disabled" rowspan="1" colspan="1"> + <a href="javascript:;" onclick="payMoney(#(x.task_id??''),#(x.wh_id??''))">立即结算</a></td> </tr> #end </table> -- Gitee From d99cf47ee410bd1249bc030853c638eb1a768e05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Fri, 12 Jan 2018 19:05:47 +0800 Subject: [PATCH 02/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3BUG=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html b/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html index 31f0614..e05980c 100644 --- a/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html +++ b/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html @@ -35,7 +35,7 @@ <td class="sorting_disabled" rowspan="1" colspan="1"> #if(x.status==5) 等待结算 - #else if(x.status==6) + #elseif(x.status==6) 结算完成 #end </td> -- Gitee From 1910be64887b5ef92c149d7774f4d19eea081d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Sat, 13 Jan 2018 00:35:24 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E7=B4=A7=E6=80=A5=E4=BF=AE=E6=AD=A3BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passport/MobilePassportController.java | 11 +++- .../passport/MobilePassportService.java | 9 +-- .../front/mobile/task/MobileTaskService.java | 2 +- .../front/web/task/TaskService.java | 59 +++++++++++++------ .../view/admin/task/task-wh-detail.html | 14 ++++- 5 files changed, 67 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java index e02d8bf..d4ff6e9 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java @@ -12,6 +12,7 @@ import com.tianpengtech.common.model.fairauth.FairAuth; import com.tianpengtech.common.model.fairext.FairExt; import com.tianpengtech.common.model.fairphoto.FairPhoto; import com.tianpengtech.common.model.fairwithdraw.FairWithdraw; +import com.tianpengtech.common.model.moneylog.MoneyLog; import com.tianpengtech.common.model.user.User; import com.tianpengtech.common.util.QiNiuUtil; import com.tianpengtech.front.mobile.common.util.R; @@ -387,9 +388,13 @@ public class MobilePassportController extends BaseController{ Fair temp = Fair.dao.findFirst(sql,fair.getDouble(Fair.MONEY)); int sort = (temp.getInt(Fair.ID)==0)?1:temp.getInt(Fair.ID)+1; - sql = "select sum(money) as money from "+FairWithdraw.dao.tableName()+" where status=? and wh_id=?"; - FairWithdraw withDraw = FairWithdraw.dao.findFirst(sql,FairWithdraw.STATUS_SUCCESS,user.getLong(User.ID)); - double totalFee = (withDraw.getDouble("money")==null)?0:withDraw.getDouble("money"); +// sql = "select sum(money) as money from "+FairWithdraw.dao.tableName()+" where status=? and wh_id=?"; +// FairWithdraw withDraw = FairWithdraw.dao.findFirst(sql,FairWithdraw.STATUS_SUCCESS,user.getLong(User.ID)); + + MoneyLog sumlog = MoneyLog.dao + .findFirst("select SUM(money) as money from " + MoneyLog.dao.tableName() + " where wh_id=? and deletetag=? and state=? ", + user.getLong(User.ID),MoneyLog.STATUS_SUCCESS,MoneyLog.STATE_ADD); + double totalFee = (sumlog.getDouble("money")==null)?0:sumlog.getDouble("money"); int yandou = (int)(totalFee/100); r.p("sort", sort); r.p("yandou",yandou); diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java index ffe971d..eeffba5 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java @@ -804,10 +804,11 @@ public class MobilePassportService { } else { r.p("yesterday", log.get("money")); } -// MoneyLog sumlog = MoneyLog.dao -// .findFirst("select SUM(money) as money from " + MoneyLog.dao.tableName() + " where wh_id=?", id); - String sql = "select SUM(money) as money from "+FairWithdraw.dao.tableName()+" where wh_id=? and status=?"; - FairWithdraw sumlog= FairWithdraw.dao.findFirst(sql,id,FairWithdraw.STATUS_SUCCESS); + MoneyLog sumlog = MoneyLog.dao + .findFirst("select SUM(money) as money from " + MoneyLog.dao.tableName() + " where wh_id=? and deletetag=? and state=? ", + id,MoneyLog.STATUS_SUCCESS,MoneyLog.STATE_ADD); +// String sql = "select SUM(money) as money from "+FairWithdraw.dao.tableName()+" where wh_id=? and status=?"; +// FairWithdraw sumlog= FairWithdraw.dao.findFirst(sql,id,FairWithdraw.STATUS_SUCCESS); if (log == null) { r.p("all", 0); } else { diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java index f365847..f670673 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java @@ -292,7 +292,7 @@ public class MobileTaskService { return r; } - List<TaskWh> taskWh= TaskService.queryFairTask(uid+"", taskId); + List<TaskWh> taskWh= TaskService.queryFairApplyNumTask(taskId); //检查当前网红报名任务个数是否超过系统设定值,假如超过,则提示信息 Dictionary dictionary = DictionaryDao.ME.readDirecotryByCode(Dictionary.SYS_APPLY_NUM); 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 913f078..4755167 100644 --- a/src/main/java/com/tianpengtech/front/web/task/TaskService.java +++ b/src/main/java/com/tianpengtech/front/web/task/TaskService.java @@ -182,6 +182,13 @@ public class TaskService { List<TaskWh> list=TaskWh.dao.find(sql,new Object[]{taskID,id}); return list; } + + + public static List<TaskWh> queryFairApplyNumTask(String taskID){ + String sql = "select tw.id from "+TaskWh.dao.tableName()+" tw where "+TaskWh.TASK_ID+ "=? and status=? and tw."+TaskWh.DELETETAG+"="+TaskWh.DELETE_STATUS_NO; + List<TaskWh> list=TaskWh.dao.find(sql,new Object[]{taskID,Task.STATUS_START}); + return list; + } /** * 点击任务链接保存 @@ -194,19 +201,28 @@ public class TaskService { TaskWh taskWh = getByCode(code); // boolean devModel = PropKit.getBoolean("devMode"); boolean devModel = getTaskCountMode(); + + //只有当任务处于进行中,才能够进行数据统计 if(taskWh==null){ return ; } - if (!devModel) {//假如是真实环境,则只记录真实的点击数 - Object i = CacheKit.get(TASK_CACHE_CLICK_NAME, ip + taskWh.get(TaskWh.ID)); - if (i != null) {//假如当前记录再有效期内,则不记录当前数据 - return; + Task task = taskDao.findById(taskWh.getLong(TaskWh.TASK_ID)); + if(task==null){ + return; + } + + if(task.getInt(Task.STATUS)==Task.STATUS_START){ + if (!devModel) {//假如是真实环境,则只记录真实的点击数 + Object i = CacheKit.get(TASK_CACHE_CLICK_NAME, ip + taskWh.get(TaskWh.ID)); + if (i != null) {//假如当前记录再有效期内,则不记录当前数据 + return; + } + updateRealClickNum(ref, ua, ip, code, taskWh); + }else{ + updateRealClickNum(ref, ua, ip, code, taskWh); + updateDevClickNum(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV); } - updateRealClickNum(ref, ua, ip, code, taskWh); - }else{ - updateRealClickNum(ref, ua, ip, code, taskWh); - updateDevClickNum(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV); } } @@ -263,17 +279,24 @@ public class TaskService { if(taskWh==null){ return; } - //如果是测试环境 - if (!devModel) { - Object i = CacheKit.get(TASK_CACHE_CLICK_NAME, ip + taskWh.get(TaskWh.ID)); - //判断在缓存有效期内是否点击过 - if (i != null) { - return; + Task task = taskDao.findById(taskWh.getLong(TaskWh.TASK_ID)); + if(task==null){ + return; + } + + if(task.getInt(Task.STATUS)==Task.STATUS_START){ + //如果是测试环境 + if (!devModel) { + Object i = CacheKit.get(TASK_CACHE_CLICK_NAME, ip + taskWh.get(TaskWh.ID)); + //判断在缓存有效期内是否点击过 + if (i != null) { + return; + } + updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO); + }else{ + updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO); + updateDevCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV); } - updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO); - }else{ - updateRealCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_PRO); - updateDevCVS(ref, ua, ip, code, taskWh,TaskCount.TYPE_DEV); } } } diff --git a/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html b/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html index e05980c..5eade03 100644 --- a/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html +++ b/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html @@ -14,6 +14,10 @@ #define main() + <div> + <a class="btn btn-success radius r" style="line-height:1.6em;margin:10px" href="javascript:location.replace(location.href);" title="刷新"> + <i class="Hui-iconfont">刷新当前页</i></a> + </div> <table class="table table-border table-bordered table-bg table-hover "> <tr class="text-c" role="row"> <th class="sorting_disabled" rowspan="1" colspan="1" >参与网红姓名</th> @@ -22,7 +26,10 @@ <th class="sorting_disabled" rowspan="1" colspan="1">正式转换数</th> <th class="sorting_disabled" rowspan="1" colspan="1">测试转换数</th> <th class="sorting_disabled" rowspan="1" colspan="1">结算状态</th> - <th class="sorting_disabled" rowspan="1" colspan="1">操作</th> + <th class="sorting_disabled" rowspan="1" colspan="1"> + 操作 + + </th> </tr> #for(x:taskWh) @@ -40,7 +47,10 @@ #end </td> <td class="sorting_disabled" rowspan="1" colspan="1"> - <a href="javascript:;" onclick="payMoney(#(x.task_id??''),#(x.wh_id??''))">立即结算</a></td> + #if(x.status==5) + <a href="javascript:;" onclick="payMoney(#(x.task_id??''),#(x.wh_id??''))">立即结算</a> + #end + </td> </tr> #end </table> -- Gitee From 0c65a7d804b28b98bb89280fe901356ce1574393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Sat, 13 Jan 2018 00:43:39 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=99=BB=E5=BD=95=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tianpengtech/front/web/task/TaskWebController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java b/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java index 7535eae..0de7a62 100644 --- a/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java +++ b/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java @@ -313,6 +313,7 @@ public class TaskWebController extends BaseController { renderTemplate("second-task-step.html"); } + @Clear(PassportInterceptor.class) public void viewH5(){ int id = getParaToInt(Task.ID,GlobalConfigConstant.DEFAULT_VALUE_ZERO); setAttr("id", id); -- Gitee From 8a92ee5af4d9465ec2852875e68db19639c974b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Sat, 13 Jan 2018 00:58:02 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E7=BD=91=E7=BA=A2?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=BC=96=E8=BE=91=E5=BF=85=E5=A1=AB=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/fair/FairAdminServiceImpl.java | 52 +++++++++---------- .../WEB-INF/view/admin/fair/fair-form.html | 16 +++--- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/tianpengtech/admin/fair/FairAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fair/FairAdminServiceImpl.java index fd328d3..8ca0763 100644 --- a/src/main/java/com/tianpengtech/admin/fair/FairAdminServiceImpl.java +++ b/src/main/java/com/tianpengtech/admin/fair/FairAdminServiceImpl.java @@ -34,22 +34,22 @@ public class FairAdminServiceImpl extends AbstractAdmin implements IAdminOpt{ public void beforeAdd(Model<?> model) throws ValidateException { - Fair fair = new FairService().findByMobile(model.getStr(Fair.MOIBILE)); - Validator validator = new Validator(); - validator.addRule(new StringLengthBetween(model.getStr(Fair.NICK_NAME), "昵称只能是1-15个字符", 1, 15)); -// validator.addRule(new StringLengthBetween(model.getStr(Fair.ID_CARD), "请输入正确的身份证号码", 1,18)); - validator.addRule(new StringMustBeMobile(model.getStr(Fair.MOIBILE), "请输入正确的手机号码格式")); - validator.addRule(new MustBeNull(fair, "当前手机号已经存在")); -// validator.addRule(new NumbericMustBetween(model.getInt(Fair.AGE), "请输入正确的年龄范围(1-99)", 1, 99)); -// validator.addRule(new StringMustBeRequired(model.getStr(Fair.HEIGHT), "请输入身高")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.PROVINCE), "请输入所在地区")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.CITY), "请输入所在市区")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.CHANNEL),"请输入推广渠道")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.PLATFORM), "请输入平台")); - validator.excute(); - - model.set(Fair.STATUS,Fair.STATUS_SUCCESS); - PushKit.pushSystemMessageNow("管理员【通过】"+model.getStr(Fair.NICK_NAME)+"的认证请求"); +// Fair fair = new FairService().findByMobile(model.getStr(Fair.MOIBILE)); +// Validator validator = new Validator(); +// validator.addRule(new StringLengthBetween(model.getStr(Fair.NICK_NAME), "昵称只能是1-15个字符", 1, 15)); +//// validator.addRule(new StringLengthBetween(model.getStr(Fair.ID_CARD), "请输入正确的身份证号码", 1,18)); +// validator.addRule(new StringMustBeMobile(model.getStr(Fair.MOIBILE), "请输入正确的手机号码格式")); +// validator.addRule(new MustBeNull(fair, "当前手机号已经存在")); +//// validator.addRule(new NumbericMustBetween(model.getInt(Fair.AGE), "请输入正确的年龄范围(1-99)", 1, 99)); +//// validator.addRule(new StringMustBeRequired(model.getStr(Fair.HEIGHT), "请输入身高")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.PROVINCE), "请输入所在地区")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.CITY), "请输入所在市区")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.CHANNEL),"请输入推广渠道")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.PLATFORM), "请输入平台")); +// validator.excute(); +// +// model.set(Fair.STATUS,Fair.STATUS_SUCCESS); +// PushKit.pushSystemMessageNow("管理员【通过】"+model.getStr(Fair.NICK_NAME)+"的认证请求"); } @Override @@ -60,16 +60,16 @@ public class FairAdminServiceImpl extends AbstractAdmin implements IAdminOpt{ @Override public void beforeUpdate(Model<?> model) throws ValidateException { - Validator validator = new Validator(); - validator.addRule(new StringLengthBetween(model.getStr(Fair.NICK_NAME), "昵称只能是1-15个字符", 1, 15)); -// validator.addRule(new StringMustBeMobile(model.getStr(Fair.MOIBILE), "请输入正确的手机号码格式")); -// validator.addRule(new NumbericMustBetween(model.getInt(Fair.AGE), "请输入正确的年龄范围(1-99)", 1, 99)); -// validator.addRule(new StringMustBeRequired(model.getStr(Fair.HEIGHT), "请输入身高")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.PROVINCE), "请输入所在地区")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.CITY), "请输入所在市区")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.CHANNEL),"请输入推广渠道")); - validator.addRule(new StringMustBeRequired(model.getStr(Fair.PLATFORM), "请输入平台")); - validator.excute(); +// Validator validator = new Validator(); +// validator.addRule(new StringLengthBetween(model.getStr(Fair.NICK_NAME), "昵称只能是1-15个字符", 1, 15)); +//// validator.addRule(new StringMustBeMobile(model.getStr(Fair.MOIBILE), "请输入正确的手机号码格式")); +//// validator.addRule(new NumbericMustBetween(model.getInt(Fair.AGE), "请输入正确的年龄范围(1-99)", 1, 99)); +//// validator.addRule(new StringMustBeRequired(model.getStr(Fair.HEIGHT), "请输入身高")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.PROVINCE), "请输入所在地区")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.CITY), "请输入所在市区")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.CHANNEL),"请输入推广渠道")); +// validator.addRule(new StringMustBeRequired(model.getStr(Fair.PLATFORM), "请输入平台")); +// validator.excute(); } @Override diff --git a/src/main/webapp/WEB-INF/view/admin/fair/fair-form.html b/src/main/webapp/WEB-INF/view/admin/fair/fair-form.html index a472a53..ea9a95c 100644 --- a/src/main/webapp/WEB-INF/view/admin/fair/fair-form.html +++ b/src/main/webapp/WEB-INF/view/admin/fair/fair-form.html @@ -1,5 +1,5 @@ <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>头像:</label> + <label class="form-label col-xs-4 col-sm-3">头像:</label> <div class="formControls col-xs-8 col-sm-9"> <div id="fileClick">选择头像</div> <div id="fileClick_prew"> @@ -15,7 +15,7 @@ #-- <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>个人形象照:</label> + <label class="form-label col-xs-4 col-sm-3">个人形象照:</label> <div class="formControls col-xs-8 col-sm-9"> <div id="personal_photo">选择照片(360*270)</div> <div id="personal_photo_prew"> @@ -30,7 +30,7 @@ </div> --# <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>昵称:</label> + <label class="form-label col-xs-4 col-sm-3">昵称:</label> <div class="formControls col-xs-8 col-sm-9"> <input type="text" class="input-text" value="#(fair.nick_name??'')" maxlength="50" placeholder="请输入昵称..." id="nick_name" name="fair.nick_name"> @@ -38,7 +38,7 @@ </div> #-- <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>手机号:</label> + <label class="form-label col-xs-4 col-sm-3">手机号:</label> <div class="formControls col-xs-8 col-sm-9"> <input type="text" class="input-text" value="#(fair.mobile??'')" #if(fair) readonly="readonly" #end maxlength="50" placeholder="请输入手机号..." id="mobile" name="fair.mobile"> @@ -79,7 +79,7 @@ </div> <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>地区:</label> + <label class="form-label col-xs-4 col-sm-3">地区:</label> <div class="formControls col-xs-8 col-sm-9"> <span class="select-box inline"> <select name="fair.province" class="select" id="province"> @@ -101,7 +101,7 @@ </div> <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>推广渠道:</label> + <label class="form-label col-xs-4 col-sm-3">推广渠道:</label> <div class="formControls col-xs-8 col-sm-9"> #for(cl : channel) <input type="checkbox" value="#(cl.code)" name="fair.channel"> #(cl.name) @@ -111,7 +111,7 @@ </div> <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>平台:</label> + <label class="form-label col-xs-4 col-sm-3">平台:</label> <div class="formControls col-xs-8 col-sm-9"> #for(pf : platform) <input type="checkbox" value="#(pf.code)"name="fair.platform"> #(pf.name) @@ -122,7 +122,7 @@ #-- <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>粉丝数(人):</label> + <label class="form-label col-xs-4 col-sm-3">粉丝数(人):</label> <div class="formControls col-xs-8 col-sm-9"> <input type="text" class="input-text" value="#(fair.fans??'')" maxlength="50" placeholder="请输入平台粉丝..." id="plat_fans" name="fair.fans"> -- Gitee From b325b1295fef27648fb6581c3feab01103c6d30b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Tue, 16 Jan 2018 17:50:25 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fairauth/FairAuthAdminController.java | 4 + .../FairWithdrawAdminController.java | 3 + .../admin/task/TaskAdminController.java | 10 +- .../tianpengtech/common/model/fair/Fair.java | 1 + .../com/tianpengtech/common/util/XxxUtil.java | 14 +++ .../tianpengtech/common/util/push/Jpush.java | 115 +++++++++++++++++- .../mobile/login/MobileLoginController.java | 6 + .../passport/MobilePassportController.java | 32 ++++- .../passport/MobilePassportService.java | 11 +- .../publisher/MobilePublishController.java | 1 - .../mobile/task/MobileTaskController.java | 4 + .../front/mobile/task/MobileTaskService.java | 97 +++++++++++---- 12 files changed, 261 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java index 0e71e4b..043022c 100644 --- a/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java +++ b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java @@ -2,6 +2,7 @@ package com.tianpengtech.admin.fairauth; import com.jfinal.aop.Before; import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.tx.Tx; import com.tianpengtech.admin.AbstractAdminController; import com.tianpengtech.admin.IAdminOpt; import com.tianpengtech.admin.InitInterceptor; @@ -70,6 +71,8 @@ public class FairAuthAdminController extends AbstractAdminController{ /** * 审核通过 */ + + @Before(Tx.class) public void pass(){ int id = getParaToInt(FairAuth.ID,0); int price = getParaToInt("price",0); @@ -93,6 +96,7 @@ public class FairAuthAdminController extends AbstractAdminController{ /** * 审核不通过 */ + @Before(Tx.class) public void unpass(){ FairAuth fairauth = getModel(FairAuth.class); String content = getPara(Opertion.CONTENT); diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java index 6ac5163..103159c 100644 --- a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java +++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java @@ -2,6 +2,7 @@ package com.tianpengtech.admin.fairwithdraw; import com.jfinal.aop.Before; import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.tx.Tx; import com.tianpengtech.admin.AbstractAdminController; import com.tianpengtech.admin.IAdminOpt; import com.tianpengtech.admin.InitInterceptor; @@ -66,6 +67,7 @@ public class FairWithdrawAdminController extends AbstractAdminController{ /** * 审核不通过 */ + @Before(Tx.class) public void unpass(){ FairWithdraw fairWithdraw = getModel(FairWithdraw.class); String content = getPara(Opertion.CONTENT); @@ -82,6 +84,7 @@ public class FairWithdrawAdminController extends AbstractAdminController{ /** * 审核通过 */ + @Before(Tx.class) public void pass(){ int id = getParaToInt(FairWithdraw.ID,0); try { diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java index a3b0b98..3126286 100644 --- a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java +++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java @@ -8,6 +8,7 @@ import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.Record; +import com.jfinal.plugin.activerecord.tx.Tx; import com.tianpengtech.admin.AbstractAdminController; import com.tianpengtech.admin.IAdminOpt; import com.tianpengtech.admin.InitInterceptor; @@ -144,6 +145,9 @@ public class TaskAdminController extends AbstractAdminController{ renderTemplate("task-fee.html"); } + + + @Before(Tx.class) public void accept(){ int task_id = getParaToInt("task_id"); // int task_id = 3044; @@ -160,7 +164,6 @@ public class TaskAdminController extends AbstractAdminController{ return; }else{ - //为当前网红增加任务相关费用信息,以及增加流水日志信息 Task task = Task.dao.findById(task_id); Fair fair = Fair.dao.findById(fair_id); @@ -192,11 +195,12 @@ public class TaskAdminController extends AbstractAdminController{ ml.set(MoneyLog.MONEY,acturalFee.doubleValue()); ml.set(MoneyLog.DESCRIPTION,"任务完成:"+task.getStr(Task.TASK_TITLE)); ml.save(); - if(SysConfigDao.ME.isSendTaskSMS()){ + + //if(SysConfigDao.ME.isSendTaskSMS()){ //发送短信 SendSmsMsg.sendPayFeeInfo(fair.getStr(Fair.MOIBILE),task.getStr(Task.TASK_TITLE), taskWh.getLong(TaskWh.CLICK_NUM)+"", acturalFee+"",SendSmsMsg.TEMPLATE_PAY_FEE); - } + //} renderJson(JsonUtil.printSuccess("操作成功")); return; } diff --git a/src/main/java/com/tianpengtech/common/model/fair/Fair.java b/src/main/java/com/tianpengtech/common/model/fair/Fair.java index 070f031..dd5d790 100644 --- a/src/main/java/com/tianpengtech/common/model/fair/Fair.java +++ b/src/main/java/com/tianpengtech/common/model/fair/Fair.java @@ -64,6 +64,7 @@ public class Fair extends AbstractBaseModel<Fair> { public static final String DESCRIPT="descript"; //描述信息 public static final String FANS_FEATURE="fans_feature"; //描述信息 public static final String PRICE="price"; //网红价格区间 + public static final String VERSION="version"; //乐观锁校验字段 public static final int STATUS_UNAPPROVER=-1; diff --git a/src/main/java/com/tianpengtech/common/util/XxxUtil.java b/src/main/java/com/tianpengtech/common/util/XxxUtil.java index f42ca52..5ca47a6 100644 --- a/src/main/java/com/tianpengtech/common/util/XxxUtil.java +++ b/src/main/java/com/tianpengtech/common/util/XxxUtil.java @@ -187,6 +187,20 @@ public class XxxUtil { return s; } + public static String handleContent(String v,int length){ + String result = ""; + if(v==null){ + return result; + }else if(v.length()<=length){ + result=v; + }else if(v.length()>length){ + v= v.substring(0, length); + v = v+"..."; + result=v; + } + return result; + } + public static void main(String[] args) { System.out.println(hiddenMobile("13641489216")); System.out.println(formatFans(128537)); diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java index ad0f154..7822a9c 100644 --- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java +++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java @@ -28,7 +28,7 @@ public class Jpush { public final static String PUSH_TASK="task"; public final static String PUSH_MSG="msg"; - public final static int LIVE_TIME=90*1000; + public final static int LIVE_TIME=1*1000*60*10; public final static boolean PRO_ENV=false; @@ -41,6 +41,15 @@ public class Jpush { } } + public static void pushMessageInfoToSomeOne(String alias,String ALERT,String type){ + PushResult result = jPushMessageInfoToSomeOne(String.valueOf(alias),ALERT,type); + if(result != null && result.isResultOK()){ + log.info("针对别名" + alias + "的信息推送成功!"); + }else{ + log.info("针对别名" + alias + "的信息推送失败!"); + } + } + public static void pushCustomContentToAll(String ALERT,String type){ PushResult result = jPushCustomContentToAll(ALERT,type); if(result != null && result.isResultOK()){ @@ -50,6 +59,15 @@ public class Jpush { } } + public static void pushMessageInfoToAll(String ALERT,String type){ + PushResult result = jPushMessageInfoToAll(ALERT,type); + if(result != null && result.isResultOK()){ + log.info("信息推送成功!"); + }else{ + log.info("信息推送失败!"); + } + } + private static PushPayload customContentPushToAll(String title,String type){ Map<String,String> param = new HashMap<String,String>(); param.put("type", type); @@ -65,6 +83,32 @@ public class Jpush { } + + private static PushPayload customMessageInfoPushToAll(String title,String type){ + Map<String,String> param = new HashMap<String,String>(); + param.put("type", type); + return PushPayload.newBuilder() + .setPlatform(Platform.android_ios()) + .setAudience(Audience.all()) + .setNotification(Notification.newBuilder() + .addPlatformNotification(AndroidNotification.newBuilder() + .addExtra("type",type) + .setAlert(title) + .build()) + .addPlatformNotification(IosNotification.newBuilder() + .addExtra("type",type) + .setAlert(title) + .build()) + .build()) + .setOptions(Options.newBuilder() + .setApnsProduction(PRO_ENV)//true-推送生产环境 false-推送开发环境(测试使用参数) + .setTimeToLive(LIVE_TIME)//消息在JPush服务器的失效时间(测试使用参数) + .build()) + .build(); + + } + + private static PushPayload customContentPushToSomeOne(String title,String someone,String pushType){ Map<String,String> param = new HashMap<String,String>(); param.put("type", pushType); @@ -72,6 +116,32 @@ public class Jpush { .setPlatform(Platform.android_ios()) .setAudience(Audience.alias(someone)) .setMessage(Message.newBuilder().addExtras(param).setMsgContent(title).build()) + + .build(); + + } + + private static PushPayload customMessageInfoToSomeOne(String title,String someone,String pushType){ + Map<String,String> param = new HashMap<String,String>(); + param.put("type", pushType); + return PushPayload.newBuilder() + .setPlatform(Platform.android_ios()) + .setAudience(Audience.alias(someone)) + .setNotification(Notification.newBuilder() + .addPlatformNotification(AndroidNotification.newBuilder() + .addExtra("type",pushType) + .setAlert(title) + .build()) + .addPlatformNotification(IosNotification.newBuilder() + .addExtra("type",pushType) + .setAlert(title) + .setBadge(0) + .build()) + .build()) + .setOptions(Options.newBuilder() + .setApnsProduction(PRO_ENV)//true-推送生产环境 false-推送开发环境(测试使用参数) + .setTimeToLive(LIVE_TIME)//消息在JPush服务器的失效时间(测试使用参数) + .build()) .setOptions(Options.newBuilder() .setApnsProduction(PRO_ENV)//true-推送生产环境 false-推送开发环境(测试使用参数) .setTimeToLive(LIVE_TIME)//消息在JPush服务器的失效时间(测试使用参数) @@ -99,6 +169,26 @@ public class Jpush { } } + + private static PushResult jPushMessageInfoToSomeOne(String alias,String alert,String type){ + ClientConfig clientConfig = ClientConfig.getInstance(); + JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, clientConfig); + PushPayload payload = customMessageInfoToSomeOne(alert,alias,type); + try { + return jpushClient.sendPush(payload); + } catch (APIConnectionException e) { + log.error("Connection error. Should retry later. ", e); + return null; + } catch (APIRequestException e) { + log.error("Error response from JPush server. Should review and fix it. ", e); + log.info("HTTP Status: " + e.getStatus()); + log.info("Error Code: " + e.getErrorCode()); + log.info("Error Message: " + e.getErrorMessage()); + log.info("Msg ID: " + e.getMsgId()); + return null; + } + } + private static PushResult jPushCustomContentToAll(String title,String type){ ClientConfig clientConfig = ClientConfig.getInstance(); JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, clientConfig); @@ -118,8 +208,29 @@ public class Jpush { } } + private static PushResult jPushMessageInfoToAll(String title,String type){ + ClientConfig clientConfig = ClientConfig.getInstance(); + JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, clientConfig); + PushPayload payload = customMessageInfoPushToAll(title,type); + try { + return jpushClient.sendPush(payload); + } catch (APIConnectionException e) { + log.error("Connection error. Should retry later. ", e); + return null; + } catch (APIRequestException e) { + log.error("Error response from JPush server. Should review and fix it. ", e); + log.info("HTTP Status: " + e.getStatus()); + log.info("Error Code: " + e.getErrorCode()); + log.info("Error Message: " + e.getErrorMessage()); + log.info("Msg ID: " + e.getMsgId()); + return null; + } + } + public static void main(String[] args) { - Jpush.pushCustomContentToAll("xxxxqqq!!",Jpush.PUSH_TASK); +// Jpush.pushCustomContentToAll("xxxxqqq!!",Jpush.PUSH_TASK); // Jpush.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG); + Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_MSG); + //Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK); } } diff --git a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java index 83172c0..d275887 100644 --- a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java +++ b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java @@ -77,6 +77,11 @@ public class MobileLoginController extends BaseController { renderJson(R.fail("手机号码格式不正确")); return; } + if (PassportService.me.isMobileExists(mobile,User.USER_TYPE_FAIR)) { + R.fail("手机号码已被注册,请更换一个手机号码"); + return; + } + String ip = IpKit.getRealIp(getRequest()); Ret ret=passportService.sendAuthCode(mobile,ip,SendSmsMsg.TEMPLATE_REG_SMS); if (ret.isOk()){ @@ -209,6 +214,7 @@ public class MobileLoginController extends BaseController { public void upateVersion(){ R r = R.ok(); r.put("showUpdate", false); + r.put("showInvite", false); renderJson(r); } } diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java index d4ff6e9..14dc7c2 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java @@ -4,6 +4,7 @@ import com.jfinal.aop.Before; import com.jfinal.kit.Ret; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.tx.Tx; import com.jfinal.upload.UploadFile; import com.tianpengtech.common.exception.ValidateException; @@ -383,11 +384,11 @@ public class MobilePassportController extends BaseController{ User user= UserUtil.getCurrentUser(getPara("token"),"ios"); R r = R.ok("成功"); - Fair fair = Fair.dao.findById(user.getLong(User.ID)); - String sql="select count(id) as id from "+Fair.dao.tableName()+" where money>? order by money desc"; - Fair temp = Fair.dao.findFirst(sql,fair.getDouble(Fair.MONEY)); - int sort = (temp.getInt(Fair.ID)==0)?1:temp.getInt(Fair.ID)+1; - +// Fair fair = Fair.dao.findById(user.getLong(User.ID)); +// String sql="select count(id) as id from "+Fair.dao.tableName()+" where money>? order by money desc"; +// Fair temp = Fair.dao.findFirst(sql,fair.getDouble(Fair.MONEY)); +// int sort = (temp.getInt(Fair.ID)==0)?1:temp.getInt(Fair.ID)+1; +// // sql = "select sum(money) as money from "+FairWithdraw.dao.tableName()+" where status=? and wh_id=?"; // FairWithdraw withDraw = FairWithdraw.dao.findFirst(sql,FairWithdraw.STATUS_SUCCESS,user.getLong(User.ID)); @@ -396,6 +397,27 @@ public class MobilePassportController extends BaseController{ user.getLong(User.ID),MoneyLog.STATUS_SUCCESS,MoneyLog.STATE_ADD); double totalFee = (sumlog.getDouble("money")==null)?0:sumlog.getDouble("money"); int yandou = (int)(totalFee/100); + + //检测所有登录用户的收益信息,并且存入数据表中分析 + if(totalFee>=0){ + Record record = Db.findFirst("select * from fair_total_profit where wh_id=?",user.getLong(User.ID)); + if(record!=null){ + if(totalFee!=record.getDouble("profit")){ + int id = record.getInt("id"); + Db.update("update fair_total_profit set profit=?,wh_id=? where id =?",totalFee,user.getLong(User.ID),id); + } + + + }else{ + record = new Record(); + record.set("profit", totalFee); + record.set("wh_id", user.getLong(User.ID)); + Db.save("fair_total_profit", record); + } + } + String sql="select count(id) as id from fair_total_profit where profit>? order by profit desc"; + Record temp =Db.findFirst(sql,totalFee); + int sort = (temp.getInt("id")==0)?1:temp.getInt("id")+1; r.p("sort", sort); r.p("yandou",yandou); renderJson(r); diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java index eeffba5..476541c 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java @@ -809,7 +809,7 @@ public class MobilePassportService { id,MoneyLog.STATUS_SUCCESS,MoneyLog.STATE_ADD); // String sql = "select SUM(money) as money from "+FairWithdraw.dao.tableName()+" where wh_id=? and status=?"; // FairWithdraw sumlog= FairWithdraw.dao.findFirst(sql,id,FairWithdraw.STATUS_SUCCESS); - if (log == null) { + if (sumlog == null) { r.p("all", 0); } else { r.p("all", sumlog.get("money")); @@ -877,8 +877,13 @@ public class MobilePassportService { String cacheToken = CacheKit.get(User.AUTH_CODE_CACHENAME, TRAN_PWD_CACHE_KEY + uid); if (token.equals(cacheToken)) { CacheKit.remove(User.AUTH_CODE_CACHENAME, TRAN_PWD_CACHE_KEY + uid); - fair.set(Fair.MONEY, yue.doubleValue() - tixian); - if (fair.update()) { +// fair.set(Fair.MONEY, yue.doubleValue() - tixian); + int version = fair.getInt(Fair.VERSION); + //增加并发时候的乐观锁校验,以免产生重复的提交信息 + int netxtVersion = version+1; + String sql = "update "+Fair.dao.tableName()+" set "+Fair.MONEY+"=?,version=? where id=? and version=?"; + int result = Db.update(sql,yue.doubleValue() - tixian,netxtVersion,uid,version); + if (result>0) { FairWithdraw fw = new FairWithdraw(); fw.set(FairWithdraw.BANK_ID, bankId); fw.set(FairWithdraw.MONEY, tixian); diff --git a/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishController.java b/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishController.java index bd3341e..056c422 100644 --- a/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishController.java +++ b/src/main/java/com/tianpengtech/front/mobile/publisher/MobilePublishController.java @@ -116,7 +116,6 @@ public class MobilePublishController extends BaseController { String sql = "select * from fair_task_wh where wh_id=? and task_id=? limit 1"; TaskWh wh = TaskWh.dao.findFirst(sql,uid,taskId); if(wh!=null){ - if(StringUtils.isEmpty(wh.getStr(TaskWh.EVALUATE_WHOM))){ wh.set(TaskWh.EVALUATE_WHOM, content).set(TaskWh.WHOM_DATE, new Date()).update(); renderJson(R.ok("评论成功")); diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java index 8651860..bde8956 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskController.java @@ -1,7 +1,9 @@ package com.tianpengtech.front.mobile.task; +import com.jfinal.aop.Before; import com.jfinal.aop.Clear; import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.tx.Tx; import com.tianpengtech.common.exception.ValidateException; import com.tianpengtech.common.model.taskscreenshot.TaskScreenShot; import com.tianpengtech.common.model.user.User; @@ -65,6 +67,8 @@ public class MobileTaskController extends BaseController { /** * 接受任务 */ + + @Before(Tx.class) public void acceptTask() { String id = getPara("id");// 任务ID if (!U.isInteger(id)) { diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java index f670673..397b119 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java @@ -4,6 +4,7 @@ import com.jfinal.kit.Ret; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; import com.tianpengtech.admin.dictionary.DictionaryDao; import com.tianpengtech.common.exception.ValidateException; import com.tianpengtech.common.model.authenticate.Authenticate; @@ -13,6 +14,7 @@ import com.tianpengtech.common.model.task.Task; import com.tianpengtech.common.model.task.TaskWh; import com.tianpengtech.common.model.taskscreenshot.TaskScreenShot; import com.tianpengtech.common.util.DateUtils; +import com.tianpengtech.common.util.XxxUtil; import com.tianpengtech.front.mobile.common.util.R; import com.tianpengtech.front.web.passport.AuthenticateSerivce; import com.tianpengtech.front.web.task.TaskService; @@ -81,7 +83,7 @@ public class MobileTaskService { int type = t.getInt(Task.TASK_TYPE); int total = (type == Task.EXT_TYPE_RL) ? t.getInt(Task.WH_NUMBER) : t.getInt(Task.WH_NUMBER); t.put("total", total); - t.put("haveAccept", queryAcceptNum(t.getLong(Task.ID), t.getInt(Task.TASK_TYPE))); + t.put("haveAccept", queryAcceptNum(t.getLong(Task.ID), t.getInt(Task.TASK_TYPE),t.getInt(Task.WH_NUMBER))); t.put("dateString", t.getDateString()); boolean result = TaskService.isExistFairTask(uid + "", t.getLong(Task.ID) + ""); t.put("isJoin", result); @@ -90,6 +92,9 @@ public class MobileTaskService { int priceLevel = fair.getInt(Fair.PRICE); boolean canApply = (priceLevel>=t.getDouble(Task.TASK_PRICE)); t.put("canApply", canApply); + + t.set(Task.TASK_TITLE,XxxUtil.handleContent(t.getStr(Task.TASK_TITLE), 14)); + t.set(Task.TASK_DESCRIPTION,XxxUtil.handleContent(t.getStr(Task.TASK_DESCRIPTION),103)); }); R r = R.ok(); r.p("pageNum", pageNum); @@ -99,16 +104,18 @@ public class MobileTaskService { return r; } - public long queryAcceptNum(long taskId, int taskType) { + public long queryAcceptNum(long taskId, int taskType,int limitNum) { long num = 0; if (taskType == Task.EXT_TYPE_ZD) { String sql = "select count(id) as id from fair_task_wh where task_id=?"; num = Db.queryLong(sql, taskId); } - if (taskType == Task.EXT_TYPE_ZD) { + if (taskType == Task.EXT_TYPE_RL) { String sql = "select count(id) as id from fair_task_wh where task_id=?"; num = Db.queryLong(sql, taskId); } + + num = (num>limitNum)?limitNum:num; return num; } @@ -188,14 +195,18 @@ public class MobileTaskService { t.put("company", companyName); t.put("companyLogo", logo); + t.set(Task.TASK_TITLE,XxxUtil.handleContent(t.getStr(Task.TASK_TITLE), 14)); + int type = t.getInt(Task.TASK_TYPE); int total = (type == Task.EXT_TYPE_RL) ? t.getInt(Task.WH_NUMBER) : t.getInt(Task.WH_NUMBER); t.put("total", total); - t.put("haveAccept", queryAcceptNum(t.getLong(Task.ID), type)); + t.put("haveAccept", queryAcceptNum(t.getLong(Task.ID), type,t.getInt(Task.WH_NUMBER))); boolean result = TaskService.isExistFairTask(params.get("user") + "", t.getLong(Task.ID) + ""); t.put("isJoin", result); // t.put("hasApprover", hasApprover); + t.set(Task.TASK_TITLE,XxxUtil.handleContent(t.getStr(Task.TASK_TITLE), 14)); + t.set(Task.TASK_DESCRIPTION,XxxUtil.handleContent(t.getStr(Task.TASK_DESCRIPTION),103)); } R r = R.ok(); r.p("count", page.getTotalRow()); @@ -208,21 +219,34 @@ public class MobileTaskService { public R getTask(long id, long uid) { StringBuffer sql = new StringBuffer( - "select task.task_type ,wh.reason ,wh.title as rec_title, wh.status as wh_status, wh.code, task.task_url, task.create_user, task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + "select task.wh_number,task.task_type ,wh.reason ,wh.title as rec_title, wh.status as wh_status, wh.code, task.task_url, task.create_user, task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID + " where wh." + TaskWh.TASK_ID + "=? and wh." + TaskWh.WH_ID + "=?"); Task task = taskDao.findFirst(sql.toString(), id, uid); if (task == null) { sql = new StringBuffer( - "select task.task_type, wh.reason , wh.code,task.task_url, task.create_user,task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + "select task.wh_number,task.task_type, wh.reason , wh.code,task.task_url, task.create_user,task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID + " where task." + Task.ID + "=?"); task = taskDao.findFirst(sql.toString(), id); task.put("sumClick", 0); - task.put("sumCvs", 0); + task.put("sumCvs",0); + task.put("click_num",0); + task.put("cvs_num",0); + task.put("actual_price",0); } else { - task.put("sumClick", task.getClick()); - task.put("sumCvs", task.getCvs()); +// task.put("sumClick", task.getClick()); +// task.put("sumCvs", task.getCvs()); + task.put("sumClick",task.getLong(TaskWh.CLICK_NUM)); + task.put("sumCvs", task.getLong(TaskWh.CVS_NUM)); + task.put("click_num",task.getLong(TaskWh.CLICK_NUM)); + task.put("cvs_num",task.getLong(TaskWh.CVS_NUM)); + + long click_num =task.getLong(TaskWh.CLICK_NUM); + double actualFee = click_num *0.3; + actualFee = (actualFee>task.getDouble(Task.TASK_PRICE))?task.getDouble(Task.TASK_PRICE):actualFee; + int actualFeeInt= (int)actualFee; + task.put("actual_price",actualFeeInt); } task.put("dateString", task.getDateString()); Authenticate auth = AuthenticateSerivce.ME.findAuthenticateByUserId(task.getInt(Task.CREATE_USER)); @@ -244,16 +268,29 @@ public class MobileTaskService { task.put("acceptNum", 0); // if (task.getInt("status")!=Task.STATUS_SUCCESS) { String fairs = String.format( - "select wh.descript as descript, wh.photo,wh.nick_name,wh.id as id,task.task_price,wt.cvs_num,wt.click_num from %s wt left join %s wh on wt.%s=wh.%s left join %s task on wt.%s=task.%s where wt.%s=? order by wt.%s desc", + "select wh.descript as descript, wh.photo,wh.nick_name,wh.id as id,task.task_price,wt.cvs_num,wt.click_num,wt.wh_id from %s wt " + + "left join %s wh on wt.%s=wh.%s left join %s task on wt.%s=task.%s where wt.%s=? " + + "order by wt.%s desc limit "+ task.getInt(Task.WH_NUMBER), TaskWh.dao.tableName(), Fair.dao.tableName(), TaskWh.WH_ID, Fair.ID, Task.dao.tableName(), TaskWh.TASK_ID, Task.ID, TaskWh.TASK_ID, TaskWh.CVS_NUM); List<Fair> fairses = fairDao.find(fairs, id); for (int i = 0; i < fairses.size(); i++) { + //假如包含自己,则剔除自己再列表中的位置 Fair f = fairses.get(i); +// if(f.getLong(TaskWh.WH_ID)==uid){ +// fairses.remove(f); +// continue; +// } f.put("no", i + 1); String photo = ((f.getStr(Fair.PHOTO).equals("/upload/avatar/x.jpg")) ? defaultAvatar : f.getStr(Fair.PHOTO)); f.set(Fair.PHOTO, photo); + double actualFee=0; + long click_num =f.getLong(TaskWh.CLICK_NUM); + actualFee = click_num *0.3; + actualFee = (actualFee>task.getDouble(Task.TASK_PRICE))?task.getDouble(Task.TASK_PRICE):actualFee; + int actualFeeInt = (int)actualFee; + f.put("task_price",actualFeeInt); } r.p("fairs", fairses); int num = (fairses.isEmpty()) ? 0 : fairses.size(); @@ -264,7 +301,7 @@ public class MobileTaskService { Fair fair = Fair.dao.findById(uid); boolean hasApprover = (fair != null && (fair.getInt(Fair.STATUS) == Fair.STATUS_SUCCESS)) ? true : false; task.put("hasApprover", hasApprover); - + task.put("wh_status", Task.STATUS_COMPLETED); String photo = ((fair.getStr(Fair.PHOTO).equals("/upload/avatar/x.jpg")) ? defaultAvatar : fair.getStr(Fair.PHOTO)); task.put("myAvatar",photo); @@ -292,34 +329,48 @@ public class MobileTaskService { return r; } - List<TaskWh> taskWh= TaskService.queryFairApplyNumTask(taskId); + + //将报名信息加入报名的队列信息,获取生成的唯一的自助ID数据 + Record record = new Record(); + int pre_apply=1;//预报名 + record.set("wh_id", uid); + record.set("task_id", taskId); + record.set("status", pre_apply); + Db.save("fair_task_queue", record); + int queueId = record.getInt("id"); + + if(queueId<=0){ + r = R.fail("报名排队失败"); + return r; + } + //检查当前网红报名任务个数是否超过系统设定值,假如超过,则提示信息 Dictionary dictionary = DictionaryDao.ME.readDirecotryByCode(Dictionary.SYS_APPLY_NUM); - int applyNum = Integer.parseInt(dictionary.getStr(Dictionary.NAME)); List<TaskWh> wh_tasks = queryFairWhTasksToday(uid); - if(wh_tasks.size()>=applyNum){ r = R.fail("你每天只能接受"+applyNum+"个任务"); return r; } + boolean result = TaskService.isExistFairTask(uid + "", taskId); + if (result) { + r = R.fail("你已经接受了当前任务,请勿重复操作!!"); + return r; + } + List<TaskWh> taskWh= TaskService.queryFairApplyNumTask(taskId); if(taskWh.size()>=task.getInt(Task.WH_NUMBER)){ r = R.fail("报名人数已经够了,感谢你的关注"); return r; } - boolean result = TaskService.isExistFairTask(uid + "", taskId); - if (result) { - r = R.fail("你已经接受了当前任务,请勿重复操作!!"); + ret = taskService.saveTaskWait(new String[] { uid + "" }, taskId); + if (ret.isOk()) { + Db.update("update fair_task_queue set status=2 where id=?",queueId);//将预报名信息变成正式报名状态,此时报名task_wh表中才有一条正式的报名信息 + r = R.ok(); } else { - ret = taskService.saveTaskWait(new String[] { uid + "" }, taskId); - if (ret.isOk()) { - r = R.ok(); - } else { - r = R.fail(ret.getStr("msg")); - } + r = R.fail(ret.getStr("msg")); } return r; } -- Gitee From 4a0c6fc86d6563e7ca6007013f01b181dde50d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Wed, 17 Jan 2018 04:16:05 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3BUG=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tianpengtech/admin/AdminRoutes.java | 2 + .../fairauth/FairAuthAdminServiceImpl.java | 2 + .../FairWithdrawAdminController.java | 1 + .../FairWithdrawAdminServiceImpl.java | 12 +++ .../PlatFormIncomeAdminController.java | 60 +++++++++++ .../PlatFormIncomeAdminServiceImpl.java | 44 ++++++++ .../admin/task/SendTaskSMSThread.java | 4 +- .../admin/task/TaskAdminServiceImpl.java | 3 +- .../com/tianpengtech/common/MyConfig.java | 2 + .../common/generator/app/Generator.java | 2 +- .../tianpengtech/common/model/fair/Fair.java | 1 + .../model/fairwithdraw/FairWithdraw.java | 5 + .../model/platformincome/PlatFormIncome.java | 42 ++++++++ .../tianpengtech/common/util/push/Jpush.java | 3 +- .../moneylog/MobileMoenyLogService.java | 5 + .../passport/MobilePassportController.java | 13 +++ .../passport/MobilePassportService.java | 12 +++ .../WEB-INF/view/admin/common/__side-bar.html | 14 +++ .../admin/fairwithdraw/fairwithdraw-list.html | 12 +-- .../platformincome/add-platformincome.html | 45 ++++++++ .../platformincome/edit-platformincome.html | 45 ++++++++ .../platformincome/platformincome-detail.html | 17 +++ .../platformincome/platformincome-form.html | 27 +++++ .../platformincome/platformincome-list.html | 101 ++++++++++++++++++ 24 files changed, 464 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminController.java create mode 100644 src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminServiceImpl.java create mode 100644 src/main/java/com/tianpengtech/common/model/platformincome/PlatFormIncome.java create mode 100644 src/main/webapp/WEB-INF/view/admin/platformincome/add-platformincome.html create mode 100644 src/main/webapp/WEB-INF/view/admin/platformincome/edit-platformincome.html create mode 100644 src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-detail.html create mode 100644 src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-form.html create mode 100644 src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-list.html diff --git a/src/main/java/com/tianpengtech/admin/AdminRoutes.java b/src/main/java/com/tianpengtech/admin/AdminRoutes.java index eb4bd68..fa5ab24 100644 --- a/src/main/java/com/tianpengtech/admin/AdminRoutes.java +++ b/src/main/java/com/tianpengtech/admin/AdminRoutes.java @@ -16,6 +16,7 @@ import com.tianpengtech.admin.feedback.FeedBackAdminController; import com.tianpengtech.admin.moneylog.MoneyLogAdminController; import com.tianpengtech.admin.opertion.OpertionAdminController; import com.tianpengtech.admin.permission.PermissionAdminController; +import com.tianpengtech.admin.platformincome.PlatFormIncomeAdminController; import com.tianpengtech.admin.role.RoleAdminController; import com.tianpengtech.admin.task.TaskAdminController; import com.tianpengtech.admin.taskscreenshot.TaskScreenShotAdminController; @@ -57,5 +58,6 @@ public class AdminRoutes extends Routes{ add("/admin/fairsalary",FairSalaryAdminController.class, "/admin/fairsalary"); add("/admin/moneylog", MoneyLogAdminController.class, "/admin/moneylog"); add("/admin/websitead", WebSiteAdAdminController.class, "/admin/websitead"); + add("/admin/platformincome", PlatFormIncomeAdminController.class, "/admin/platformincome"); } } diff --git a/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java index b91c6ed..2866e40 100644 --- a/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java +++ b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java @@ -104,6 +104,7 @@ public class FairAuthAdminServiceImpl extends AbstractAdmin implements IAdminOpt .set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save(); result = "【通过】"+temp.getStr(FairAuth.NICK_NAME)+"的"+temp.type()+"的认证请求"; Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result,Jpush.PUSH_MSG); + Jpush.pushMessageInfoToSomeOne(fair.getStr(Fair.MOIBILE), result,Jpush.PUSH_MSG); OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_AUTH_LOG,userId,result); //更新粉丝数量 @@ -119,6 +120,7 @@ public class FairAuthAdminServiceImpl extends AbstractAdmin implements IAdminOpt new FairMessage().set(FairMessage.CONTENT, "管理员"+result) .set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save(); Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result,Jpush.PUSH_MSG); + Jpush.pushMessageInfoToSomeOne(fair.getStr(Fair.MOIBILE), result,Jpush.PUSH_MSG); result = "【拒绝】"+temp.getStr(FairAuth.NICK_NAME)+"的"+temp.type()+"的认证请求,原因是:"+content; OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_AUTH_LOG,userId,result); diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java index 103159c..1a35342 100644 --- a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java +++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java @@ -61,6 +61,7 @@ public class FairWithdrawAdminController extends AbstractAdminController{ fairWithdraw.set(FairWithdraw.BANK_ID, bankNo.getStr(FairBankNo.BANK)); fairWithdraw.set(FairWithdraw.WH_ID, fair.getStr(Fair.NICK_NAME)); fairWithdraw.set(FairWithdraw.STATUS, fairWithdraw.status()); + fairWithdraw.put("platform_fee", fairWithdraw.platFormFee()); } } diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java index d771451..0f237aa 100644 --- a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java +++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java @@ -15,6 +15,7 @@ import com.tianpengtech.common.model.fairmessage.FairMessage; import com.tianpengtech.common.model.fairwithdraw.FairWithdraw; import com.tianpengtech.common.model.moneylog.MoneyLog; import com.tianpengtech.common.model.opertion.Opertion; +import com.tianpengtech.common.model.platformincome.PlatFormIncome; import com.tianpengtech.common.search.EqualCondition; import com.tianpengtech.common.search.QueryConstructor; import com.tianpengtech.common.util.XxxUtil; @@ -95,7 +96,18 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result,Jpush.PUSH_MSG); String sql = "select * from "+MoneyLog.dao.tableName()+" where operid=? limit 1"; MoneyLog moneyLog = MoneyLog.dao.findFirst(sql,id); + double money = moneyLog.getDouble(MoneyLog.MONEY); + double actualFee= money-temp.platFormFee(); + moneyLog.set(MoneyLog.MONEY,(int)actualFee).update(); + moneyLog.set(MoneyLog.DESCRIPTION,"用户提现:金额¥"+money+",实际收益:¥"+(int)actualFee).update(); moneyLog.set(MoneyLog.DELETETAG,MoneyLog.STATUS_SUCCESS).update(); + + PlatFormIncome formIncome = new PlatFormIncome(); + formIncome.set(PlatFormIncome.WH_ID, temp.getInt(FairAuth.WH_ID)); + formIncome.set(PlatFormIncome.MONEY, temp.platFormFee()); + formIncome.set(PlatFormIncome.WITH_DRAW_MONEY, money); + formIncome.set(PlatFormIncome.STATUS,PlatFormIncome.STATUS_OK); + formIncome.save(); } if(status==FairWithdraw.STATUS_ERROR){ String result = "【拒绝】你的提现申请请求,原因是:"+content; diff --git a/src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminController.java b/src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminController.java new file mode 100644 index 0000000..bf6a101 --- /dev/null +++ b/src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminController.java @@ -0,0 +1,60 @@ +package com.tianpengtech.admin.platformincome; + +import com.jfinal.aop.Before; +import com.jfinal.plugin.activerecord.Model; +import com.tianpengtech.admin.AbstractAdminController; +import com.tianpengtech.admin.InitInterceptor; +import com.tianpengtech.common.exception.ValidateException; +import com.tianpengtech.common.model.fair.Fair; +import com.tianpengtech.common.model.platformincome.PlatFormIncome; + +/** +* 路由配置地址:add("/admin/platformincome", PlatFormIncomeAdminController.class, "/admin/platformincome"); +* 数据库映射地址:arp.addMapping(PlatFormIncome.dao.tableName(),PlatFormIncome.class); +*/ +@Before(InitInterceptor.class) +public class PlatFormIncomeAdminController extends AbstractAdminController{ + + @Override + protected void config() { + this.clazz=PlatFormIncome.class; + this.service=new PlatFormIncomeAdminServiceImpl(); + } + + @Override + public void beforeAdd() { + + } + + @Override + public void beforeAdd(Model< ? > model) throws ValidateException { + + } + + @Override + public void beforeQueryById(Model<?> model, int id) { + + } + + @Override + public void beforeUpdate(Model< ? > model) throws ValidateException { + + } + + @Override + public void beforeDelete(Model< ? > model) { + + } + + @Override + public void parsePageRecord(Object results) { + PlatFormIncome temp = (PlatFormIncome)results; + Fair fair = Fair.dao.findById(temp.getLong(PlatFormIncome.WH_ID)); + if(fair!=null){ + temp.put("wh_id_str",fair.getStr(Fair.NICK_NAME)); + } + temp.set(PlatFormIncome.STATUS, temp.status()); + } +} + + \ No newline at end of file diff --git a/src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminServiceImpl.java new file mode 100644 index 0000000..dbfdd8d --- /dev/null +++ b/src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminServiceImpl.java @@ -0,0 +1,44 @@ +package com.tianpengtech.admin.platformincome; + +import java.util.Map; + +import com.jfinal.plugin.activerecord.Model; +import com.tianpengtech.common.exception.ValidateException; +import com.tianpengtech.admin.AbstractAdmin; +import com.tianpengtech.common.model.platformincome.PlatFormIncome; +import com.tianpengtech.common.search.QueryConstructor; + +public class PlatFormIncomeAdminServiceImpl extends AbstractAdmin{ + + @Override + public void beforeAdd(Model<?> model) throws ValidateException { + + } + + @Override + public void beforeQueryById(Model<?> model, int id) { + + } + + @Override + public void beforeUpdate(Model<?> model) throws ValidateException { + + } + + @Override + public void beforeDelete(Model<?> model) { + + } + + @Override + public void builderSQLExpected(Model< ? > model, + QueryConstructor queryConstruct, Map< String, Object > params) { + + } + + @Override + public String tableName() { + return PlatFormIncome.dao.tableName(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/tianpengtech/admin/task/SendTaskSMSThread.java b/src/main/java/com/tianpengtech/admin/task/SendTaskSMSThread.java index c65b75c..f6349c2 100644 --- a/src/main/java/com/tianpengtech/admin/task/SendTaskSMSThread.java +++ b/src/main/java/com/tianpengtech/admin/task/SendTaskSMSThread.java @@ -20,7 +20,9 @@ public class SendTaskSMSThread extends Thread { for (Fair each : fair) { if(each!=null && StringUtils.isNotEmpty(each.getStr(Fair.MOIBILE))){ // System.out.println("发送短息给对应的网红:"+each.getStr(Fair.MOIBILE)); - SendSmsMsg.sendNewTaskInfo(each.getStr(Fair.MOIBILE), SendSmsMsg.TEMPLATE_NEW_MISSION); + if(each.getInt(Fair.SMS_SET)==1){ + SendSmsMsg.sendNewTaskInfo(each.getStr(Fair.MOIBILE), SendSmsMsg.TEMPLATE_NEW_MISSION); + } } } // SendSmsMsg.sendNewTaskInfo("13641489216", SendSmsMsg.TEMPLATE_NEW_MISSION); diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java index c6d1927..d842ad7 100644 --- a/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java +++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java @@ -110,7 +110,8 @@ public class TaskAdminServiceImpl extends AbstractAdmin implements IAdminOpt{ String result = "【通过】《"+temp.getStr(Task.TASK_TITLE)+"》的审核请求"; PushKit.pushSystemMessageNow("管理员"+result); OperationDao.ME.recordLog(id, Opertion.OPT_TASK_LOG,userId,result); - Jpush.pushCustomContentToAll("《"+temp.getStr(Task.TASK_TITLE)+"》发布啦,快来接任务吧!",Jpush.PUSH_TASK); + Jpush.pushCustomContentToAll("任务《"+temp.getStr(Task.TASK_TITLE)+"》发布啦,快来接任务吧!",Jpush.PUSH_TASK); + Jpush.pushMessageInfoToAll("任务《"+temp.getStr(Task.TASK_TITLE)+"》发布啦,快来接任务吧!",Jpush.PUSH_TASK); if(SysConfigDao.ME.isSendTaskSMS()){ List<Fair> fairs = readAllFair(); diff --git a/src/main/java/com/tianpengtech/common/MyConfig.java b/src/main/java/com/tianpengtech/common/MyConfig.java index fa314c1..b074f99 100644 --- a/src/main/java/com/tianpengtech/common/MyConfig.java +++ b/src/main/java/com/tianpengtech/common/MyConfig.java @@ -37,6 +37,7 @@ import com.tianpengtech.common.model.moneylog.MoneyLog; import com.tianpengtech.common.model.opertion.Opertion; import com.tianpengtech.common.model.permission.Permission; import com.tianpengtech.common.model.permission.PermissionDispather; +import com.tianpengtech.common.model.platformincome.PlatFormIncome; import com.tianpengtech.common.model.role.Role; import com.tianpengtech.common.model.task.*; import com.tianpengtech.common.model.taskscreenshot.TaskScreenShot; @@ -176,6 +177,7 @@ public class MyConfig extends JFinalConfig { arp.addMapping(FairOrder.dao.tableName(),FairOrder.class); arp.addMapping(FairSalary.dao.tableName(),FairSalary.class); arp.addMapping(WebSiteAd.dao.tableName(),WebSiteAd.class); + arp.addMapping(PlatFormIncome.dao.tableName(),PlatFormIncome.class); EhCachePlugin cachePlugin = new EhCachePlugin(); me.add(cachePlugin); } diff --git a/src/main/java/com/tianpengtech/common/generator/app/Generator.java b/src/main/java/com/tianpengtech/common/generator/app/Generator.java index 37f8f90..704e05c 100644 --- a/src/main/java/com/tianpengtech/common/generator/app/Generator.java +++ b/src/main/java/com/tianpengtech/common/generator/app/Generator.java @@ -234,7 +234,7 @@ public class Generator { // Generator.excute(engine,".authenticate", "Authenticate", "fair_user_authenticate", "用户认证表"); // Generator.excute(engine,".m", "FairSalary", "fair_user_salary", "用户账户表"); // Generator.excute(engine,".wh", "Fair", "fair_wh", "网红表"); - Generator.excute(engine,".websitead", "WebSiteAd", "fair_website_ad_img", "官网图片表"); + Generator.excute(engine,".platincome", "PlatFormIncome", "fair_platform_income", "平台收入表"); // String modelName = "MoneyLog"; // String packageName = ".fair"; diff --git a/src/main/java/com/tianpengtech/common/model/fair/Fair.java b/src/main/java/com/tianpengtech/common/model/fair/Fair.java index dd5d790..0587ca5 100644 --- a/src/main/java/com/tianpengtech/common/model/fair/Fair.java +++ b/src/main/java/com/tianpengtech/common/model/fair/Fair.java @@ -65,6 +65,7 @@ public class Fair extends AbstractBaseModel<Fair> { public static final String FANS_FEATURE="fans_feature"; //描述信息 public static final String PRICE="price"; //网红价格区间 public static final String VERSION="version"; //乐观锁校验字段 + public static final String SMS_SET="sms_set"; //短信设置提醒设置 public static final int STATUS_UNAPPROVER=-1; diff --git a/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java b/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java index ab910ff..8c90afc 100644 --- a/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java +++ b/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java @@ -44,4 +44,9 @@ public class FairWithdraw extends AbstractBaseModel<FairWithdraw> { } return result; } + + + public float platFormFee(){ + return (float)(getDouble(FairWithdraw.MONEY)*0.1); + } } \ No newline at end of file diff --git a/src/main/java/com/tianpengtech/common/model/platformincome/PlatFormIncome.java b/src/main/java/com/tianpengtech/common/model/platformincome/PlatFormIncome.java new file mode 100644 index 0000000..2440bcf --- /dev/null +++ b/src/main/java/com/tianpengtech/common/model/platformincome/PlatFormIncome.java @@ -0,0 +1,42 @@ +package com.tianpengtech.common.model.platformincome; +import com.tianpengtech.common.model.AbstractBaseModel; +/** + *实体类名-平台收入表 + * fair_platform_income + * + * @since Wed Jan 17 01:15:34 HKT 2018 + */ +public class PlatFormIncome extends AbstractBaseModel< PlatFormIncome > { + + /** + * + */ + private static final long serialVersionUID = 1L; + public static final PlatFormIncome dao = new PlatFormIncome(); + + + public static final String ID = "id"; // + public static final String WH_ID = "wh_id"; // 提现网红ID + public static final String MONEY = "money"; // 平台收入 + public static final String STATUS ="status"; //状态值 + public static final String WITH_DRAW_MONEY ="with_draw_money"; //提现金额 + + public static final int STATUS_ERROR=0; + public static final int STATUS_OK=1; + + public String status(){ + String result="未知状态"; + if(getInt(STATUS)==STATUS_ERROR){ + result="收取失败"; + }else if(getInt(STATUS)==STATUS_OK){ + result="收取成功"; + } + return result; + } + + @Override + public String tableName() { + return "fair_platform_income"; + } + +} \ No newline at end of file diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java index 7822a9c..6264a86 100644 --- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java +++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java @@ -231,6 +231,7 @@ public class Jpush { // Jpush.pushCustomContentToAll("xxxxqqq!!",Jpush.PUSH_TASK); // Jpush.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG); Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_MSG); - //Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK); +// Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_TASK); + Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK); } } diff --git a/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoenyLogService.java b/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoenyLogService.java index 2adf27e..0ee4ca1 100644 --- a/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoenyLogService.java +++ b/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoenyLogService.java @@ -2,6 +2,7 @@ package com.tianpengtech.front.mobile.moneylog; import com.jfinal.plugin.activerecord.Page; import com.tianpengtech.common.model.moneylog.MoneyLog; +import com.tianpengtech.common.util.XxxUtil; import com.tianpengtech.front.mobile.common.util.R; /** @@ -18,6 +19,10 @@ public class MobileMoenyLogService { String select = "select * "; String sql = String.format(" from %s where %s=? order by %s desc", MoneyLog.dao.tableName(),MoneyLog.WH_ID,MoneyLog.CREATE_TIME); Page<MoneyLog> page=MoneyLog.dao.paginate(pageNum,length,select,sql.toString(),uid); + for (MoneyLog each : page.getList()) { + each.set(MoneyLog.DESCRIPTION, XxxUtil.handleContent(each.getStr(MoneyLog.DESCRIPTION), 25)); + } + R r= R.ok(); r.p("count",page.getTotalRow()); r.p("pageNum",page.getPageNumber()); diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java index 14dc7c2..957b3bf 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java @@ -429,6 +429,7 @@ public class MobilePassportController extends BaseController{ boolean result = ps.isSetTransPwd(user.getLong(User.ID)); R r = R.ok("成功"); r.p("isSetTransPwd",result); + r.p("isOpen",ps.isOpenSMS(user.getLong(User.ID))); renderJson(r); } @@ -464,4 +465,16 @@ public class MobilePassportController extends BaseController{ long uid = user.getLong(User.ID); renderJson(ps.queryHonnersOfMine(uid)); } + + + public void smsSet(){ + boolean status = getParaToBoolean("status"); + User user= UserUtil.getCurrentUser(getPara("token"),"ios"); + long uid = user.getLong(User.ID); + R r = R.ok("成功"); + Fair t = Fair.dao.findById(uid); + t.set(Fair.SMS_SET, status).update(); + r.p("isOpen",status); + renderJson(r); + } } diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java index 476541c..464ae46 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java @@ -834,6 +834,12 @@ public class MobilePassportService { String tran_pwd = fair.getStr(Fair.TRAN_PWD); return (tran_pwd == null) ? false : true; } + + public boolean isOpenSMS(long uid) { + Fair fair = fs.findById(Integer.parseInt(uid + "")); + int sms_set = fair.getInt(Fair.SMS_SET); + return (sms_set == 0) ? false : true; + } /** * 验证交易密码 @@ -871,9 +877,15 @@ public class MobilePassportService { Fair fair = fs.findById(Integer.parseInt(uid + "")); Double yue = fair.getDouble(Fair.MONEY); // 余额 double tixian = Double.parseDouble(money); // 提现金额 + + if (tixian <20) { + return R.fail("提现金额必须超过¥20"); + } + if (yue == null || tixian > yue.doubleValue()) { return R.fail("提现金额超出可用余额"); } + String cacheToken = CacheKit.get(User.AUTH_CODE_CACHENAME, TRAN_PWD_CACHE_KEY + uid); if (token.equals(cacheToken)) { CacheKit.remove(User.AUTH_CODE_CACHENAME, TRAN_PWD_CACHE_KEY + uid); diff --git a/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html b/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html index 5ac1926..795ba2b 100644 --- a/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html +++ b/src/main/webapp/WEB-INF/view/admin/common/__side-bar.html @@ -150,6 +150,20 @@ </ul> </dd> </dl> + + <dl id="menu-article"> + <dt> + <i class="Hui-iconfont"></i>平台服务费管理<i + class="Hui-iconfont menu_dropdown-arrow"></i> + </dt> + <dd> + <ul> + <li><a _href="#(contextPath)/admin/platformincome" data-title="平台服务费管理" + href="javascript:void(0)">平台服务费管理</a> + </li> + </ul> + </dd> + </dl> #end diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html index 4b0b1e8..f376cab 100644 --- a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html +++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html @@ -24,6 +24,7 @@ { "data": "wh_id" }, { "data": "bank_id" }, { "data": "money" }, + { "data": "platform_fee" }, { "data": "create_time" }, { "data": "status" }, { "data": function(data){ @@ -123,13 +124,11 @@ </span> <button name="" id="searchBtn" class="btn btn-success" type="submit"><i class="Hui-iconfont"></i>检索</button> </div> - #-- <div class="cl pd-5 bg-1 bk-gray mt-20"> - <span class="l"> - <a href="javascript:;" onclick="add()" class="btn btn-primary radius">添加</a> - </span> - <span class="r"></div> - --# + <span style="color:red">【温馨提醒】<br/> + 平台服务费用会在当你将指定提现记录为【处理成功】后自动从提现金额中扣除,系统会做对应的流水记录 + </span> + </div> <div class="mt-20"> <table class="table table-border table-bordered table-bg table-hover table-sort" id="fairwithdraw-list"> <thead> @@ -138,6 +137,7 @@ <th>网红昵称</th> <th>所属银行</th> <th>提现金额(单位:元)</th> + <th>平台服务费(单位:元)</th> <th>提交时间</th> <th>状态</th> <th>操作</th> diff --git a/src/main/webapp/WEB-INF/view/admin/platformincome/add-platformincome.html b/src/main/webapp/WEB-INF/view/admin/platformincome/add-platformincome.html new file mode 100644 index 0000000..fae81f9 --- /dev/null +++ b/src/main/webapp/WEB-INF/view/admin/platformincome/add-platformincome.html @@ -0,0 +1,45 @@ +#@layout() +<script> + $("#platformincome-add").validate({ + rules:{ + "platformincome.wh_id":{ + required:true + }, + "platformincome.money":{ + required:true + }, + "platformincome.status":{ + required:true + } + }, + messages:{ + + "platformincome.wh_id":{ + required:"请输入提现网红ID..." + }, + "platformincome.money":{ + required:"请输入平台收入..." + }, + "platformincome.status":{ + required:"请输入状态值..." + } + }, + onkeyup:false, + focusCleanup:true, + success:"valid", + submitHandler:function(form){ + var config = { + "url":"/admin/platformincome/doAdd", + data:$("#platformincome-add").serialize(), + "method":"POST" + }; + var backendTool = new BackendTool(config); + backendTool.ajaxRequest(); + } + }); +</script> +#define main() + <form class="form form-horizontal" id="platformincome-add"> + #include("platformincome-form.html") + </form> +#end \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/admin/platformincome/edit-platformincome.html b/src/main/webapp/WEB-INF/view/admin/platformincome/edit-platformincome.html new file mode 100644 index 0000000..2f3ac2c --- /dev/null +++ b/src/main/webapp/WEB-INF/view/admin/platformincome/edit-platformincome.html @@ -0,0 +1,45 @@ +#@layout() +<script> + $("#platformincome-edit").validate({ + rules:{ + "platformincome.wh_id":{ + required:true + }, + "platformincome.money":{ + required:true + }, + "platformincome.status":{ + required:true + } + }, + messages:{ + + "platformincome.wh_id":{ + required:"请输入提现网红ID..." + }, + "platformincome.money":{ + required:"请输入平台收入..." + }, + "platformincome.status":{ + required:"请输入状态值..." + } + }, + onkeyup:false, + focusCleanup:true, + success:"valid", + submitHandler:function(form){ + var config = { + "url":"/admin/platformincome/updateById", + data:$("#platformincome-edit").serialize(), + "method":"POST" + }; + var backendTool = new BackendTool(config); + backendTool.ajaxRequest(); + } + }); +</script> +#define main() + <form class="form form-horizontal" id="platformincome-edit"> + #include("platformincome-form.html") + </form> +#end \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-detail.html b/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-detail.html new file mode 100644 index 0000000..4215359 --- /dev/null +++ b/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-detail.html @@ -0,0 +1,17 @@ +#@layout() +#define main() + <form class="form form-horizontal"> + <div class="row cl"> + <label class="form-label col-xs-4 col-sm-3">提现网红ID:</label> + <div class="formControls col-xs-8 col-sm-9">#(platformincome.wh_id??'')</div> + </div> + <div class="row cl"> + <label class="form-label col-xs-4 col-sm-3">平台收入:</label> + <div class="formControls col-xs-8 col-sm-9">#(platformincome.money??'')</div> + </div> + <div class="row cl"> + <label class="form-label col-xs-4 col-sm-3">状态值:</label> + <div class="formControls col-xs-8 col-sm-9">#(platformincome.status??'')</div> + </div> + </form> +#end \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-form.html b/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-form.html new file mode 100644 index 0000000..24b4be5 --- /dev/null +++ b/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-form.html @@ -0,0 +1,27 @@ + <div class="row cl"> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>提现网红ID:</label> + <div class="formControls col-xs-8 col-sm-9"> + <input type="text" class="input-text" value="#(platformincome.wh_id??'')" + maxlength="50" placeholder="请输入提现网红ID..." id="wh_id" name="platformincome.wh_id"> + </div> + </div> + <div class="row cl"> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>平台收入:</label> + <div class="formControls col-xs-8 col-sm-9"> + <input type="text" class="input-text" value="#(platformincome.money??'')" + maxlength="50" placeholder="请输入平台收入..." id="money" name="platformincome.money"> + </div> + </div> + <div class="row cl"> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>状态值:</label> + <div class="formControls col-xs-8 col-sm-9"> + <input type="text" class="input-text" value="#(platformincome.status??'')" + maxlength="50" placeholder="请输入状态值..." id="status" name="platformincome.status"> + </div> + </div> +<div class="row cl"> + <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3"> + <input type="hidden" value="#(platformincome.id??'')" id="id" name="platformincome.id"> + <input class="btn btn-primary radius" type="submit" value=" 提交 "> + </div> +</div> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-list.html b/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-list.html new file mode 100644 index 0000000..b929949 --- /dev/null +++ b/src/main/webapp/WEB-INF/view/admin/platformincome/platformincome-list.html @@ -0,0 +1,101 @@ +#@layout() + +#define js() + <script> + $(function(){ + var _table; + _table =$("#platformincome-list").DataTable( { + aLengthMenu:[10,20,50], + "processing": true, + "serverSide": true, + "bLengthChange": false, + "bSort":false, + searching: false,//屏蔽datatales的查询框 + "pagingType": "full_numbers", + "ajax":{ + "url": "/admin/platformincome/listAll", + "type": "post", + "data": function (params) { + params["id"]=$("#id").val(); + params["wh_id"]=$("#wh_id").val(); + params["money"]=$("#money").val(); + params["status"]=$("#status").val(); + } + }, + "columns": [ + { "data": "id" }, + { "data": "wh_id_str" }, + { "data": "with_draw_money"}, + { "data": "money" }, + { "data": "status" } + /* { "data": function(data){ + var opt="<a href='javascript:;' onclick='edit("+data.id+")'>编辑</a>"+"|"; + opt+="<a href='javascript:;' onclick='showdetail("+data.id+")'>查看详情|</a>"; + opt+="<a href='javascript:;' onclick='del("+data.id+")'>删除</a>"; + return ""; + } + } */ + ] + } ); + $("#searchBtn").click(function(){ + _table.ajax.reload(); + }); +}); + /*编辑*/ + function edit(id){ + var title="编辑"; + var url="#(contextPath)/admin/platformincome/queryById?id="+id; + var w=""; + var h=510; + layer_show(title,url,w,h); + } + /*添加*/ + function add(){ + var title="添加"; + var url="#(contextPath)/admin/platformincome/add/"; + var w=""; + var h=510; + layer_show(title,url,w,h); + } + + /*删除*/ + function del(id){ + var config = { + "url":"#(contextPath)/admin/platformincome/deleteById?id="+id, + data:{} + }; + var backendTool = new BackendTool(config); + backendTool.ajaxRequest(); + } + + /*查看详情*/ + function showdetail(id){ + var title="查看详情"; + var url="/admin/platformincome/showDetail?id="+id; + var w=""; + var h=510; + layer_show(title,url,w,h); + } + </script> +#end + +#define main() + #@breadcrumb(["平台服务费管理","平台服务费管理列表"]) + <div class="page-container"> + <div class="mt-20"> + <table class="table table-border table-bordered table-bg table-hover table-sort" id="platformincome-list"> + <thead> + <tr class="text-c"> + <th>ID</th> + <th>提现网红ID</th> + <th>提现金额(单位:元)</th> + <th>平台收入(单位:元)</th> + <th>状态</th> + </tr> + </thead> + <tbody> + </tbody> + </table> + </div> + </div> +#end \ No newline at end of file -- Gitee From 28d2cc8e53a6b33c9f14f33c5cf375e5823b648d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Wed, 17 Jan 2018 04:40:43 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/fairwithdraw/FairWithdrawAdminServiceImpl.java | 7 +++++-- src/main/java/com/tianpengtech/common/util/push/Jpush.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java index 0f237aa..61a896a 100644 --- a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java +++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java @@ -93,7 +93,6 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi .set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save(); result = "【通过】"+fair.getStr(Fair.NICK_NAME)+"提现的认证请求"; OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_GET_CASH,userId,result); - Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result,Jpush.PUSH_MSG); String sql = "select * from "+MoneyLog.dao.tableName()+" where operid=? limit 1"; MoneyLog moneyLog = MoneyLog.dao.findFirst(sql,id); double money = moneyLog.getDouble(MoneyLog.MONEY); @@ -108,6 +107,9 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi formIncome.set(PlatFormIncome.WITH_DRAW_MONEY, money); formIncome.set(PlatFormIncome.STATUS,PlatFormIncome.STATUS_OK); formIncome.save(); + + Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG); + Jpush.pushMessageInfoToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG); } if(status==FairWithdraw.STATUS_ERROR){ String result = "【拒绝】你的提现申请请求,原因是:"+content; @@ -115,13 +117,14 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi .set(FairMessage.WH_ID, temp.getInt(FairAuth.WH_ID)).save(); result = "【拒绝】"+fair.getStr(Fair.NICK_NAME)+"提现申请请求,原因是:"+content; OperationDao.ME.recordLog(id, Opertion.OPT_FAIR_GET_CASH,userId,result); - Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result,Jpush.PUSH_MSG); String sql = "select * from "+MoneyLog.dao.tableName()+" where operid=? limit 1"; MoneyLog moneyLog = MoneyLog.dao.findFirst(sql,id); moneyLog.set(MoneyLog.DELETETAG,MoneyLog.STATUS_ERROR).update(); //将提现的金额重新填入账户余额中 double currentMoney = temp.getDouble(FairWithdraw.MONEY)+fair.getDouble(Fair.MONEY); fair.set(Fair.MONEY, currentMoney).update(); + Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG); + Jpush.pushMessageInfoToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG); } } } \ No newline at end of file diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java index 6264a86..95a9546 100644 --- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java +++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java @@ -232,6 +232,6 @@ public class Jpush { // Jpush.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG); Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_MSG); // Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_TASK); - Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK); +// Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK); } } -- Gitee From 90a739945650b00942d4cf42e95d3e6d1bf6540f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Wed, 17 Jan 2018 04:43:52 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/.DS_Store | Bin 0 -> 8196 bytes src/main/.DS_Store | Bin 0 -> 8196 bytes src/main/resources/.gitignore | 1 + src/main/resources/a_little_config.txt | 16 ++++++++-------- src/main/webapp/.DS_Store | Bin 8196 -> 8196 bytes src/main/webapp/assets/.DS_Store | Bin 8196 -> 8196 bytes src/main/webapp/assets/front/.DS_Store | Bin 0 -> 8196 bytes src/main/webapp/assets/front/web/.DS_Store | Bin 0 -> 6148 bytes .../webapp/assets/front/web_site/.DS_Store | Bin 0 -> 8196 bytes .../assets/front/web_site/imags/.DS_Store | Bin 0 -> 8196 bytes src/main/webapp/task_template/.DS_Store | Bin 0 -> 6148 bytes .../webapp/task_template/common/.DS_Store | Bin 0 -> 6148 bytes 12 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 src/.DS_Store create mode 100644 src/main/.DS_Store create mode 100644 src/main/resources/.gitignore create mode 100644 src/main/webapp/assets/front/.DS_Store create mode 100644 src/main/webapp/assets/front/web/.DS_Store create mode 100644 src/main/webapp/assets/front/web_site/.DS_Store create mode 100644 src/main/webapp/assets/front/web_site/imags/.DS_Store create mode 100644 src/main/webapp/task_template/.DS_Store create mode 100644 src/main/webapp/task_template/common/.DS_Store diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..54b39e62de9e3a8f825e1a67ded2106f7468d9b3 GIT binary patch literal 8196 zcmeI0O;8*~6oB7@1!g88G)Tg*`P%}ipc2BL35g+D7PLZ{7%Izuh-7wWgpt`9+?izw zh=m@sqPgO~9z2+`ax&3_2Q4ixIcb$rW%Ocs@M5V4FJ65;JxeViT-6HGRo$<<-+Md# z-h4Y<-2i}zoZb$g0)Rx7OSXfWdlatcbyFz`X39t+`9mu2&ZR6TMdRC>tiy>g17QZj z41^g7GZ1Fr|BwONvw4xW*!P7tY{LwM8Q7K?;NOQBRW9R!ToKa$bWr0T0Z2w@+Aq{+ zyhAb;$ao-Egd`0W6s{zND+Wgl6z()13+&>7ToF>Z0|ti=44#a^2?hP9)9=T8bHKQe zVH;*3%)sUh@UwdaGN6G8cJcW=HD{Tw*Vgs}mXt=y$}1#Ek(5g1QgX)0Cq2!}xd|<M zk&gy7ZzdJ=haAUR?`x?M)5uS;+CInjG}AV+zO$(tWHLEw+PafZI5}H){ohFng(S(6 zJjLpkmO8sTTVluBms?^>-N!qq+jew$S(fUW+It2rXRa(RJ-__In<69(J_}HFSBP&F z$EUk#D@7~h#_K^_?tGuPv?$3Ig1%D-T2^+bPt+=B#>}*1C(T7;idDH3^8gJ8v&KBd zH=1^=T*h{%San*n(m6}>j9$y)#_pJBEO@*(;W}Bb&o`W6Eaw^*46-xljefEw*Bbsy z=jS}rvE30P>ym7Yw~1Kf8#{ML4>mR*?l^X`cdc?)6;o=I+R=H_HB*)`oHuoEW?XaA zhOL|S^aN$m_RMEYBP&<qsyt+C8Dov@s;b;mr>bMQl=)oF^scZ*N%Cj+?o*XXomO$q z(Ycq-K9yu&6Wgb%7rCY{Yf!5P4i7e|%8*MjF)c8B=wU?}nx)stTv@ob9#Pa`OG_CR z(`E6T&MrkAofo08CxglE<BB?#b}|`SvRjQU!F10lRehR2`K;!8=jRNYR&_gge1cXr z&UL-I&etS0#+!pYF}{h^Lj!cdNf?B2&>;`kU=?1658wveg3sV<_y)d(@8Em51HZs; z@H_kgf5P7w!E&rX39E5G9>9axjEC_EwqZM-z|+`^3GBnOcmaoS7)Njlr_sb`aTYyX z#ua=KU&7b$ZG0Es!}swzevCKq7Jh=C;}>FSB?UYO#JJGnm((jJF}OY}8NC;YQ6lls ze@fzyJ2`&UH4oJ8KG4|Q(th-@`1<R+>xFG#su&}m9RY_AO#uo4DnVKw-K*^13h!aU z%vg{(E39J8w~j>{B*KG9{!nR(9+HV+hC<sEeMFL2iO{u1+hoF)l?q*_@~A|BvNECV zR!+!-FpCInk8)ZfQd#+0eVw|eH=!sD_&-W6LT*doK7yO@6~Xos{0zSmXnzr8K!EK+ z)d#Er8?gyn39@$Vz%J~;Qy3@EIA-VYDICOcoWM!EM6k^eY_n*gjd@(aMO-52UdC7O zD!z)>a24Mm^xpB|`%r+jj@y|6XhP!kV%+AFS=(~#X__nGxzRiv-QO7~72&D;{QvmY z_y6~I62j=h3~ciZV5C3UpP(dcwGHsIc8uy}s=RQ!6(M~WYBpR1&^S1b`?fJM<v#I1 dt_bP7(!B3V@?W|L2>1Wsv={FGoWt!}{sA3+#h(BG literal 0 HcmV?d00001 diff --git a/src/main/.DS_Store b/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..110d569ef8f1d911208d2dfd3c8f85910d7d595c GIT binary patch literal 8196 zcmeI1O>Epm6vyA&eA#Z3OhVc?+pkrYr~%S6U$kjy+RY}QMzl0)zSES{yEci5V~4dj zn<fM;96*I$!#5l_P@$e^;lKd|;?fgH5Q)MCao~c00~fBm@pz+V(_8_y9?A2@^WIy} z`}-GL;{X6AvwAy#3IGxv+_D|i-KB9qKen_;FjGbrDIZ_~7E(EPA!RwKEz#jbs6ePd zs6ePds6eQ||3LwIXY(d)^WGQUun!do6}T@I;LnE`9o!}Yn-|u9bWrDS0mzopwBKk< z`v5;D7T82!^TPV6^qXS$fI%t-TMQKG<d5-ivWdXvg%#<5A{{WeG6p*o^si2NF+UtI zA#B)(3WN%5Re<l^%OM8_q(Cd$zu!tNSf=Z>wf%sRlG3vB3Q1BVrBb;#H0$JsJk86x zNiB1MpABl>Y$_NJJC3z6)>5OUk(*|9eU9yErfp>WWK%aNWNOT`btji}vbOH}zcVBp zk|ay=G^<}(>Fn-oi5+cUZHcXPAM2oD+mY2(S*mYp?-{r>e|dT3`PCQR6lG!XXn^XX zGT$n$QFqf;idM-JHWhEVi+$qbMI=)w{&t~wS=pgJQKy_9H`9(iWG)-itlFj82k3M# zV=PjgV`<0A&fD%Zt4V8CI%{d3(Q8>e*d6zbC6A9LT_@x9`GM1nWnJUEL2>4y(NEEo zTFZaw+=6F1wmWKMT(a>*o2W^?zH?XfK)m@-$I%nL>y=g2OsQ4s#uiQ2Oj*WA&eXlx z3C&F#wr<)plcc8Yna`L;My|m%dDzzGjdfO4UAennRmZa_^SP|)U1o7f@@Mz#Rh227 zR&mzRd6v#Tm1N%&+pDS<xTh~;P_G9G4>qaFuuC;DEeL$*VMQ69qua_{S){feR@4zo zOBoi^WpSO(E=3(%6s55zgURk=iaMTl=I3e2ZVk2s(>*6u^=W?PGn(t2TQF=|)ve(2 zNm|te_x0*JUy~G1GzU5{{z7ShM(BbQFbET%6XaK64PJ*2;5yud&){qL2EK*w;Cr|Y zzrb(sJNyBE!rxem<ye6d*5E$ej|Z?B58+{K!*)E5r?3~3*oSBEJPzXsj^Z@Vpo!1o z9D2Bld3+IH!q@O^d>7xt_wgEjj5qKmeuAIl7h-9V0;U7vywKy9G%BVs_>>kIyBm#B zqVeE=O5=|^If6B{57h12A8&4HKk`^&;}#a(v`t*yiIUHc0K^BU0EU2-Ky8TbQTA<z z_z0n9EJ>UfR<Z6!$D)lAA;Kj8RB4JHl!;@8!rK&mM3PuU_*$cFGNH>#gs)S1R3b=O znecWi$7RBpl?rc<a!MjvS^0WHy}G+MsVEHiUzL0ZcH2Vt5!`^U2)Li%XZV$1`-?yW zf~*QvAF@V_V-vO#Xzkd6UD$&sF+s3#)Xw5lIEWKCiBouyfSV=Y=FmbLbGU@dxI*B) zjIZDod=;<a8oojJz2gJ;p@3@xxzh#MgvD#c$Sn?KY|F7{Xug2y=9KX4-cg`Ll%n$e z|Kr<#|G#$%4l4;22o>0(0G9R-^(Se1yGK6XYscugL<es?E-$Q~LY==IC+ly=$!`3^ kkj60z<vEGK=7pshYXAC&fbjkA>+WkGzW+D0xZei<0P5$>0{{R3 literal 0 HcmV?d00001 diff --git a/src/main/resources/.gitignore b/src/main/resources/.gitignore new file mode 100644 index 0000000..e9eccc4 --- /dev/null +++ b/src/main/resources/.gitignore @@ -0,0 +1 @@ +/a_little_config.txt diff --git a/src/main/resources/a_little_config.txt b/src/main/resources/a_little_config.txt index bfdbd6f..8eb5046 100644 --- a/src/main/resources/a_little_config.txt +++ b/src/main/resources/a_little_config.txt @@ -1,13 +1,13 @@ -#jdbcUrl = jdbc:mysql://123.56.186.144:3306/bbt-test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull -#user = bbt -#password =bbt123 -#devMode = true - -jdbcUrl = jdbc:mysql://rm-bp12tm7y208td7cm9o.mysql.rds.aliyuncs.com:3306/yancolad?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull -user = adtest -password =ad--Test +jdbcUrl = jdbc:mysql://127.0.0.1:3306/fair?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull +user = root +password = devMode = true +#jdbcUrl = jdbc:mysql://rm-bp12tm7y208td7cm9o.mysql.rds.aliyuncs.com:3306/yancolad?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull +#user = adtest +#password =ad--Test +#devMode = true + ##这个路径请定位到项目中的view文件夹所在的文件夹的路径(WEB-INF/view) codeBaseTemplatePath=/Users/tianpengtech/git/fair/src/main/webapp/WEB-INF/view diff --git a/src/main/webapp/.DS_Store b/src/main/webapp/.DS_Store index 455f5e4a8bd3c1ea1d4614f05d197fb8c9ab2fad..1fc13c97ba39f1701cc4f76084555c508b73fa1f 100644 GIT binary patch delta 112 zcmZp1XmOa}&&a+pU^hP_`(z%0Ka32UIR!0QRd^Xn7!nzZ8L}DTfvi-9T!sRM9H0o0 col=~fla!yI!?>|<A>(Ft32QbYRnKDt09W1}b^rhX delta 38 ucmZp1XmOa}&&akhU^hP_+hiVrKa7l<IR!0QH<lb_+{`Xv&9<@R5F-HRCkx*I diff --git a/src/main/webapp/assets/.DS_Store b/src/main/webapp/assets/.DS_Store index 23576507f6aba30a3348fa50c49f98477f1d233c..4a604402606ae1716cadb61482c99ee005a15282 100644 GIT binary patch delta 14 VcmZp1XmQxUBFM<FnN{#V9{?cR1SJ3f delta 14 VcmZp1XmQxUBFM<NnN{#V9{?cX1SS9g diff --git a/src/main/webapp/assets/front/.DS_Store b/src/main/webapp/assets/front/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e6e63968fa8e32ee1d84835214227446ad45a69c GIT binary patch literal 8196 zcmeI1O>Epm6vy97($teS%_QW**|e}Cgd`=De9(Nfq-;JK5@>1ZCQX_aHr}<<SU7fA zdpBRCq`;Aa1QY=W5aNJnxNztJAt6ps!3Cj6r3WquIB?<00ReA3-q1Fi3kRyI9?A2@ z^WIy}{Qa{>;{^ch&**IcDgY>S2+Ma+m8S^5I5w4npr@EDQa+@tq~lnkH*b6p9-2^r zP=Qc^P=Qc^P=Q;h0Ik`gC|j)i(i_&H0-*wTqypmo5T!%dSYTJB^<N!S`C9<8MbzyV zYID&b8x3qMu&dINhYHG6vN9EeEd$DQ>W>C-vB0iME7Jjk%?Aco#$d;R{?+OCqkcGG zOxmyx6$lmBtbo|N7s5OkkksAl_wRleB)|m|JTQ{;?p)Gxk`#U=IcJ%!*V=j&3kr+2 z6>nFR5~ZZH<mvc~GavUfFXQ%W>C@uuxaQ3ygZ3zW8rW!S$&;orpWu}Pj_qltZKVBV zQ#UB&%(!Xm&V0X<v31w~ow#%;3R75u*DNo0ba%8wyV_P-qRZVq?bK}TTv=gCO+#Dn z$kgoO((>~w=iZjH#o&zrWjD?K9XeO!)c>95G^rpyVu++oPRq>>ND&IsIT3!yiNM$n zb*S>O;RNRy*EnHVnrCK>LCrJV1TS+*jggdNA5R-un)!Iju`;tZdCF6omC8`C(Pvq4 zbIEWgJY&HVtx4BOdjo#pgh{!gFTpEB{;@gFbZqyek#@;4wzjh>a!-BJgY8|9^sSff zD&wqzRgPy(*GyW**u1HGGp95+W!SoDpPeK%ZO@!GjWjFAi)_@^W{q{etE{xTMpY*= zN%Ogk=`HelMe%#<cB|}+P9r?(=psw!mlfuFqPtb~wD1h14XX7Z;l2iyjk+{it_6Y3 zdl?&jmToI|nM~dH5L3r2EooR>XYx874>NT<E2qSt2s*oam^zViW@l;0ZaKCD-MxoY z^%-&HBbw_Sn=@=0)s^7#{WPjm!q=zkVoXYXtV!Pc`dF)MaIxOhLJJ&%A((^|*aX5W zZ~<P0ci}@=gHPde_zJ#;Z{S<_4z9sZ@H6}ZzryeEC;SC}BOt>nti~FQVgoi}6E<Tz zc3}@5z=Jr5kK++MicjJ=CQ!p9rqIF+F5n_A;Y;{BzKIv{Eqot8#!I+{pWtQuLXNB; zhwF$u&(-)Pwek@eJeCFH`G|}Vk&U;6$ZI<VhUFD^RaV_y-_+99c`&wd8*jRCH?Va* zPCi2t5+9x%91>W9wKh`6_H2du7~y6tD1sTjecg|aM($Mz6R!BDtRd3Kh-Hq_+Yos` zQFwv$?TfTB!j~6HUkBT-5U6~c^melYj8Nu9(%Z`(Rft$#yk1+QR`>NY#z8z;EDw5H zg7*Pjg3k!L@8K%^NWlF@u>C=x6(jdSi(nn@!TSleX55P{xF0*Qn}8Fz9mXLX#;5QE zj^Y?WH$~8;P{(O>a1PVx5`5?I1w4;0;>&meUn2zH@F9Fp0=9wOa1J<W@uPg$W#ehv za_qC@%i(%sT6lIFC{QTJsEYmn;jO>_-v%=YhZrglD)3(wz@owUU_WJV^)45C?I;~n zbciD2R;Be*sPebtWc}?p*^NH{sU4+IkrNB-s<hNY<$wPW5U&5>`tOr>XIK9K)?V6? literal 0 HcmV?d00001 diff --git a/src/main/webapp/assets/front/web/.DS_Store b/src/main/webapp/assets/front/web/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..555d61923b7647259e280b4606c688962a752b91 GIT binary patch literal 6148 zcmeHKI|>3p3{6x-u(7n9D|mxJ^aNf&)J6~#KmAso%cJ@7L0DEB!A4#nc{7>3S@sp1 zjfm*{wwsAeL}Uavl)Htl*|~YgdYMrm9Cw`Ly1Q%-o8$4&seYd@?ockWm9y->;J?3> zSt>vUr~nn90#x9W0@izBqj4Z36`%rC;H7|l9}3*CCN_co=|J!i060L}4QrnzfW;EP zn%D#)1Jj@agQ_`VXwZ=_SyvOAz@Urf@S*u+%?U;Q>A1gmxo8b!qyki+tw2Av6YKv= z_=owwP2!FUP=UWvKnIJ}VvbkJ-r9LN>$L^GhFi@8Zicl}5WF1&y&Yp??Re@%QCDn@ X^P1QMIvshZ1Nk#xy3nY=uN8O#MZ^`c literal 0 HcmV?d00001 diff --git a/src/main/webapp/assets/front/web_site/.DS_Store b/src/main/webapp/assets/front/web_site/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..db0477ff1f67d83b40089cdbe92a411233cc43cd GIT binary patch literal 8196 zcmeI1O;8+F5P-Y+otXr9APK|fZ;O=*Dj_UjLSjgk1+7pfh6?|LNM?5?Ffz>G&g?D$ zvCxB-nk)Y6!GkF)Clft*(9-gflU6BJMlY5JFP3`n;?;ihW+^s=t6Ists(Jn1>+YG? zJs&gM0{~z$tH%LU0Fdb5lI@`GE{*H?v89y+E9E4S`~lol-d#vpPHKy7xDaL_%s`ld zFau!*!VLUBGC=Qa-lT2b`$8M`VFtns+?N^P&xa@-TqXj!Dy0ADpw2G=NS4vE-)KyA zfbSCxWFnBOLi(<BPEkEz;EF+sfx?~iQEpB$5y({`g*%{d2Mn%^L4|_;)yXgFn*%0< z4ErzxVFtElfY<KjV8T3TFjG{&-%2f5rt7u0|9~Z>W#tu>lB7sVm2z=t*2xcfnwNEx zTIK?u4Qk$ODi{wtj<qq?QlqAkpJw%aj_qltZDf3BQ#Z(DYRt5CC!ch(w(k1p84?Of zk|lYXH7qZ8c6YW$kH%M8qs!gLI%wE_WMxH`8k*xh1DEEnEG<8`^8A}3C=4D9P;*C+ zZxu&)S$ESZ+9NmL6u9N)`oxEel1w4++l9boWrzAiy>fcoOgr|FxnxYU8kgc8py^=7 z$We@AX~)XW+wL^0O>0&<YiXX*Ygydb9ruhykB=r@C*$?`hSQ8?UE{n#c4p4#Cu?%8 z<7Yaz;F*r?jv5)4WGvAx;*qcK+!Z+xYdO?$^hED^Rdo$h>XiDioave=%NWU<x;Hza zxoN}JO?zgNGHH9}Wz)#WwYVk^+uFRb&Z=vwb~mW%cs6A|n>D>FEG9|*>Ylx-GNscl z&N@2x(%Gky>}#TXRrLbb^kod{^}yl5W>pz>DJG@`h7UcgD8qAfOPMPR*S5ooI$~)l z!(zHDuG872sAD-18hbKW>^`Qb<7sDpp0@1PVr#J6b5d2G=2t$Wx!$=2!=_!`3ND|d zT}^OZudeewNwGvrkSE4pC5_MoU2p;hVFGl>!&O*=*Wm-W4maU5_!_=}Z{a)m9&W=g z@EiONf54ycH<n=qR-%NpxDWT^0c^oTco^F;j>qv7_F@wI@C=^EVI09xoW>b6@fn;$ z4_9y%U%(gfHGCW2#rN=iyoMj+4ZMk;;OF>-*jh;e(E%|p^!O!>idhUkqLqx@jl~GD zc<?`E@yDGUz}mV8>UZsrwY0{MJeJtFfp^@pBC0ln<kKVY@UbaiAy6eu8zXy^ecJ&( zLZBIo5~qb#uKU)}NRvc>Fv*`P&5?sLQOr<in<I}%5-Sn9wn)27;IdMo>r@_<2vJrp zwB5>anIL9mLffO9l89ASvEJCA?(R)03IqN(C2xXmTjV~18}Jq3_7nUJzY=PH5oSP$ zRio-7)`T%^#x}w%jvd&AJ$Momgc=9!EIx&UIDwNmg%=68S;B1&EwnL@i@1c#gxyQ{ zGQNVZ;#FM3HweCWeEdEXXl(#@x`3LHc&!+?+)&209D9aV3y2mwgtL1w1EnG;mDm4| zZ~y)OUJN~qDa=5afgl4|)<4vrq{(&<e_m@x>9|A(Z`^KGNZ*AzzZ@s&m*XTi{$WVt kD4BAfL?Bm%q!nua`iB7eVWEWY|Dqq9;rri5@xJQ*0lTrtr2qf` literal 0 HcmV?d00001 diff --git a/src/main/webapp/assets/front/web_site/imags/.DS_Store b/src/main/webapp/assets/front/web_site/imags/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2f7a85c46d82cf54de46b0674571e63c2d2864a8 GIT binary patch literal 8196 zcmeI1!EVz)5QhIPt*}#7N>7xVk6b`1aN}Y{<-max4**UY0wRq|nus2A;T?Dd-i$jB zQ2v=+RqJ?H>ZwA_th77UdVbID=drCx0Jzcm{1i9=P_T;~9&$)DIWN7}_QK3lT1P!F zdpB<<<9R#o`PzgLFak!v2p9n)@P82CH(Oef`R@C(HW~pVu#*Jj{ZO%st%KcotFI0Y zS_07Sb6OjZSqG@53bqb*<E=`0O<z5@Aa$X{a9+;ymAKQ^!EU_uayT!C3z1!@P@G1m zu2Ofn+FKiqfDz~uklOtKr+9%&EIReOJV<ZYpWSFv=>cA5Jb(8*U!^_Wlb+}6jOWiS z&mkI&(PE7i`xTz!f-_&a?&Rv--!1*&mOiQ4YqnGa#%vg4fhm^hNXqF~#OVkVu5-b4 zHazmHO-6%oi<QT!Tr$>2#+6;l{-(57>DbCMzCwY|N+q*aCsbqq5;MkFVxG$a<(O7v zvOyW96`8CMg06@Nmb&kA?)*Bx?~Y;^DTLij39d*lOTMEoNkH;zN}E&&xsGBG6mx1a zPmr+dXbNgtuB}bS5ON*=<J%m+V?HR!>xkrIy~1TWp5&j4y$5(t3QK(Bo^lz)C%B_2 z`R@3l`94iYQF3vV65ln?<^HBw3%6Kt#Qb0L?p*LLuP|cI+*c(SD+l<&C=;%*p(+_o znf-~F@e#3R1RgknM}B`NQvbir|Nj5LDcJUmz-|+8`)41{Mr06b>mCiMwJY{d?9#+< t<E=_KXgN-+<v8u_ABH@x=qj2z*p0WGVY~Mq0y1@uv+uv&4;yxaz&{rHbiDuo literal 0 HcmV?d00001 diff --git a/src/main/webapp/task_template/.DS_Store b/src/main/webapp/task_template/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7eca00767dcebfaca4d061488240a92c23b44ae2 GIT binary patch literal 6148 zcmeHKI}XAy47C9vB$kehxdJzc5S)MuAYcSKAofn2i=*-U89;>%2GDcmyu|TK)i=bo zi0I<7pNljiGJzY))rP*=zIo3E8Brh{XS8zKpLd6C+a7w^uLH&%%MQ#Vo(H~d(5L_v zpaN8Y3Q&QME0862GX40;Jdg@dfnQg^?uP<5tchKqUmX~{1ptl^cEj9z31G1RuqJka zh`=<cz@Tcj7#eiMOXk(YE->h#*?efeS+he?e>=`Eo-SGgIZ^>C@T|ZvmW|c_75q*A z|4ibF3Q&Q+Qb0$`^>Tqv%G%odIIFb<zJXiL4Q__HQ!scr26{Qh!piZ?lOnI!9Q!q~ U3v@c-P6zU5z;vNefp05t2c9Vvp8x;= literal 0 HcmV?d00001 diff --git a/src/main/webapp/task_template/common/.DS_Store b/src/main/webapp/task_template/common/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..cbf9ce2f5606f2ec8e9da4a923b1306d7d64d602 GIT binary patch literal 6148 zcmeH~O>P1)427Qyl`3_^l4Uj=pf`vRJpmWsSEv#d3&cK0=h^Xwq3dddo+anSPCP%~ zVloC`%iG}#m;v~pyJF$Pz>M)be(;MePB<Q}`}6K{IeQv!xz__aukpB^%MuX~0TB=Z z5fFh95r{*a=l|!3o=J})0wORD0{(p{bk~~Ny2hu2L$m<YDbrz`M=wDwo}kv$)|DBW zW%poNYSD&xKFX;j_tn(awU@)P`LMjRc^5;oUJfe^XjVfsh=2$T2uylB^Yj0k{#XA$ zC{ZW^BJg4aY`R*nmVBu^Tc2Lf^P9~2ywRz#ox{UV00TdY=kzeH7oSjTYU|1jO+NyG KL4yeVD}g&<yc2E! literal 0 HcmV?d00001 -- Gitee From b018a7c41820958c3d948edafae986b5c165f813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Wed, 17 Jan 2018 04:58:04 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=BF=9E=E6=8E=A5=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/a_little_config.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/resources/a_little_config.txt b/src/main/resources/a_little_config.txt index 8eb5046..83c8b2f 100644 --- a/src/main/resources/a_little_config.txt +++ b/src/main/resources/a_little_config.txt @@ -1,13 +1,13 @@ -jdbcUrl = jdbc:mysql://127.0.0.1:3306/fair?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull -user = root -password = -devMode = true - -#jdbcUrl = jdbc:mysql://rm-bp12tm7y208td7cm9o.mysql.rds.aliyuncs.com:3306/yancolad?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull -#user = adtest -#password =ad--Test +#jdbcUrl = jdbc:mysql://127.0.0.1:3306/fair?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull +#user = root +#password = #devMode = true +jdbcUrl = jdbc:mysql://rm-bp12tm7y208td7cm9o.mysql.rds.aliyuncs.com:3306/yancolad?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull +user = adtest +password =ad--Test +devMode = true + ##这个路径请定位到项目中的view文件夹所在的文件夹的路径(WEB-INF/view) codeBaseTemplatePath=/Users/tianpengtech/git/fair/src/main/webapp/WEB-INF/view -- Gitee From a4b45097dc56c892dcaab075648da3fc0be2cf2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Wed, 17 Jan 2018 05:05:22 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E8=AE=BE=E5=AE=9A=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tianpengtech/admin/task/TaskAdminController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java index 3126286..d0b325e 100644 --- a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java +++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java @@ -198,8 +198,12 @@ public class TaskAdminController extends AbstractAdminController{ //if(SysConfigDao.ME.isSendTaskSMS()){ //发送短信 - SendSmsMsg.sendPayFeeInfo(fair.getStr(Fair.MOIBILE),task.getStr(Task.TASK_TITLE), + + if(fair.getInt(Fair.SMS_SET)==1){ + SendSmsMsg.sendPayFeeInfo(fair.getStr(Fair.MOIBILE),task.getStr(Task.TASK_TITLE), taskWh.getLong(TaskWh.CLICK_NUM)+"", acturalFee+"",SendSmsMsg.TEMPLATE_PAY_FEE); + } + //} renderJson(JsonUtil.printSuccess("操作成功")); return; -- Gitee From eadd1774520ad10cba85a9b449ae7a3fb3a2611c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Wed, 17 Jan 2018 05:31:59 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E6=89=93=E5=BC=80=E7=83=AD=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tianpengtech/front/mobile/login/MobileLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java index d275887..48a9004 100644 --- a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java +++ b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java @@ -213,7 +213,7 @@ public class MobileLoginController extends BaseController { public void upateVersion(){ R r = R.ok(); - r.put("showUpdate", false); + r.put("showUpdate", true); r.put("showInvite", false); renderJson(r); } -- Gitee From d75774e6955bbe398ab8d4c05cbe467c06bc5e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Thu, 18 Jan 2018 07:41:07 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fairbankno/FairBankNoAdminController.java | 3 ++ .../common/model/fairbankno/FairBankNo.java | 1 + .../tianpengtech/common/util/push/Jpush.java | 2 +- .../mobile/bankno/MobileBanknoController.java | 1 + .../mobile/bankno/MobileBanknoService.java | 27 +++++++++++--- .../passport/MobilePassportController.java | 1 + .../front/mobile/task/MobileTaskService.java | 13 ++++--- .../admin/fairbankno/fairbankno-form.html | 37 +++++++------------ .../admin/fairbankno/fairbankno-list.html | 6 ++- 9 files changed, 54 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java b/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java index ce6897f..05e3498 100644 --- a/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java +++ b/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java @@ -34,6 +34,9 @@ public class FairBankNoAdminController extends AbstractAdminController{ @Override public void beforeQueryById(Model<?> model, int id) { + FairBankNo bankNo = FairBankNo.dao.findById(id); + long wh_id = bankNo.getLong(FairBankNo.WH_ID); + setAttr("fair", Fair.dao.findById(wh_id)); } @Override diff --git a/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java b/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java index a41a6dd..4e8d28e 100644 --- a/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java +++ b/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java @@ -24,6 +24,7 @@ public class FairBankNo extends AbstractBaseModel<FairBankNo> { public static final String CREATE_TIME = "create_time"; // 创建时间 public static final String REAL_NAME = "real_name"; // 真实姓名 public static final String ICON = "icon"; // 银行图标 + public static final String BRANCH = "branch"; // 银行图标 public static final int DEL_NO=0; diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java index 95a9546..8bad6e9 100644 --- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java +++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java @@ -29,7 +29,7 @@ public class Jpush { public final static String PUSH_MSG="msg"; public final static int LIVE_TIME=1*1000*60*10; - public final static boolean PRO_ENV=false; + public final static boolean PRO_ENV=true; public static void pushCustomContentToSomeOne(String alias,String ALERT,String type){ diff --git a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java index 9b582eb..048c45f 100644 --- a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java +++ b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java @@ -29,6 +29,7 @@ public class MobileBanknoController extends BaseController { param.put("bank",getPara("bank")); param.put("bank_no",getPara("bank_no")); param.put("real_name",getPara("real_name")); + param.put("branch",getPara("branch")); String icon = getPara("icon"); if(StringUtils.isNotEmpty(icon)){ icon = icon.substring(icon.lastIndexOf("/")+1); diff --git a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java index 7dc4a42..eca03b0 100644 --- a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java +++ b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java @@ -4,6 +4,7 @@ import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.ehcache.CacheKit; import com.tianpengtech.common.GlobalConfigConstant; import com.tianpengtech.common.model.fairbankno.FairBankNo; +import com.tianpengtech.common.model.fairwithdraw.FairWithdraw; import com.tianpengtech.front.mobile.common.util.R; import java.util.ArrayList; @@ -12,6 +13,8 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.lang.StringUtils; + /** * Created by ggd on 2017/7/26 0026. */ @@ -32,6 +35,7 @@ public class MobileBanknoService { String bank_no=param.get("bank_no"); String real_name=param.get("real_name"); String icon=param.get("icon"); + String branch=param.get("branch"); if (isBankNoExists(bank_no,Long.parseLong(wh_id))){ return R.fail("此银行卡已添加过"); } @@ -40,13 +44,16 @@ public class MobileBanknoService { if(!m.find()){ return R.fail("收款人姓名必须为中文"); } - + if(StringUtils.isEmpty(branch)){ + return R.fail("分行名称不能唯空"); + } FairBankNo fb = new FairBankNo(); fb.set(FairBankNo.WH_ID,wh_id); fb.set(FairBankNo.BANK,bank); fb.set(FairBankNo.BANK_NO,bank_no); fb.set(FairBankNo.REAL_NAME,real_name); fb.set(FairBankNo.ICON,icon); + fb.set(FairBankNo.BRANCH,branch); fb.save(); R r=R.ok("成功"); r.p("bankno",fb); @@ -64,10 +71,10 @@ public class MobileBanknoService { * @return */ public R findBankno(long id){ - String sql = String.format("select %s,%s,%s,%s,icon from %s where %s=? and %s=?", + String sql = String.format("select %s,%s,%s,%s,icon,branch from %s where %s=? and %s=?", FairBankNo.ID,FairBankNo.BANK,FairBankNo.REAL_NAME ,FairBankNo.BANK_NO,dao.tableName(),FairBankNo.DELETETAG,FairBankNo.WH_ID); - List<FairBankNo> list=dao.find(sql,0,id); + List<FairBankNo> list=dao.find(sql,FairBankNo.DEL_NO,id); for (FairBankNo fairBankNo : list) { fairBankNo.set(FairBankNo.ICON, domain+fairBankNo.getStr(FairBankNo.ICON)); } @@ -128,11 +135,21 @@ public class MobileBanknoService { public R unbindBankNo(int id ){ R r ; - boolean result = FairBankNo.dao.deleteById(id); + //检查是否在当前银行卡上有相关提现记录信息 + String sql="select * from "+FairWithdraw.dao.tableName()+ " where bank_id=? and status=? "; + FairWithdraw fairWithdraw = FairWithdraw.dao.findFirst(sql,id,FairWithdraw.STATUS_APPROVING); + + if(fairWithdraw!=null){ + return R.fail("当前银行卡上未处理的提现信息,暂时不能进行当前操作"); + } + + FairBankNo fairBankNo = FairBankNo.dao.findById(id); + fairBankNo.set(FairBankNo.DELETETAG, FairBankNo.DEL_YES); + boolean result = fairBankNo.update(); if(result){ r= R.ok("操作成功"); }else{ - r= R.ok("操作失败"); + r= R.fail("解绑操作失败,当前记录不存在"); } return r; } diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java index 957b3bf..159e85b 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java @@ -323,6 +323,7 @@ public class MobilePassportController extends BaseController{ String money = getPara("money"); String bankId = getPara("bankId"); String wdToken = getPara("wdToken"); + String branch = getPara("branch"); User user= UserUtil.getCurrentUser(getPara("token"),"ios"); if (StrKit.isBlank(wdToken)){ renderJson(R.fail("wdToken不能为空")); diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java index 397b119..2e04403 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java @@ -54,11 +54,12 @@ public class MobileTaskService { Task.ID, Task.TASK_TITLE, Task.TASK_START_TIME, Task.TASK_END_TIME, Task.TASK_DESCRIPTION, Task.TASK_PRICE, Task.WH_NUMBER); String sql = String.format( -// " from %s task where (task.%s in (?,?,?) and task.%s>?) and task.%s=? and task.%s=? " - " from %s task where (task.%s in (?,?)) and task.%s=? and task.%s=? " - + "and task.%s not in(select %s from %s tw where tw.%s=?) order by task.id desc", -// taskDao.tableName(), Task.STATUS, Task.TASK_START_TIME, Task.DELETETAG, Task.EXTENSION_TYPE, Task.ID, + " from %s task where (task.%s in (?,?,?) ) and task.%s=? and task.%s=? " +// " from %s task where (task.%s in (?,?)) and task.%s=? and task.%s=? " +// + "and task.%s not in(select %s from %s tw where tw.%s=?) order by task.id desc", + + " order by task.id desc", taskDao.tableName(), Task.STATUS, Task.DELETETAG, Task.EXTENSION_TYPE, Task.ID, +// taskDao.tableName(), Task.STATUS, Task.DELETETAG, Task.EXTENSION_TYPE, Task.ID, TaskWh.TASK_ID, TaskWh.dao.tableName(), TaskWh.WH_ID); String startDate = DateUtils.formateData(new Date(), DateUtils.YYMMdd_FORMAT); @@ -67,8 +68,8 @@ public class MobileTaskService { startDate = startDate + " 00:00:00"; Page<Task> page = taskDao.paginate(pageNum, length, s, sql, -// new Object[] { Task.STATUS_SUCCESS,Task.STATUS_START,Task.STATUS_COMPLETED, startDate, Task.DELETE_STATUS_NO, Task.EXT_TYPE_RL, uid }); - new Object[] { Task.STATUS_SUCCESS,Task.STATUS_COMPLETED,Task.DELETE_STATUS_NO, Task.EXT_TYPE_RL, uid }); + new Object[] { Task.STATUS_SUCCESS,Task.STATUS_START,Task.STATUS_COMPLETED, Task.DELETE_STATUS_NO, Task.EXT_TYPE_RL}); +// new Object[] { Task.STATUS_SUCCESS,Task.STATUS_COMPLETED,Task.DELETE_STATUS_NO, Task.EXT_TYPE_RL, uid }); page.getList().forEach(t -> { t.put("rece", t.getRece()); t.put("statusStr", t.status()); diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html index 8e9cc5e..5684a30 100644 --- a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html +++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html @@ -1,48 +1,39 @@ <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>网红ID:</label> - <div class="formControls col-xs-8 col-sm-9"> - <input type="text" class="input-text" value="#(fairbankno.wh_id??'')" - maxlength="50" placeholder="请输入网红ID..." id="wh_id" name="fairbankno.wh_id"> - </div> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>网红昵称:</label> + <div class="formControls col-xs-8 col-sm-9">#(fair.nick_name??'')</div> </div> <div class="row cl"> <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>银行名称:</label> <div class="formControls col-xs-8 col-sm-9"> - <input type="text" class="input-text" value="#(fairbankno.bank??'')" - maxlength="50" placeholder="请输入银行名称..." id="bank" name="fairbankno.bank"> + <input type="text" class="input-text" value="#(fairBankNo.bank??'')" readonly="readonly" + maxlength="50" placeholder="请输入银行名称..." id="bank" name="fairBankNo.bank"> </div> </div> <div class="row cl"> <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>银行卡号:</label> <div class="formControls col-xs-8 col-sm-9"> - <input type="text" class="input-text" value="#(fairbankno.bank_no??'')" - maxlength="50" placeholder="请输入银行卡号..." id="bank_no" name="fairbankno.bank_no"> - </div> - </div> - <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>删除标识:</label> - <div class="formControls col-xs-8 col-sm-9"> - <input type="text" class="input-text" value="#(fairbankno.deletetag??'')" - maxlength="50" placeholder="请输入删除标识..." id="deletetag" name="fairbankno.deletetag"> + <input type="text" class="input-text" value="#(fairBankNo.bank_no??'')" readonly="readonly" + maxlength="50" placeholder="请输入银行卡号..." id="bank_no" name="fairBankNo.bank_no"> </div> </div> <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>创建时间:</label> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>真实姓名:</label> <div class="formControls col-xs-8 col-sm-9"> - <input type="text" class="input-text" value="#(fairbankno.create_time??'')" - maxlength="50" placeholder="请输入创建时间..." id="create_time" name="fairbankno.create_time"> + <input type="text" class="input-text" value="#(fairBankNo.real_name??'')" readonly="readonly" + maxlength="50" placeholder="请输入真实姓名..." id="real_name" name="fairBankNo.real_name"> </div> </div> + <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>真实姓名:</label> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>支行名称:</label> <div class="formControls col-xs-8 col-sm-9"> - <input type="text" class="input-text" value="#(fairbankno.real_name??'')" - maxlength="50" placeholder="请输入真实姓名..." id="real_name" name="fairbankno.real_name"> + <input type="text" class="input-text" value="#(fairBankNo.branch??'')" + maxlength="50" placeholder="请输入真实姓名..." id="real_name" name="fairBankNo.branch"> </div> </div> <div class="row cl"> <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3"> - <input type="hidden" value="#(fairbankno.id??'')" id="id" name="fairbankno.id"> + <input type="hidden" value="#(fairBankNo.id??'')" id="id" name="fairBankNo.id"> <input class="btn btn-primary radius" type="submit" value=" 提交 "> </div> </div> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-list.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-list.html index 5451d3c..9654c21 100644 --- a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-list.html +++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-list.html @@ -26,9 +26,10 @@ { "data": "bank_no" }, { "data": "real_name" }, { "data": "create_time" }, + { "data": "branch" }, { "data": function(data){ - //var opt="<a href='javascript:;' onclick='edit("+data.id+")'>编辑</a>"+"|"; - var opt="<a href='javascript:;' onclick='showdetail("+data.id+")'>查看详情</a>"; + var opt="<a href='javascript:;' onclick='edit("+data.id+")'>编辑</a>"+"|"; + opt+="<a href='javascript:;' onclick='showdetail("+data.id+")'>查看详情</a>"; //opt+="<a href='javascript:;' onclick='del("+data.id+")'>删除</a>"; return opt; } @@ -103,6 +104,7 @@ <th>银行卡号</th> <th>真实姓名</th> <th>创建时间</th> + <th>分行名称</th> <th>操作</th> </tr> </thead> -- Gitee From 7f130d512991fdf4b9d638ecc8a8e4ae16aeec12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Thu, 18 Jan 2018 08:04:02 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=96=87=E6=A1=88?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html index 5684a30..a879437 100644 --- a/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html +++ b/src/main/webapp/WEB-INF/view/admin/fairbankno/fairbankno-form.html @@ -28,7 +28,7 @@ <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>支行名称:</label> <div class="formControls col-xs-8 col-sm-9"> <input type="text" class="input-text" value="#(fairBankNo.branch??'')" - maxlength="50" placeholder="请输入真实姓名..." id="real_name" name="fairBankNo.branch"> + maxlength="50" placeholder="请输入支行名称..." id="real_name" name="fairBankNo.branch"> </div> </div> <div class="row cl"> -- Gitee From c7e7240611d7ea845224e63a832ed9543b9bea89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Sun, 21 Jan 2018 00:57:35 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=95=B4=E6=94=B9?= =?UTF-8?q?=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/task/TaskAdminController.java | 15 ++--- .../common/model/dictionary/Dictionary.java | 3 +- .../tianpengtech/common/model/task/Task.java | 1 + .../pay/weixin/controller/PayController.java | 3 +- .../tianpengtech/common/util/push/Jpush.java | 4 +- .../mobile/bankno/MobileBanknoController.java | 47 ++++++++++++- .../mobile/bankno/MobileBanknoService.java | 40 +++++++++++ .../mobile/login/MobileLoginController.java | 2 +- .../front/mobile/task/MobileTaskService.java | 67 ++++++++++--------- .../mobile/task/TaskCalculateService.java | 33 +++++++++ .../front/web/fair/FairWebController.java | 2 +- .../front/web/task/TaskService.java | 26 +++++-- .../front/web/task/TaskWebController.java | 11 +-- .../WEB-INF/view/admin/task/task-fee.html | 4 +- .../WEB-INF/view/admin/task/task-list.html | 2 +- .../view/web/task/second-task-step.html | 7 +- .../WEB-INF/view/web/task/task_add_new.html | 11 +-- .../WEB-INF/view/web/task/task_fair_new.html | 6 +- .../WEB-INF/view/web/task/task_success.html | 8 ++- .../front/web/script/task-second-step.js | 29 ++++---- .../assets/front/web/script/task_fair.js | 4 +- .../assets/front/web/script/task_form.js | 54 ++++++++------- 22 files changed, 269 insertions(+), 110 deletions(-) create mode 100644 src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java index d0b325e..afa97ae 100644 --- a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java +++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java @@ -26,6 +26,7 @@ import com.tianpengtech.common.model.task.TaskWh; import com.tianpengtech.common.model.taskscreenshot.TaskScreenShot; import com.tianpengtech.common.util.JsonUtil; import com.tianpengtech.common.util.SendSmsMsg; +import com.tianpengtech.front.mobile.task.TaskCalculateService; /** * 路由配置地址:add("/admin/task", TaskAdminController.class, "/admin/task"); * 数据库映射地址:arp.addMapping(Task.dao.tableName(),Task.class); @@ -108,6 +109,7 @@ public class TaskAdminController extends AbstractAdminController{ Task task = (Task)results; task.set(Task.STATUS, task.status()); task.set(Task.EXTENSION_TYPE, task.type()); + task.set(Task.TASK_PRICE,"¥"+TaskCalculateService.ME.calculateTaskTotalFee(task)); } @@ -128,12 +130,10 @@ public class TaskAdminController extends AbstractAdminController{ if(taskWh!=null){ long click_num =taskWh.getLong(TaskWh.CLICK_NUM); Task task = Task.dao.findById(task_id); - actualFee = click_num *0.3; - actualFee = (actualFee>task.getDouble(Task.TASK_PRICE))?task.getDouble(Task.TASK_PRICE):actualFee; - int actualFeeInt = (int)actualFee; - setAttr("actualFee",actualFeeInt); + setAttr("actualFee",TaskCalculateService.ME.IShouldPayHowMuchMoney(click_num, task)); setAttr("click_num",click_num); setAttr("task",task); + setAttr("totalFee",TaskCalculateService.ME.calculateTaskTotalFee(task)); }else{ setAttr("click_num",0); setAttr("actualFee",(int)actualFee); @@ -150,15 +150,12 @@ public class TaskAdminController extends AbstractAdminController{ @Before(Tx.class) public void accept(){ int task_id = getParaToInt("task_id"); -// int task_id = 3044; int fair_id = getParaToInt("fair_id"); -// int fair_id = 88; String fee = getPara("price"); String sql="select * from "+TaskWh.dao.tableName()+" where task_id=? and wh_id=? limit 1"; TaskWh taskWh = TaskWh.dao.findFirst(sql,task_id,fair_id); int status = taskWh.getInt(TaskWh.STATUS); -// int status = 5; if(status==Task.STATUS_COMPLETED){ renderJson(JsonUtil.printError("当前任务已经被结算验收,请勿重复操作")); return; @@ -168,11 +165,11 @@ public class TaskAdminController extends AbstractAdminController{ Task task = Task.dao.findById(task_id); Fair fair = Fair.dao.findById(fair_id); - final Float price=task.getFloat(Task.TASK_PRICE); + final Float price=task.getFloat(Task.TOTAL_FEE); final Float acturalFee=Float.parseFloat(fee); if(acturalFee>price){ - renderJson(JsonUtil.printError("实际支付金额不允许超过任务单价")); + renderJson(JsonUtil.printError("实际支付金额不允许超过任务预算")); return; } diff --git a/src/main/java/com/tianpengtech/common/model/dictionary/Dictionary.java b/src/main/java/com/tianpengtech/common/model/dictionary/Dictionary.java index 11926e7..d3daae1 100644 --- a/src/main/java/com/tianpengtech/common/model/dictionary/Dictionary.java +++ b/src/main/java/com/tianpengtech/common/model/dictionary/Dictionary.java @@ -21,7 +21,8 @@ public class Dictionary extends AbstractBaseModel< Dictionary > { public static final String PID ="pid"; //父节点ID public static final String CODE ="code"; //数字字典的code值 public static final int CONST_PERMISSION_CODE=1000; - public static final int CONST_PRICE_CODE=2000; + public static final int CONST_PRICE_CODE=2000;//任务单价 + public static final int CONST_TOTAL_PRICE_CODE=2001;//任务预算 public static final int WEB_SITE_LABEL=10057; public static final int SYS_APPLY_NUM=1006;//系统设定网红每天任务报名数 public static final int EXTRA_FEE=1007;//指定网红额外收取费用 diff --git a/src/main/java/com/tianpengtech/common/model/task/Task.java b/src/main/java/com/tianpengtech/common/model/task/Task.java index ea6b1be..2522bc4 100644 --- a/src/main/java/com/tianpengtech/common/model/task/Task.java +++ b/src/main/java/com/tianpengtech/common/model/task/Task.java @@ -45,6 +45,7 @@ public class Task extends AbstractBaseModel<Task> { public static final String SUCCESS = "success"; // 是否完成 public static final String WEB_URL = "web_url"; // 推广链接 public static final String H5_TYPE = "h5_type"; // 是否有H5页面 + public static final String TOTAL_FEE = "total_fee"; // 任务预算 //白名单表 相关字段 diff --git a/src/main/java/com/tianpengtech/common/pay/weixin/controller/PayController.java b/src/main/java/com/tianpengtech/common/pay/weixin/controller/PayController.java index 0891f35..81066dc 100644 --- a/src/main/java/com/tianpengtech/common/pay/weixin/controller/PayController.java +++ b/src/main/java/com/tianpengtech/common/pay/weixin/controller/PayController.java @@ -87,7 +87,8 @@ public class PayController extends Controller { out_trade_no = out_trade_no + "_" + WxPayParamBuilder.randomInt(); int objId = getParaToInt("objId", 0); Task task = Task.dao.findById(objId); - double total_fee = task.getDouble(Task.TASK_PRICE)*task.getInt(Task.WH_NUMBER); +// double total_fee = task.getDouble(Task.TASK_PRICE)*task.getInt(Task.WH_NUMBER); + double total_fee = task.getDouble(Task.TOTAL_FEE); String name = task.getStr(Task.TASK_TITLE); name = "任务《"+name+"》付款"; total_fee = total_fee * 100; diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java index 8bad6e9..681558d 100644 --- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java +++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java @@ -230,8 +230,8 @@ public class Jpush { public static void main(String[] args) { // Jpush.pushCustomContentToAll("xxxxqqq!!",Jpush.PUSH_TASK); // Jpush.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG); - Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_MSG); -// Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_TASK); +// Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_MSG); + Jpush.pushMessageInfoToSomeOne("13262535273","我是服务器通知信息 我来了!!!",Jpush.PUSH_TASK); // Jpush.pushMessageInfoToAll("您的快递到了,请到楼下取",Jpush.PUSH_TASK); } } diff --git a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java index 048c45f..bc066b9 100644 --- a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java +++ b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java @@ -23,7 +23,7 @@ public class MobileBanknoController extends BaseController { /** * 保存银行卡信息 */ - @Before({MobileBanknoValidator.class,Tx.class}) + @Before({Tx.class}) public void save(){ Map<String,String> param = new HashMap<>(); param.put("bank",getPara("bank")); @@ -66,5 +66,50 @@ public class MobileBanknoController extends BaseController { R r=service.unbindBankNo(id); renderJson(r); } + + + public void queryBankCardById(){ + int id = getParaToInt(FairBankNo.ID,0); + FairBankNo bankNo = FairBankNo.dao.findById(id); + if(bankNo==null){ + R r = R.fail("当前银行卡信息记录不存在"); + renderJson(r); + return; + } + User user= UserUtil.getCurrentUser(getPara("token"),"ios"); + if(user.getLong(User.ID)!=bankNo.getLong(FairBankNo.WH_ID)){ + R r = R.fail("当前银行卡与当前登录人所属不一至,不允许当前操作"); + renderJson(r); + return; + } + R r = R.ok(); + r.p("result",bankNo); + renderJson(r); + return; + } + + + + public void updateBankNo(){ + Map<String,String> param = new HashMap<>(); + param.put("bank",getPara("bank")); + param.put("bank_no",getPara("bank_no")); + param.put("real_name",getPara("real_name")); + param.put("branch",getPara("branch")); + param.put("id",getPara("id")); + String icon = getPara("icon"); + if(StringUtils.isNotEmpty(icon)){ + icon = icon.substring(icon.lastIndexOf("/")+1); + } + param.put("icon",icon); + User user= UserUtil.getCurrentUser(getPara("token"),"ios"); + param.put("wh_id",user.getLong(User.ID)+""); + try { + R r=service.update(param); + renderJson(r); + } catch (Exception e) { + renderJson(R.fail("保存失败")); + } + } } diff --git a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java index eca03b0..834045e 100644 --- a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java +++ b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoService.java @@ -65,6 +65,46 @@ public class MobileBanknoService { } } + + public R update(Map<String,String> param) throws Exception{ + try{ + String wh_id=param.get("wh_id"); + String id= param.get("id"); + String bank=param.get("bank"); + String bank_no=param.get("bank_no"); + String real_name=param.get("real_name"); + String icon=param.get("icon"); + String branch=param.get("branch"); +// if (isBankNoExists(bank_no,Long.parseLong(wh_id))){ +// return R.fail("此银行卡已添加过"); +// } + String regex = "^[\\u4e00-\\u9fa5]*$"; + Matcher m = Pattern.compile(regex).matcher(real_name); + if(!m.find()){ + return R.fail("收款人姓名必须为中文"); + } + if(StringUtils.isEmpty(branch)){ + return R.fail("分行名称不能唯空"); + } + FairBankNo fb = new FairBankNo(); + fb.set(FairBankNo.ID, id); + fb.set(FairBankNo.WH_ID,wh_id); + fb.set(FairBankNo.BANK,bank); + fb.set(FairBankNo.BANK_NO,bank_no); + fb.set(FairBankNo.REAL_NAME,real_name); + fb.set(FairBankNo.ICON,icon); + fb.set(FairBankNo.BRANCH,branch); + fb.update(); + R r=R.ok("银行卡编辑保存成功"); + r.p("bankno",fb); + CacheKit.remove(FairBankNo.CACHE_NAME,"bankno_"+wh_id); + return r; + }catch (Exception e){ + e.printStackTrace(); + throw e; + } + } + /** * 获取某个人得银行卡列表 * @param id diff --git a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java index 48a9004..d275887 100644 --- a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java +++ b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java @@ -213,7 +213,7 @@ public class MobileLoginController extends BaseController { public void upateVersion(){ R r = R.ok(); - r.put("showUpdate", true); + r.put("showUpdate", false); r.put("showInvite", false); renderJson(r); } diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java index 2e04403..614a9cc 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java @@ -50,7 +50,7 @@ public class MobileTaskService { * @return */ public R taskIndex(int pageNum, int length, long uid) { - String s = String.format("select task.task_type, task.create_user, %s,%s,%s,%s,%s,%s,%s,%s ", Task.STATUS, + String s = String.format("select task.task_type,task.total_fee, task.create_user, %s,%s,%s,%s,%s,%s,%s,%s ", Task.STATUS, Task.ID, Task.TASK_TITLE, Task.TASK_START_TIME, Task.TASK_END_TIME, Task.TASK_DESCRIPTION, Task.TASK_PRICE, Task.WH_NUMBER); String sql = String.format( @@ -93,7 +93,7 @@ public class MobileTaskService { int priceLevel = fair.getInt(Fair.PRICE); boolean canApply = (priceLevel>=t.getDouble(Task.TASK_PRICE)); t.put("canApply", canApply); - + t.set("task_price",TaskCalculateService.ME.calculateTaskTotalFee(t)); t.set(Task.TASK_TITLE,XxxUtil.handleContent(t.getStr(Task.TASK_TITLE), 14)); t.set(Task.TASK_DESCRIPTION,XxxUtil.handleContent(t.getStr(Task.TASK_DESCRIPTION),103)); }); @@ -116,7 +116,7 @@ public class MobileTaskService { num = Db.queryLong(sql, taskId); } - num = (num>limitNum)?limitNum:num; + //num = (num>limitNum)?limitNum:num; return num; } @@ -144,7 +144,7 @@ public class MobileTaskService { */ public R findTask(int pageNum, int length, Map<String, Object> params) { List<Object> param = new ArrayList<>(); - String s = "select wh.status as wh_status, task.wh_number,task.task_type ,task.create_user,task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time "; + String s = "select wh.status as wh_status,task.total_fee, task.wh_number,task.task_type ,task.create_user,task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time "; StringBuffer sql = new StringBuffer(" from " + taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID + " left join " + Fair.dao.tableName() + " fair on fair." + Fair.ID + "=wh." + TaskWh.WH_ID); @@ -200,8 +200,9 @@ public class MobileTaskService { int type = t.getInt(Task.TASK_TYPE); - int total = (type == Task.EXT_TYPE_RL) ? t.getInt(Task.WH_NUMBER) : t.getInt(Task.WH_NUMBER); + int total = (type == Task.EXT_TYPE_RL) ? 200 : t.getInt(Task.WH_NUMBER); t.put("total", total); + t.set("task_price",TaskCalculateService.ME.calculateTaskTotalFee(t)); t.put("haveAccept", queryAcceptNum(t.getLong(Task.ID), type,t.getInt(Task.WH_NUMBER))); boolean result = TaskService.isExistFairTask(params.get("user") + "", t.getLong(Task.ID) + ""); t.put("isJoin", result); @@ -220,35 +221,37 @@ public class MobileTaskService { public R getTask(long id, long uid) { StringBuffer sql = new StringBuffer( - "select task.wh_number,task.task_type ,wh.reason ,wh.title as rec_title, wh.status as wh_status, wh.code, task.task_url, task.create_user, task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + "select task.total_fee,task.extension_type,task.wh_number,task.task_type ,wh.reason ,wh.title as rec_title, wh.status as wh_status, wh.code, task.task_url, task.create_user, task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID + " where wh." + TaskWh.TASK_ID + "=? and wh." + TaskWh.WH_ID + "=?"); Task task = taskDao.findFirst(sql.toString(), id, uid); + String url ="http://www.ele-young.com/platform/mission?id=" + id; +// String url ="http://192.168.1.101:8091/platform/mission?id=" + id; if (task == null) { sql = new StringBuffer( - "select task.wh_number,task.task_type, wh.reason , wh.code,task.task_url, task.create_user,task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + "select task.total_fee,task.extension_type,task.wh_number,task.task_type, wh.reason , wh.code,task.task_url, task.create_user,task.task_title,task.task_description,task.task_price,task.status as status,task.id as id,task.task_start_time,task.task_end_time,wh.click_num,wh.cvs_num,wh.id as whid,task.task_url from " + taskDao.tableName() + " task left join " + TaskWh.dao.tableName() + " wh on task." + Task.ID + "=wh." + TaskWh.TASK_ID + " where task." + Task.ID + "=?"); task = taskDao.findFirst(sql.toString(), id); - task.put("sumClick", 0); - task.put("sumCvs",0); + task.put("sumClick",task.getClick()); + task.put("sumCvs",task.getCvs()); task.put("click_num",0); task.put("cvs_num",0); task.put("actual_price",0); } else { -// task.put("sumClick", task.getClick()); -// task.put("sumCvs", task.getCvs()); - task.put("sumClick",task.getLong(TaskWh.CLICK_NUM)); - task.put("sumCvs", task.getLong(TaskWh.CVS_NUM)); + task.put("sumClick", task.getClick()); + task.put("sumCvs", task.getCvs()); +// task.put("sumClick",task.getLong(TaskWh.CLICK_NUM)); +// task.put("sumCvs", task.getLong(TaskWh.CVS_NUM)); task.put("click_num",task.getLong(TaskWh.CLICK_NUM)); task.put("cvs_num",task.getLong(TaskWh.CVS_NUM)); - long click_num =task.getLong(TaskWh.CLICK_NUM); - double actualFee = click_num *0.3; - actualFee = (actualFee>task.getDouble(Task.TASK_PRICE))?task.getDouble(Task.TASK_PRICE):actualFee; - int actualFeeInt= (int)actualFee; - task.put("actual_price",actualFeeInt); + task.put("actual_price",TaskCalculateService.ME.IShouldPayHowMuchMoney(click_num, task)); + if(task.getStr("code")!=null){ + url =url+ "&ucode=" + task.getStr("code"); + } } + task.set("task_price",TaskCalculateService.ME.calculateTaskTotalFee(task)); task.put("dateString", task.getDateString()); Authenticate auth = AuthenticateSerivce.ME.findAuthenticateByUserId(task.getInt(Task.CREATE_USER)); String companyName = (auth == null) ? "未知" : auth.getStr(Authenticate.COMPANY_NAME); @@ -258,20 +261,20 @@ public class MobileTaskService { task.put("company", companyName); task.put("companyId", companyId); task.put("companyLogo", logo); - String url ="http://www.ele-young.com/platform/mission?id=" + id; - if(task.getStr("code")!=null){ - url =url+ "&ucode=" + task.getStr("code"); - } +// + task.put("task_url", url); R r = R.ok(); r.p("task", task); task.put("acceptNum", 0); + + int wh_num = (task.getInt(Task.EXTENSION_TYPE)==Task.EXT_TYPE_RL)?200:task.getInt(Task.WH_NUMBER); // if (task.getInt("status")!=Task.STATUS_SUCCESS) { String fairs = String.format( - "select wh.descript as descript, wh.photo,wh.nick_name,wh.id as id,task.task_price,wt.cvs_num,wt.click_num,wt.wh_id from %s wt " + "select wt.code, wh.descript as descript, wh.photo,wh.nick_name,wh.id as id,task.task_price,wt.cvs_num,wt.click_num,wt.wh_id from %s wt " + "left join %s wh on wt.%s=wh.%s left join %s task on wt.%s=task.%s where wt.%s=? " - + "order by wt.%s desc limit "+ task.getInt(Task.WH_NUMBER), + + "order by wt.%s desc limit "+ wh_num, TaskWh.dao.tableName(), Fair.dao.tableName(), TaskWh.WH_ID, Fair.ID, Task.dao.tableName(), TaskWh.TASK_ID, Task.ID, TaskWh.TASK_ID, TaskWh.CVS_NUM); List<Fair> fairses = fairDao.find(fairs, id); @@ -286,12 +289,15 @@ public class MobileTaskService { String photo = ((f.getStr(Fair.PHOTO).equals("/upload/avatar/x.jpg")) ? defaultAvatar : f.getStr(Fair.PHOTO)); f.set(Fair.PHOTO, photo); - double actualFee=0; long click_num =f.getLong(TaskWh.CLICK_NUM); - actualFee = click_num *0.3; - actualFee = (actualFee>task.getDouble(Task.TASK_PRICE))?task.getDouble(Task.TASK_PRICE):actualFee; - int actualFeeInt = (int)actualFee; - f.put("task_price",actualFeeInt); + f.put("task_price",TaskCalculateService.ME.IShouldPayHowMuchMoney(click_num, task)); + + String fairUrl ="http://www.ele-young.com/platform/mission?id=" + id; +// String fairUrl ="http://192.168.1.101:8091/platform/mission?id=" + id; + if(f.getStr("code")!=null){ + fairUrl =fairUrl+ "&ucode=" + f.getStr("code"); + } + f.put("fairUrl",fairUrl); } r.p("fairs", fairses); int num = (fairses.isEmpty()) ? 0 : fairses.size(); @@ -360,8 +366,9 @@ public class MobileTaskService { return r; } + int wh_num = (task.getInt(Task.EXTENSION_TYPE)==Task.EXT_TYPE_RL)?200:task.getInt(Task.WH_NUMBER); List<TaskWh> taskWh= TaskService.queryFairApplyNumTask(taskId); - if(taskWh.size()>=task.getInt(Task.WH_NUMBER)){ + if(taskWh.size()>=wh_num){ r = R.fail("报名人数已经够了,感谢你的关注"); return r; } diff --git a/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java b/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java new file mode 100644 index 0000000..89c82e5 --- /dev/null +++ b/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java @@ -0,0 +1,33 @@ +package com.tianpengtech.front.mobile.task; + +import com.tianpengtech.common.model.task.Task; + +/** + * 任务费用计算相关类 + * @author tianpengtech + * + */ +public class TaskCalculateService { + + public static TaskCalculateService ME = new TaskCalculateService(); + /** + * 计算,每个人接受任务后通过点击数来计算任务费用 + * @param click_num + * @param task + * @return + */ + public int IShouldPayHowMuchMoney(long click_num,Task task){ + double actualFee=0; + actualFee = click_num *0.3; + double totoalFee = calculateTaskTotalFee(task); + actualFee = (actualFee>totoalFee)?totoalFee:actualFee; + 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; + return totoalFee; + } +} diff --git a/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java b/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java index 2a6fba9..f6fc3e1 100644 --- a/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java +++ b/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java @@ -34,7 +34,7 @@ public class FairWebController extends BaseController { setAttr("platform",dictionaryDao.readParents(10055)); setAttr("channel",dictionaryDao.readParents(10056)); setAttr("features",AppSettingDao.dao.getAppSettingByCategory(AppSetting.FANS)); - setAttr("prices",taskService.getPriceList()); + setAttr("prices",taskService.getTaskTotalPriceList()); render("fair_list.html"); } 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 4755167..25e2b2f 100644 --- a/src/main/java/com/tianpengtech/front/web/task/TaskService.java +++ b/src/main/java/com/tianpengtech/front/web/task/TaskService.java @@ -73,14 +73,17 @@ public class TaskService { public void save(Task task,String[] source) throws ValidateException{ int h5_type=task.getInt(Task.H5_TYPE); - float price= task.getFloat(Task.TASK_PRICE); +// float price= task.getFloat(Task.TASK_PRICE); + float totalFee= task.getFloat(Task.TOTAL_FEE); int extension_type=task.getInt(Task.EXTENSION_TYPE); String sql="select * from "+Authenticate.dao.tableName()+" where "+Authenticate.USER_ID+" =?"; Authenticate auth = Authenticate.dao.findFirst(sql, task.getLong(Task.CREATE_USER)); Date start = task.getDate(Task.TASK_START_TIME); Date end = task.getDate(Task.TASK_END_TIME); - + String endStr = DateUtils.formateData(end, DateUtils.YYMMdd_FORMAT); + endStr = endStr+" 23:59:59"; + end = DateUtils.string2Date(endStr, DateUtils.YYMMDDHHMMSS_FORMAT); Date now = new Date(); Validator validator = new Validator(); int status = (auth==null)?Authenticate.STATUS_FAILURE:auth.getInt(Authenticate.STATUS); @@ -93,12 +96,16 @@ public class TaskService { validator.addRule(new NumbericMustBeGreaterEqualThan(end.getTime(),start.getTime(),"任务结束日期必须在开始日期之后")); validator.addRule(new NumbericMustBeGreaterEqualThan(start.getTime(),now.getTime(),"任务开始时间必须在今天日期之后")); - validator.addRule(new StringMustBeRequired(price+"","任务酬劳不能为空")); - validator.addRule(new NumbericMustBeGreaterEqualThan((int)price,0,"请设置任务酬劳")); +// validator.addRule(new StringMustBeRequired(price+"","任务酬劳不能为空")); +// validator.addRule(new NumbericMustBeGreaterEqualThan((int)price,0,"请设置任务酬劳")); + validator.addRule(new StringMustBeRequired(totalFee+"","任务预算不能为空")); + validator.addRule(new NumbericMustBeGreaterEqualThan((int)totalFee,0,"请设置任务预算")); validator.addRule(new StringLengthBetween(task.getStr(Task.TASK_DESCRIPTION),"任务描述不能超过400字符",1,400)); + if(extension_type==Task.EXT_TYPE_ZD){ - validator.addRule(new NumbericMustBeLessEqualThan(task.getInt(Task.WH_NUMBER),2000,"主播数量不能超过2000个")); +// validator.addRule(new NumbericMustBeLessEqualThan(task.getInt(Task.WH_NUMBER),2000,"主播数量不能超过2000个")); + validator.addRule(new NumbericMustBeLessEqualThan(0,2000,"主播数量不能超过2000个")); } if(h5_type==2){ @@ -111,7 +118,7 @@ public class TaskService { }else{ task.set(Task.STATUS,Task.STATUS_APPROVING); } - + task.set(Task.TASK_END_TIME, end); task.save(); if (source!=null && source.length>0){ for (int i=0;i<source.length;i++) { @@ -482,7 +489,8 @@ public class TaskService { } public Map<String,Object> isShowQrCode(Task task,long uid){ - double taskPrice = task.getDouble(Task.TASK_PRICE)*task.getInt(Task.WH_NUMBER); +// double taskPrice = task.getDouble(Task.TASK_PRICE)*task.getInt(Task.WH_NUMBER); + double taskPrice = task.getDouble(Task.TOTAL_FEE); Map<String,Object> resultMap = new HashMap<String,Object>(); //假如任务为线下任务,则不出现付款二维码 if(task.getInt(Task.TASK_TYPE)==Task.TASK_TYPE_OFLINE){ @@ -537,6 +545,10 @@ public class TaskService { public List<Dictionary> getPriceList(){ return DictionaryDao.ME.readParents(Dictionary.CONST_PRICE_CODE); } + + public List<Dictionary> getTaskTotalPriceList(){ + return DictionaryDao.ME.readParents(Dictionary.CONST_TOTAL_PRICE_CODE); + } /** diff --git a/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java b/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java index 0de7a62..f001b16 100644 --- a/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java +++ b/src/main/java/com/tianpengtech/front/web/task/TaskWebController.java @@ -90,7 +90,8 @@ public class TaskWebController extends BaseController { return; } else if (auth.getInt(Authenticate.STATUS) == Authenticate.STATUS_SUCCESS) { setAttr("domain", QiNiuUtil.DOMAIN); - setAttr("priceList", service.getPriceList()); + //setAttr("priceList", service.getPriceList());改成通过预算来发布任务 + setAttr("totalPriceList", service.getTaskTotalPriceList()); render("task_add_new.html"); return; } else if (auth.getInt(Authenticate.STATUS) == Authenticate.STATUS_APPROVING) { @@ -157,7 +158,7 @@ public class TaskWebController extends BaseController { "select REGION_ID,REGION_NAME from region where PARENT_ID=1")); setAttr("platform", dictionaryDao.readParents(10055)); setAttr("channel",dictionaryDao.readParents(10056)); - setAttr("prices",service.getPriceList()); + setAttr("prices",service.getTaskTotalPriceList()); setAttr("feature", AppSettingDao.dao.getAppSettingByCategory(AppSetting.FANS)); render("task_fair_new.html"); @@ -188,6 +189,7 @@ public class TaskWebController extends BaseController { Ret ret = service.saveTaskWait(fairs, task); if (ret.isOk()) { Task temp = service.findTaskById(task); + temp.set(Task.WH_NUMBER, fairs.length).update(); setAttr("task",temp); setAttr("isShowQrCode",service.isShowQrCode(temp, user.getLong(User.ID))); setAttr("fairs", fairService.findByWhite(task)); @@ -429,7 +431,7 @@ public class TaskWebController extends BaseController { public void ts(){ - String task = "3104"; + String task = "3117"; Task temp = service.findTaskById(task); setAttr("task",temp); setAttr("isShowQrCode",service.isShowQrCode(temp, 12)); @@ -454,9 +456,10 @@ public class TaskWebController extends BaseController { } public void taskWh(){ - String task = "3041"; + String task = "3117"; Task temp = service.findTaskById(task); setAttr("taskObj",temp); + setAttr("task", task); render("task_fair_new.html"); } } diff --git a/src/main/webapp/WEB-INF/view/admin/task/task-fee.html b/src/main/webapp/WEB-INF/view/admin/task/task-fee.html index 5c92edf..927e58f 100644 --- a/src/main/webapp/WEB-INF/view/admin/task/task-fee.html +++ b/src/main/webapp/WEB-INF/view/admin/task/task-fee.html @@ -35,9 +35,9 @@ </div> </div> <div class="row cl"> - <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>任务金额</label> + <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>任务预算</label> <div class="formControls col-xs-8 col-sm-9"> - ¥#(task.task_price) + ¥#(totalFee??'0') </div> </div> <div class="row cl"> diff --git a/src/main/webapp/WEB-INF/view/admin/task/task-list.html b/src/main/webapp/WEB-INF/view/admin/task/task-list.html index d8a6ae6..2d69067 100644 --- a/src/main/webapp/WEB-INF/view/admin/task/task-list.html +++ b/src/main/webapp/WEB-INF/view/admin/task/task-list.html @@ -150,7 +150,7 @@ <th>任务标题</th> <th>任务开始时间</th> <th>任务结束时间</th> - <th>任务酬劳</th> + <th>任务预算</th> <th>任务状态</th> <th>推广方式</th> <th>主播人数</th> diff --git a/src/main/webapp/WEB-INF/view/web/task/second-task-step.html b/src/main/webapp/WEB-INF/view/web/task/second-task-step.html index c058f9d..47bd034 100644 --- a/src/main/webapp/WEB-INF/view/web/task/second-task-step.html +++ b/src/main/webapp/WEB-INF/view/web/task/second-task-step.html @@ -45,7 +45,8 @@ <input type="hidden" id="h5_type" name="task.h5_type" value="2" > <input type="hidden" id="task_title" name="task.task_title" > <input type="hidden" id="task_type" name="task.task_type"> - <input type="hidden" id="task_price" name="task.task_price"> + <!-- <input type="hidden" id="task_price" name="task.task_price"> --> + <input type="hidden" id="totalFee" name="task.total_fee"> <input type="hidden" id="task_start_time" name="task.task_start_time" > <input type="hidden" id="task_end_time" name="task.task_end_time" > <input type="hidden" id="task_description" name="task.task_description" > @@ -95,7 +96,7 @@ </div> </div> </div> - --# + <div class="m-row"> <div class="u-row-title">人数:</div> <div class="u-row-box" > @@ -106,7 +107,7 @@ </div> </div> </div> - + --# <div class="m-row"> <div class="u-row-title">表现形式:</div> <div class="u-row-box" id="bxxs"> diff --git a/src/main/webapp/WEB-INF/view/web/task/task_add_new.html b/src/main/webapp/WEB-INF/view/web/task/task_add_new.html index 2711ed9..e825dd4 100644 --- a/src/main/webapp/WEB-INF/view/web/task/task_add_new.html +++ b/src/main/webapp/WEB-INF/view/web/task/task_add_new.html @@ -45,6 +45,7 @@ </div> </div> </div> + #--业务要求 去除人数选择 <div class="m-row"> <div class="u-row-title">人数:</div> <div class="u-row-box" > @@ -55,20 +56,22 @@ </div> </div> </div> - + --# <div class="m-row"> - <div class="u-row-title">任务酬劳:</div> + <div class="u-row-title">任务预算:</div> <div class="u-row-box"> <div class="u-row-box-input"> <!--<input name="task.task_price" class="u-row-cell-input" style="flex:0;width:100px;color:#f96436;" />--> - <select name="task.task_price" class="u-row-cell-input" id="task_price"> + <select name="task.total_fee" class="u-row-cell-input" id="totalFee"> <option value="0">==请选择==</option> - #for(x:priceList) + #for(x:totalPriceList) <option class="" value="#(x.code)">#(x.name)</option> #end </select> + #-- <div class="u-row-cell-tip">元/人 </div> + --# <img class="task-price"src="#(contextPath)/assets/front/web/resources/ic_help.png" width="15"/> </div> </div> diff --git a/src/main/webapp/WEB-INF/view/web/task/task_fair_new.html b/src/main/webapp/WEB-INF/view/web/task/task_fair_new.html index 19255eb..cf7edd1 100644 --- a/src/main/webapp/WEB-INF/view/web/task/task_fair_new.html +++ b/src/main/webapp/WEB-INF/view/web/task/task_fair_new.html @@ -114,7 +114,8 @@ <div class="u-row-box"> <div class="u-row-box-list"> <ul class="u-row-cell-list"></ul> - <div class="u-row-box-num"><span class="box-num-panel">10</span>/#(taskObj.wh_number??1)<span>人</span></div> + #--<div class="u-row-box-num"><span class="box-num-panel">10</span>/#(taskObj.wh_number??1)<span>人</span></div>--# + <div class="u-row-box-num"><span class="box-num-panel">10</span>/10<span>人</span></div> <div class="u-row-box-hide">筛选<i></i></div> </div> </div> @@ -125,7 +126,8 @@ </div> </div> <div class="g-task-choice-list"> - <ul class="m-choice-list" data-num="#(taskObj.wh_number??1)"> + #--<ul class="m-choice-list" data-num="#(taskObj.wh_number??1)">--# + <ul class="m-choice-list" data-num="10"> </ul> <div class="m-choice-page" id="m_choice_page_container" style="display:flex;justify-content:center"> <div id="m_choice_page"></div> diff --git a/src/main/webapp/WEB-INF/view/web/task/task_success.html b/src/main/webapp/WEB-INF/view/web/task/task_success.html index b9a0bd6..72ea7e7 100644 --- a/src/main/webapp/WEB-INF/view/web/task/task_success.html +++ b/src/main/webapp/WEB-INF/view/web/task/task_success.html @@ -35,6 +35,7 @@ <div class="u-task-key">任务时间:</div> <div class="u-task-value">#(task.dateString)</div> </li> + #-- <li class="m-task-cell"> <div class="u-task-key">任务酬劳:</div> <div class="u-task-value">#(task.task_price)元/人</div> @@ -43,6 +44,7 @@ <div class="u-task-key">任务人数:</div> <div class="u-task-value">#(task.wh_number)人</div> </li> + --# <li class="m-task-cell"> <div class="u-task-key">推广类型:</div> <div class="u-task-value">#(task.type())</div> @@ -51,9 +53,9 @@ <div class="u-task-key">预计花费:</div> <div class="u-task-value"> #if(task.extension_type==1) - #(task.wh_number*task.task_price+task.wh_number*50)元(指定主播#(task.wh_number)人,额外收取#(task.wh_number*50)元) + #(task.total_fee+task.wh_number*50)元(指定主播#(task.wh_number)人,额外收取#(task.wh_number*50)元) #else - #(task.wh_number*task.task_price)元 + #(task.total_fee)元 #end </div> </li> @@ -117,7 +119,7 @@ <ul class="m-head-list"> #for(fair : fairs) <li style='width:110px'> - <a href="/h5/whAdMsg/Personinfo.html?userId=#(fair.id)" target="_blank"> + <a href="/h5/whAdMsg/Personinfo.html?callbacl_pos=#(fair.id)" target="_blank"> <div style="margin:10px;text-align:center"> <div class="avatar" style='background: url("#(fair.photo)??") center/cover no-repeat;''></div> <div style="margin-top:5px;font;font-weight: bold">#(fair.nick_name??"")</div> diff --git a/src/main/webapp/assets/front/web/script/task-second-step.js b/src/main/webapp/assets/front/web/script/task-second-step.js index aa55fcf..65b36be 100644 --- a/src/main/webapp/assets/front/web/script/task-second-step.js +++ b/src/main/webapp/assets/front/web/script/task-second-step.js @@ -130,7 +130,7 @@ function previewH5(url,fileId){ function checkParam(){ var extension_type =$("#extension_type").val(); var h5_type = $("#h5_type").val(); - var wh_number = $("#wh_number").val(); +// var wh_number = $("#wh_number").val(); if(!extension_type){ layer.alert("请选择推广类型"); return false; @@ -142,15 +142,15 @@ function checkParam(){ } //假如指定主播,人数不能超过10个人 - if(parseInt(wh_number)>10 && extension_type==1){ - layer.alert("当前推广方式为指定主播模式,只能设置最多10位"); - return false; - } - - if(parseInt(wh_number)>50 && extension_type==2){ - layer.alert("当前推广方式为主播认领模式,只能设置最多50位"); - return false; - } +// if(parseInt(wh_number)>10 && extension_type==1){ +// layer.alert("当前推广方式为指定主播模式,只能设置最多10位"); +// return false; +// } +// +// if(parseInt(wh_number)>50 && extension_type==2){ +// layer.alert("当前推广方式为主播认领模式,只能设置最多50位"); +// return false; +// } if(h5_type==2&&$("#uploaded").find('div').length < 1){ layer.alert("请选择要上传的素材"); @@ -180,7 +180,8 @@ function initTaskInfo(){ var taskStep2 = JSON.parse(onLineTask_step2); if(task && taskStep2){ - $("#wh_number").val(task.wh_number); +// $("#wh_number").val(task.wh_number); + $("#totalFee").val(task.total_fee); $("#task_title").val(task.task_title); $("#task_type").val(task.task_type); $("#task_price").val(task.task_price); @@ -234,7 +235,8 @@ function init(){ var tempStep2={ "extension_type":"2", "h5_type":"2", - "wh_number":task.wh_number, +// "wh_number":task.wh_number, + "total_fee":"", "web_url":"", "imags":"", "uploadImags":"", @@ -329,7 +331,8 @@ function setFairInfo(){ if(result){ var extension_type =$("#extension_type").val(); var h5_type = $("#h5_type").val(); - var wh_number = $("#wh_number").val(); +// var wh_number = $("#wh_number").val(); + var totalFee = $("#totalFee").val(); var web_url = $("#web_url").val(); var imags = $("#preview").contents().find(".advertise").html(); var uploadImags = $("#uploaded").html(); diff --git a/src/main/webapp/assets/front/web/script/task_fair.js b/src/main/webapp/assets/front/web/script/task_fair.js index 9fbc067..276fa44 100644 --- a/src/main/webapp/assets/front/web/script/task_fair.js +++ b/src/main/webapp/assets/front/web/script/task_fair.js @@ -231,8 +231,8 @@ function create(){ return; } - if(fairList.length!=setNum){ - layer.alert("请选择你设定数量的网红"); + if(fairList.length>setNum){ + layer.alert("指定主播,最多输入10位网红"); return; } $("input[name='fairs']").val(fairList); diff --git a/src/main/webapp/assets/front/web/script/task_form.js b/src/main/webapp/assets/front/web/script/task_form.js index a2c1043..02fc703 100644 --- a/src/main/webapp/assets/front/web/script/task_form.js +++ b/src/main/webapp/assets/front/web/script/task_form.js @@ -21,28 +21,33 @@ function checkFirstStep(){ var task_title = $("#task_title").val().trim(); var task_start_time = $("#task_start_time").val().trim(); var task_end_time = $("#task_end_time").val().trim(); - var task_price = $("#task_price").val().trim(); + //var task_price = $("#task_price").val().trim();根据业务规定,暂时不需要校验当前信息 + var totalFee = $("#totalFee").val().trim(); var task_description = $("#task_description").val().trim(); - var wh_number = $("#wh_number").val().trim(); + //var wh_number = $("#wh_number").val().trim();根据业务规定,暂时不需要校验当前信息 if(!task_title|| task_title.length > 50){ layer.alert("请输入1-50字任务标题"); return false; } - if(!wh_number){ - layer.alert("请输入参与人数"); - return false; - } - var reg = new RegExp("^[0-9]*$"); - if(!reg.test(wh_number)){ - layer.alert("主播人数只能是数字"); - return false; - } - if(wh_number<=0){ - layer.alert("请参与人数必须大于0"); - return false; - } - if(parseInt(task_price)<=0){ - layer.alert("请设置任务酬劳"); +// if(!wh_number){ +// layer.alert("请输入参与人数"); +// return false; +// } +// var reg = new RegExp("^[0-9]*$"); +// if(!reg.test(wh_number)){ +// layer.alert("主播人数只能是数字"); +// return false; +// } +// if(wh_number<=0){ +// layer.alert("请参与人数必须大于0"); +// return false; +// } +// if(parseInt(task_price)<=0){ +// layer.alert("请设置任务酬劳"); +// return false; +// } + if(parseInt(totalFee)<=0){ + layer.alert("请设置任务预算"); return false; } @@ -72,19 +77,21 @@ function nextStep(){ var task_title = $("#task_title").val().trim(); var task_start_time = $("#task_start_time").val().trim(); var task_end_time = $("#task_end_time").val().trim(); - var task_price = $("#task_price").val().trim(); + //var task_price = $("#task_price").val().trim(); + var totalFee = $("#totalFee").val().trim(); var task_type = $("#taskType").val().trim(); var task_description = $("#task_description").val().trim(); - var wh_number = $("#wh_number").val().trim(); + //var wh_number = $("#wh_number").val().trim(); //存在本地操作下一步用的上 var onLineTask = { "task_title":task_title, "task_start_time":task_start_time, "task_end_time":task_end_time, "task_type":task_type, - "task_price":task_price, + "total_fee":totalFee, + //"task_price":task_price, "task_description":task_description, - "wh_number":wh_number + //"wh_number":wh_number } localStorage.setItem("onLineTask_step1", JSON.stringify(onLineTask)); window.location.href="/platform/task/secondTaskStep" @@ -135,8 +142,9 @@ function initFromCache(){ $("#task_end_time").val(taskCache.task_end_time); $("#taskType").val(taskCache.task_type); $("#task_description").val(taskCache.task_description); - $("#task_price").val(taskCache.task_price); - $("#wh_number").val(taskCache.wh_number); + //$("#task_price").val(taskCache.task_price); + $("#totalFee").val(taskCache.total_fee); + //$("#wh_number").val(taskCache.wh_number); if(taskCache.task_type=="1"){ $("#next").on("click",function(){ nextStep(); -- Gitee From 981110a8e2d47de1bd45ce93aad9e27715846d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Sun, 21 Jan 2018 02:00:41 +0800 Subject: [PATCH 16/17] =?UTF-8?q?=E6=89=93=E5=BC=80=E7=83=AD=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tianpengtech/front/mobile/login/MobileLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java index d275887..48a9004 100644 --- a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java +++ b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java @@ -213,7 +213,7 @@ public class MobileLoginController extends BaseController { public void upateVersion(){ R r = R.ok(); - r.put("showUpdate", false); + r.put("showUpdate", true); r.put("showInvite", false); renderJson(r); } -- Gitee From ae3cd783fbddec494fe659c5194162f20de7c581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=89=BF=E6=B7=9E?= <644344980@qq.com> Date: Mon, 22 Jan 2018 17:08:31 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=8A=E6=97=A5?= =?UTF-8?q?=E6=8F=90=E5=87=BA=E7=9A=84=E7=BB=86=E8=8A=82=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/AdminCommonController.java | 3 +- .../FairWithdrawAdminController.java | 1 + .../FairWithdrawAdminServiceImpl.java | 35 ++++++++++++++++--- .../admin/task/TaskAdminController.java | 2 ++ .../tianpengtech/common/model/fair/Fair.java | 1 + .../tianpengtech/common/util/QiNiuUtil.java | 7 ++-- .../tianpengtech/common/util/push/Jpush.java | 2 +- .../mobile/login/MobileLoginController.java | 2 +- .../passport/MobilePassportController.java | 19 +++------- .../passport/MobilePassportService.java | 13 ++++--- .../front/mobile/task/MobileTaskService.java | 2 +- .../mobile/task/TaskCalculateService.java | 25 +++++++++++++ .../front/web/main/MainWebController.java | 6 ++++ .../web/passport/PassportWebController.java | 3 +- .../front/web/qiniu/QiNiuController.java | 3 +- .../admin/fairwithdraw/fairwithdraw-list.html | 8 +++-- .../view/admin/websitewh/add-websitewh.html | 2 +- .../WEB-INF/view/web/main/platform.html | 4 +++ .../WEB-INF/view/web/task/task_add_new.html | 14 +++++--- .../assets/front/web/script/task_form.js | 16 +++++++-- 20 files changed, 126 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/tianpengtech/admin/AdminCommonController.java b/src/main/java/com/tianpengtech/admin/AdminCommonController.java index 7533eab..92243ad 100644 --- a/src/main/java/com/tianpengtech/admin/AdminCommonController.java +++ b/src/main/java/com/tianpengtech/admin/AdminCommonController.java @@ -66,8 +66,9 @@ public class AdminCommonController extends Controller { public void upload() throws Exception { UploadFile upfile=getFile(); + String category = getPara("category","pc-"); try { - String upload = QiNiuUtil.upload(new FileInputStream(upfile.getFile())); + String upload = QiNiuUtil.upload(new FileInputStream(upfile.getFile()),category); upfile.getFile().delete(); renderText(upload); } catch (Exception e) { diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java index 3db8e99..1ff45ee 100644 --- a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java +++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java @@ -66,6 +66,7 @@ public class FairWithdrawAdminController extends AbstractAdminController{ fairWithdraw.put("real_name",bankNo.getStr(FairBankNo.REAL_NAME)); //余额 fairWithdraw.put("balance",fair.getDouble(fair.MONEY)); + fairWithdraw.put("avaliable_fee",fair.getDouble(Fair.AVALIABLE_FEE)); fairWithdraw.set(FairWithdraw.WH_ID, fair.getStr(Fair.NICK_NAME)); fairWithdraw.set(FairWithdraw.STATUS, fairWithdraw.status()); fairWithdraw.put("platform_fee", fairWithdraw.platFormFee()); diff --git a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java index 32f2af1..a0ad080 100644 --- a/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java +++ b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java @@ -87,6 +87,9 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi Fair fair = Fair.dao.findById(temp.getInt(FairWithdraw.WH_ID)); Account account = XxxUtil.readSessionInfo(); long userId = account.getLong(Account.ID); + + + if(status==FairWithdraw.STATUS_SUCCESS ){ String result = "【通过】你的提现申请请求"; new FairMessage().set(FairMessage.CONTENT, "管理员"+result) @@ -97,10 +100,21 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi MoneyLog moneyLog = MoneyLog.dao.findFirst(sql,id); double money = moneyLog.getDouble(MoneyLog.MONEY); double actualFee= money-temp.platFormFee(); - moneyLog.set(MoneyLog.MONEY,(int)actualFee).update(); - moneyLog.set(MoneyLog.DESCRIPTION,"用户提现:金额¥"+money+",实际收益:¥"+(int)actualFee).update(); + moneyLog.set(MoneyLog.MONEY,(int)actualFee); + moneyLog.set(MoneyLog.DESCRIPTION,"用户提现:金额¥"+money+",实际收益:¥"+(int)actualFee); moneyLog.set(MoneyLog.DELETETAG,MoneyLog.STATUS_SUCCESS).update(); + //更新网红余额数据信息 + double leftMomey = fair.getDouble(Fair.MONEY); + double currentMoney = leftMomey-money; + + if(currentMoney<0){ + throw new ValidateException("当前网红账户提现金额已经超出账户余额"); + } + fair.set(Fair.MONEY,currentMoney); + fair.set(Fair.AVALIABLE_FEE,currentMoney); + fair.update(); + PlatFormIncome formIncome = new PlatFormIncome(); formIncome.set(PlatFormIncome.WH_ID, temp.getInt(FairAuth.WH_ID)); formIncome.set(PlatFormIncome.MONEY, temp.platFormFee()); @@ -121,8 +135,21 @@ public class FairWithdrawAdminServiceImpl extends AbstractAdmin implements IAdmi MoneyLog moneyLog = MoneyLog.dao.findFirst(sql,id); moneyLog.set(MoneyLog.DELETETAG,MoneyLog.STATUS_ERROR).update(); //将提现的金额重新填入账户余额中 - double currentMoney = temp.getDouble(FairWithdraw.MONEY)+fair.getDouble(Fair.MONEY); - fair.set(Fair.MONEY, currentMoney).update(); +// double currentMoney = temp.getDouble(FairWithdraw.MONEY)+fair.getDouble(Fair.MONEY); +// fair.set(Fair.MONEY, currentMoney).update(); + +// double money = moneyLog.getDouble(MoneyLog.MONEY); +// //更新网红余额数据信息 +// double leftMomey = fair.getDouble(Fair.MONEY); +// double currentMoney = leftMomey-money; +// +// if(currentMoney<0){ +// throw new ValidateException("当前网红账户提现金额已经超出账户余额"); +// } +// fair.set(Fair.MONEY,currentMoney); +// fair.set(Fair.AVALIABLE_FEE,currentMoney); +// fair.update(); + Jpush.pushCustomContentToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG); Jpush.pushMessageInfoToSomeOne(fair.getStr(Fair.MOIBILE), result, Jpush.PUSH_MSG); } diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java index afa97ae..a10e14b 100644 --- a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java +++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java @@ -193,6 +193,8 @@ public class TaskAdminController extends AbstractAdminController{ ml.set(MoneyLog.DESCRIPTION,"任务完成:"+task.getStr(Task.TASK_TITLE)); ml.save(); + //同步收益表信息 + //if(SysConfigDao.ME.isSendTaskSMS()){ //发送短信 diff --git a/src/main/java/com/tianpengtech/common/model/fair/Fair.java b/src/main/java/com/tianpengtech/common/model/fair/Fair.java index 0587ca5..235f335 100644 --- a/src/main/java/com/tianpengtech/common/model/fair/Fair.java +++ b/src/main/java/com/tianpengtech/common/model/fair/Fair.java @@ -66,6 +66,7 @@ public class Fair extends AbstractBaseModel<Fair> { public static final String PRICE="price"; //网红价格区间 public static final String VERSION="version"; //乐观锁校验字段 public static final String SMS_SET="sms_set"; //短信设置提醒设置 + public static final String AVALIABLE_FEE="avaliable_fee"; //网红可用余额 public static final int STATUS_UNAPPROVER=-1; diff --git a/src/main/java/com/tianpengtech/common/util/QiNiuUtil.java b/src/main/java/com/tianpengtech/common/util/QiNiuUtil.java index a0f06ab..ea72126 100644 --- a/src/main/java/com/tianpengtech/common/util/QiNiuUtil.java +++ b/src/main/java/com/tianpengtech/common/util/QiNiuUtil.java @@ -14,6 +14,7 @@ import com.qiniu.util.Auth; import com.qiniu.util.StringMap; import java.io.InputStream; +import java.util.UUID; /** * Created by GGD on 2017/5/31 0031. @@ -40,9 +41,11 @@ public class QiNiuUtil { return upToken; } - public static String upload(InputStream path) throws QiniuException { + public static String upload(InputStream path,String category) throws QiniuException { Auth auth = Auth.create(accessKey, secretKey); - String upToken = auth.uploadToken(bucket); + + String upToken = auth.uploadToken(bucket,null, 3600, new StringMap() + .putNotEmpty("saveKey",category+UUID.randomUUID().toString()), true); try { Response response = uploadManager.put(path,null,upToken,null, null); //解析上传成功的结果 diff --git a/src/main/java/com/tianpengtech/common/util/push/Jpush.java b/src/main/java/com/tianpengtech/common/util/push/Jpush.java index 681558d..5690aae 100644 --- a/src/main/java/com/tianpengtech/common/util/push/Jpush.java +++ b/src/main/java/com/tianpengtech/common/util/push/Jpush.java @@ -29,7 +29,7 @@ public class Jpush { public final static String PUSH_MSG="msg"; public final static int LIVE_TIME=1*1000*60*10; - public final static boolean PRO_ENV=true; + public final static boolean PRO_ENV=false; public static void pushCustomContentToSomeOne(String alias,String ALERT,String type){ diff --git a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java index 48a9004..d275887 100644 --- a/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java +++ b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java @@ -213,7 +213,7 @@ public class MobileLoginController extends BaseController { public void upateVersion(){ R r = R.ok(); - r.put("showUpdate", true); + r.put("showUpdate", false); r.put("showInvite", false); renderJson(r); } diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java index 159e85b..0bdf156 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportController.java @@ -19,6 +19,7 @@ import com.tianpengtech.common.util.QiNiuUtil; import com.tianpengtech.front.mobile.common.util.R; import com.tianpengtech.front.mobile.common.util.U; import com.tianpengtech.front.mobile.common.util.UserUtil; +import com.tianpengtech.front.mobile.task.TaskCalculateService; import com.tianpengtech.front.web.common.controller.BaseController; import java.io.FileInputStream; @@ -401,20 +402,7 @@ public class MobilePassportController extends BaseController{ //检测所有登录用户的收益信息,并且存入数据表中分析 if(totalFee>=0){ - Record record = Db.findFirst("select * from fair_total_profit where wh_id=?",user.getLong(User.ID)); - if(record!=null){ - if(totalFee!=record.getDouble("profit")){ - int id = record.getInt("id"); - Db.update("update fair_total_profit set profit=?,wh_id=? where id =?",totalFee,user.getLong(User.ID),id); - } - - - }else{ - record = new Record(); - record.set("profit", totalFee); - record.set("wh_id", user.getLong(User.ID)); - Db.save("fair_total_profit", record); - } + TaskCalculateService.ME.syncTotalProfit(totalFee, user.getLong(User.ID)); } String sql="select count(id) as id from fair_total_profit where profit>? order by profit desc"; Record temp =Db.findFirst(sql,totalFee); @@ -436,8 +424,9 @@ public class MobilePassportController extends BaseController{ public void uploadAvatar() throws Exception { UploadFile upfile=getFile(); + String category = getPara("category","pc-"); try { - String upload = QiNiuUtil.upload(new FileInputStream(upfile.getFile())); + String upload = QiNiuUtil.upload(new FileInputStream(upfile.getFile()),category); upfile.getFile().delete(); R r = R.ok("成功"); r.p("savepath",upload); diff --git a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java index 464ae46..5558789 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java @@ -878,8 +878,8 @@ public class MobilePassportService { Double yue = fair.getDouble(Fair.MONEY); // 余额 double tixian = Double.parseDouble(money); // 提现金额 - if (tixian <20) { - return R.fail("提现金额必须超过¥20"); + if (tixian <50) { + return R.fail("提现金额必须超过¥50"); } if (yue == null || tixian > yue.doubleValue()) { @@ -893,8 +893,13 @@ public class MobilePassportService { int version = fair.getInt(Fair.VERSION); //增加并发时候的乐观锁校验,以免产生重复的提交信息 int netxtVersion = version+1; - String sql = "update "+Fair.dao.tableName()+" set "+Fair.MONEY+"=?,version=? where id=? and version=?"; - int result = Db.update(sql,yue.doubleValue() - tixian,netxtVersion,uid,version); + //String sql = "update "+Fair.dao.tableName()+" set "+Fair.MONEY+"=?,version=? where id=? and version=?"; + String sql = "update "+Fair.dao.tableName()+" set "+Fair.MONEY+"=?,"+Fair.AVALIABLE_FEE+"=?,version=? where id=? and version=?"; + + + //减去当前的提现金额,更新当前数据网红数据的账户银行 + //int result = Db.update(sql,yue.doubleValue() - tixian,netxtVersion,uid,version); + int result = Db.update(sql,yue,yue,netxtVersion,uid,version); if (result>0) { FairWithdraw fw = new FairWithdraw(); fw.set(FairWithdraw.BANK_ID, bankId); diff --git a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java index 614a9cc..c44e0b1 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/MobileTaskService.java @@ -276,7 +276,7 @@ public class MobileTaskService { + "left join %s wh on wt.%s=wh.%s left join %s task on wt.%s=task.%s where wt.%s=? " + "order by wt.%s desc limit "+ wh_num, TaskWh.dao.tableName(), Fair.dao.tableName(), TaskWh.WH_ID, Fair.ID, Task.dao.tableName(), - TaskWh.TASK_ID, Task.ID, TaskWh.TASK_ID, TaskWh.CVS_NUM); + TaskWh.TASK_ID, Task.ID, TaskWh.TASK_ID, TaskWh.CLICK_NUM); List<Fair> fairses = fairDao.find(fairs, id); for (int i = 0; i < fairses.size(); i++) { //假如包含自己,则剔除自己再列表中的位置 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 89c82e5..eb69296 100644 --- a/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java +++ b/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java @@ -1,6 +1,9 @@ package com.tianpengtech.front.mobile.task; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; import com.tianpengtech.common.model.task.Task; +import com.tianpengtech.common.model.user.User; /** * 任务费用计算相关类 @@ -30,4 +33,26 @@ public class TaskCalculateService { totoalFee = (totoalFee==0)?task.getDouble(Task.TOTAL_FEE):totoalFee; return totoalFee; } + + + /** + * 同步指定人的总收益数据信息 + * @param totalFee + * @param userId + */ + public void syncTotalProfit(double totalFee,long userId){ + + Record record = Db.findFirst("select * from fair_total_profit where wh_id=?",userId); + if(record!=null){ + if(totalFee!=record.getDouble("profit")){ + int id = record.getInt("id"); + Db.update("update fair_total_profit set profit=?,wh_id=? where id =?",totalFee,userId,id); + } + }else{ + record = new Record(); + record.set("profit", totalFee); + record.set("wh_id", userId); + Db.save("fair_total_profit", record); + } + } } diff --git a/src/main/java/com/tianpengtech/front/web/main/MainWebController.java b/src/main/java/com/tianpengtech/front/web/main/MainWebController.java index e0e24f5..40cb0c6 100644 --- a/src/main/java/com/tianpengtech/front/web/main/MainWebController.java +++ b/src/main/java/com/tianpengtech/front/web/main/MainWebController.java @@ -2,6 +2,7 @@ package com.tianpengtech.front.web.main; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; +import com.tianpengtech.common.model.authenticate.Authenticate; import com.tianpengtech.common.model.task.Task; import com.tianpengtech.common.model.user.User; import com.tianpengtech.common.util.DateUtils; @@ -29,6 +30,11 @@ public class MainWebController extends BaseController { if (record!=null){ record.set("create_time", DateUtils.formateData(record.getDate("create_time"), DateUtils.YYMMDDHHMMSS_FORMAT)); } + User user=getAttr(LoginService.loginAccountCacheName); + + sql="select * from "+Authenticate.dao.tableName()+" where user_id =? limit 1"; + Authenticate authenticate = Authenticate.dao.findFirst(sql,user.getLong(User.ID)); + setAttr("authenticate",authenticate); setAttr("record",record); renderTemplate(Page.MAIN); } diff --git a/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java b/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java index 73c6190..ff29592 100644 --- a/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java +++ b/src/main/java/com/tianpengtech/front/web/passport/PassportWebController.java @@ -15,6 +15,7 @@ import com.tianpengtech.common.util.IpKit; import com.tianpengtech.common.util.JsonUtil; import com.tianpengtech.common.util.QiNiuUtil; import com.tianpengtech.common.util.SendSmsMsg; +import com.tianpengtech.common.util.XxxUtil; import com.tianpengtech.front.web.common.constant.Page; import com.tianpengtech.front.web.common.controller.BaseController; import com.tianpengtech.front.web.common.interceptor.PassportInterceptor; @@ -112,7 +113,7 @@ public class PassportWebController extends BaseController { User user=getAttr(LoginService.loginAccountCacheName); auth.set(Authenticate.USER_ID,user.get(User.ID)); srv.save(auth); - PushKit.pushSystemMessageNow("用户【"+user.getStr(User.MOBILE)+"】提交了"+auth.getStr(Authenticate.COMPANY_NAME)+"的认证资料"); + PushKit.pushSystemMessageNow("用户【"+XxxUtil.hiddenMobile(user.getStr(User.MOBILE))+"】提交了"+auth.getStr(Authenticate.COMPANY_NAME)+"的认证资料"); renderJson(JsonUtil.printSuccess("提交认证资料成功")); // render("auth_working.html"); } catch (ValidateException e) { diff --git a/src/main/java/com/tianpengtech/front/web/qiniu/QiNiuController.java b/src/main/java/com/tianpengtech/front/web/qiniu/QiNiuController.java index 3a17a66..5a926f2 100644 --- a/src/main/java/com/tianpengtech/front/web/qiniu/QiNiuController.java +++ b/src/main/java/com/tianpengtech/front/web/qiniu/QiNiuController.java @@ -26,8 +26,9 @@ public class QiNiuController extends BaseController { public void upload() throws Exception { UploadFile upfile=getFile(); + String category = getPara("category","pc-"); try { - String upload = QiNiuUtil.upload(new FileInputStream(upfile.getFile())); + String upload = QiNiuUtil.upload(new FileInputStream(upfile.getFile()),category); upfile.getFile().delete(); renderText(upload); } catch (Exception e) { diff --git a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html index 2e39aac..8afaa12 100644 --- a/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html +++ b/src/main/webapp/WEB-INF/view/admin/fairwithdraw/fairwithdraw-list.html @@ -28,6 +28,7 @@ { "data": "create_time" }, { "data": "status" }, { "data": "balance" }, + { "data": "avaliable_fee" }, { "data": "real_name" }, { "data": function(data){ var opt="<a href='javascript:;' onclick='pass("+data.id+")'>处理成功</a>"+"|"; @@ -138,11 +139,12 @@ <th>ID</th> <th>网红昵称</th> <th>所属银行</th> - <th>提现金额(单位:元)</th> - <th>平台服务费(单位:元)</th> + <th>提现金额(元)</th> + <th>平台服务费(元)</th> <th>提交时间</th> <th>状态</th> - <th>余额(单位:元)</th> + <th>余额(元)</th> + <th>可用余额(元)</th> <th>真实姓名</th> <th>操作</th> </tr> diff --git a/src/main/webapp/WEB-INF/view/admin/websitewh/add-websitewh.html b/src/main/webapp/WEB-INF/view/admin/websitewh/add-websitewh.html index 9d424d9..3f017eb 100644 --- a/src/main/webapp/WEB-INF/view/admin/websitewh/add-websitewh.html +++ b/src/main/webapp/WEB-INF/view/admin/websitewh/add-websitewh.html @@ -50,7 +50,7 @@ auto: true, duplicate:true, swf: '#(contextPath)/assets/front/web/script/upload/Uploader.swf', - server: '#(contextPath)/admin/upload', + server: '#(contextPath)/admin/upload?category=site-', pick: { id:id }, diff --git a/src/main/webapp/WEB-INF/view/web/main/platform.html b/src/main/webapp/WEB-INF/view/web/main/platform.html index e0deff9..2a874a7 100644 --- a/src/main/webapp/WEB-INF/view/web/main/platform.html +++ b/src/main/webapp/WEB-INF/view/web/main/platform.html @@ -17,7 +17,11 @@ <i class="u-switch"></i> <div class="m-user"> <div class="u-head" data-href="#(contextPath)/passport/detail?id=#(loginAccount.id)" onclick="$de.jump(this)"> + #if(authenticate?? && authenticate.logo??) + <div class="u-head-img" style='background-image: url("#(contextPath)#(authenticate.logo)")'></div> + #else <div class="u-head-img" style='background-image: url("#(contextPath)#(loginAccount.photo)")'></div> + #end </div> <div class="u-text text-more" data-href="#(contextPath)/passport/detail?id=#(loginAccount.id)" onclick="$de.jump(this)">#(loginAccount.mobile)</div> </div> diff --git a/src/main/webapp/WEB-INF/view/web/task/task_add_new.html b/src/main/webapp/WEB-INF/view/web/task/task_add_new.html index e825dd4..cc9a0ce 100644 --- a/src/main/webapp/WEB-INF/view/web/task/task_add_new.html +++ b/src/main/webapp/WEB-INF/view/web/task/task_add_new.html @@ -19,11 +19,12 @@ <div class="g-info"> <div class="u-title">任务信息</div> <div class="m-panel" style="border-radius: 2px"> + #-- <div class="m-row"> <div class="u-row-title"></div> <div style="padding:10px;color:#62bcc0">温馨提示:假如你需要大量网红参与你的任务,请选择主播认领方式发布任务</div> </div> - + --# <div class="m-row"> <div class="u-row-title">任务标题:</div> <div class="u-row-box"> @@ -59,20 +60,25 @@ --# <div class="m-row"> - <div class="u-row-title">任务预算:</div> + <div class="u-row-title"> + <img class="task-price"src="#(contextPath)/assets/front/web/resources/ic_help.png" width="15"/> + 任务预算: + </div> <div class="u-row-box"> <div class="u-row-box-input"> - <!--<input name="task.task_price" class="u-row-cell-input" style="flex:0;width:100px;color:#f96436;" />--> + <input name="task.total_fee" placeholder="请输入任务预算,最低500元" class="u-row-cell-input" id="totalFee" maxlength="15"/> + #-- <select name="task.total_fee" class="u-row-cell-input" id="totalFee"> <option value="0">==请选择==</option> #for(x:totalPriceList) <option class="" value="#(x.code)">#(x.name)</option> #end </select> + --# #-- <div class="u-row-cell-tip">元/人 </div> --# - <img class="task-price"src="#(contextPath)/assets/front/web/resources/ic_help.png" width="15"/> + </div> </div> </div> diff --git a/src/main/webapp/assets/front/web/script/task_form.js b/src/main/webapp/assets/front/web/script/task_form.js index 02fc703..03a805a 100644 --- a/src/main/webapp/assets/front/web/script/task_form.js +++ b/src/main/webapp/assets/front/web/script/task_form.js @@ -33,7 +33,7 @@ function checkFirstStep(){ // layer.alert("请输入参与人数"); // return false; // } -// var reg = new RegExp("^[0-9]*$"); + var reg = new RegExp("^[0-9]*$"); // if(!reg.test(wh_number)){ // layer.alert("主播人数只能是数字"); // return false; @@ -46,8 +46,18 @@ function checkFirstStep(){ // layer.alert("请设置任务酬劳"); // return false; // } - if(parseInt(totalFee)<=0){ - layer.alert("请设置任务预算"); + + if(totalFee==""){ + layer.alert("请输入任务预算"); + return false; + } + if(!reg.test(totalFee)){ + layer.alert("任务预算只能是整数,如:3000"); + return false; + } + + if(parseInt(totalFee)<500){ + layer.alert("任务预算不能低于¥500"); return false; } -- Gitee