diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..54b39e62de9e3a8f825e1a67ded2106f7468d9b3 Binary files /dev/null and b/src/.DS_Store differ diff --git a/src/main/.DS_Store b/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..110d569ef8f1d911208d2dfd3c8f85910d7d595c Binary files /dev/null and b/src/main/.DS_Store differ diff --git a/src/main/java/com/tianpengtech/admin/AdminCommonController.java b/src/main/java/com/tianpengtech/admin/AdminCommonController.java index 7533eab6c11fb30361d2422faf72f8760e0115c1..92243ad2183e1e3715d05e9209a49f61c844e9f8 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/AdminRoutes.java b/src/main/java/com/tianpengtech/admin/AdminRoutes.java index eebf97f92bfc6519731affcb8fe5be0f1536fc66..60857426358c7dbb54bf2d7906f5e694a0974175 100644 --- a/src/main/java/com/tianpengtech/admin/AdminRoutes.java +++ b/src/main/java/com/tianpengtech/admin/AdminRoutes.java @@ -17,6 +17,7 @@ import com.tianpengtech.admin.moneylog.MoneyLogAdminController; import com.tianpengtech.admin.notice.SMSNoticeController; 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; @@ -58,6 +59,7 @@ 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"); add("/admin/notice", SMSNoticeController.class, "/admin/notice"); } } diff --git a/src/main/java/com/tianpengtech/admin/fair/FairAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fair/FairAdminServiceImpl.java index cff7ef36bf0879c86e95404a00e171957387a9ae..5a999e19bc6e5a7a989d501913ed33edb6f2b0c2 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/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminController.java index 0ee78d68a606e2c5303c714ef281601e0a6663f6..706b7ec6f4f517878dfbbe7facea9725c1551873 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; @@ -73,6 +74,8 @@ public class FairAuthAdminController extends AbstractAdminController{ /** * 审核通过 */ + + @Before(Tx.class) public void pass(){ int id = getParaToInt(FairAuth.ID,0); int price = getParaToInt("price",0); @@ -99,6 +102,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/fairauth/FairAuthAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairauth/FairAuthAdminServiceImpl.java index b91c6ed1609fe40895c27012f8cfa56f54de9c49..2866e40769542c9d76751d56cc073c372e168066 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/fairbankno/FairBankNoAdminController.java b/src/main/java/com/tianpengtech/admin/fairbankno/FairBankNoAdminController.java index ce6897fd76903a6712f457092fc514571808271e..05e34983ccd0bfc508b1ea03f46e0f92000675f3 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/admin/fairwithdraw/FairWithdrawAdminController.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminController.java index 8d640c03ca51d431ab6a7bad4721503d32dce4fd..1ff45ee698da8f8ea83fd19a61ba44d2c09cc206 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.jfinal.plugin.activerecord.Record; import com.tianpengtech.admin.AbstractAdminController; import com.tianpengtech.admin.IAdminOpt; @@ -65,14 +66,17 @@ 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()); } } /** * 审核不通过 */ + @Before(Tx.class) public void unpass(){ FairWithdraw fairWithdraw = getModel(FairWithdraw.class); String content = getPara(Opertion.CONTENT); @@ -89,6 +93,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/fairwithdraw/FairWithdrawAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/fairwithdraw/FairWithdrawAdminServiceImpl.java index e8f4a08307d371057365e6aeb86e8b54a5395222..a0ad080e25f385608727d4c0a4ee82339e747479 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; @@ -86,16 +87,43 @@ 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) .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); + double actualFee= money-temp.platFormFee(); + 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()); + 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; @@ -103,13 +131,27 @@ 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(); +// 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/platformincome/PlatFormIncomeAdminController.java b/src/main/java/com/tianpengtech/admin/platformincome/PlatFormIncomeAdminController.java new file mode 100644 index 0000000000000000000000000000000000000000..bf6a101db3fd5ba89386eb22efff547ca3a912b3 --- /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 0000000000000000000000000000000000000000..dbfdd8da1f5871cfac17033ce196a1bedb61eb9d --- /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 c65b75ce83366a06391f33e495a287fa104037b8..f6349c25115389a3cf710f2e03412ed0234cf22d 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/TaskAdminController.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java index 0f51b46d8fbc925b190685d6efd90a84831a8220..c90452da0343838b4a3a70a633e967c595f697a9 100644 --- a/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java +++ b/src/main/java/com/tianpengtech/admin/task/TaskAdminController.java @@ -11,6 +11,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; @@ -27,6 +28,8 @@ 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; +import com.tianpengtech.front.mobile.task.TaskCalculateService; /** * 路由配置地址:add("/admin/task", TaskAdminController.class, "/admin/task"); * 数据库映射地址:arp.addMapping(Task.dao.tableName(),Task.class); @@ -109,6 +112,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)); } @@ -129,20 +133,24 @@ 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; - setAttr("actualFee",actualFee); + 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",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"); } + + + @Before(Tx.class) public void accept(){ int task_id = getParaToInt("task_id"); int fair_id = getParaToInt("fair_id"); @@ -152,20 +160,19 @@ public class TaskAdminController extends AbstractAdminController{ int status = taskWh.getInt(TaskWh.STATUS); if(status==Task.STATUS_COMPLETED){ - renderJson(JsonUtil.printError("当前任务已经被验收,请勿重复操作")); + renderJson(JsonUtil.printError("当前任务已经被结算验收,请勿重复操作")); return; }else{ - //为当前网红增加任务相关费用信息,以及增加流水日志信息 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; } @@ -188,7 +195,19 @@ 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()){ + //发送短信 + + 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; } } diff --git a/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java b/src/main/java/com/tianpengtech/admin/task/TaskAdminServiceImpl.java index c6d1927a637374deb17adfa04607641a31fe634c..d842ad78cb754edb6b4aeb0e3566a858222566de 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 ffc7a360db88e56ac1e3f16d9e5da1b30db426c7..b074f99eaa8cd3631cd4481db7be0cc4a40cd7d3 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; @@ -57,7 +58,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; @@ -175,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); } @@ -194,8 +197,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/generator/app/Generator.java b/src/main/java/com/tianpengtech/common/generator/app/Generator.java index 37f8f90bd73346b7e2a3740881cc1269239a25aa..704e05c16dc99663b9985e13c028ef76d888326d 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/dictionary/Dictionary.java b/src/main/java/com/tianpengtech/common/model/dictionary/Dictionary.java index 11926e7458b7a3c65639888b941d303ef7fffcfb..d3daae19353dfa212622881e6342ec38cd29bbb5 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/fair/Fair.java b/src/main/java/com/tianpengtech/common/model/fair/Fair.java index 070f031bc1c9b0d5211df18379e79cbeb4929ee7..235f335f007a5bf285127c74281128b12dfc53e3 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,9 @@ 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 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/model/fairbankno/FairBankNo.java b/src/main/java/com/tianpengtech/common/model/fairbankno/FairBankNo.java index a41a6dda2bdbd4ee83ddab5121cfdae2763c43f4..4e8d28e54b15c3d4bf33e05ffb2f5e9bf1dc23d4 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/model/fairwithdraw/FairWithdraw.java b/src/main/java/com/tianpengtech/common/model/fairwithdraw/FairWithdraw.java index ab910ff4382df5343d2c2528c8c9a3ad93916a19..8c90afc8636a770920d2274b17702898394190d1 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 0000000000000000000000000000000000000000..2440bcf6c1fd729265e358177bf5ae656c405dc7 --- /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/model/task/Task.java b/src/main/java/com/tianpengtech/common/model/task/Task.java index ea6b1be7d4b3be7114142e177095bb0100622c45..2522bc46424a8d193e2a19ae9fb85f43dcb14337 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 0891f35391bd509bc68c5afe79c35b1def27b098..81066dc336b06c184bfc4e2eab3f511f3573ed8a 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/QiNiuUtil.java b/src/main/java/com/tianpengtech/common/util/QiNiuUtil.java index a0f06ab3bdee55a414561806f14fc3e5423a8f6f..ea72126b224b7035d32f2a6d63038a4d5eded35e 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/SendSmsMsg.java b/src/main/java/com/tianpengtech/common/util/SendSmsMsg.java index 7d549b12db7622cccf41d5ecbb87751a0207cdf1..de37bbf978ab9504d9fcc6b4b67726c5d0d16ecf 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; + } //发送自定义模板短信 @@ -261,6 +290,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/XxxUtil.java b/src/main/java/com/tianpengtech/common/util/XxxUtil.java index f42ca52019b49435124472f8385db396be48ed35..5ca47a6bd9e2570c5920467a2b9f582e30d27bd8 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 54d5f56b318616f6bbd0692ec5d07491fdbbb3b7..5690aae79060b5b4e4896983b1ae8f5ecfcecd6d 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,30 @@ 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.pushCustomContentToSomeOne("13262535273","你的消息····来了123ddd!23223!!",Jpush.PUSH_MSG); +// 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.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 9b582ebb1ec9c8066b0c88598e22179caeb3e634..bc066b9fb98f50a782bae54d98bf334d15915589 100644 --- a/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java +++ b/src/main/java/com/tianpengtech/front/mobile/bankno/MobileBanknoController.java @@ -23,12 +23,13 @@ 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")); 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); @@ -65,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 7dc4a42a95d6dd2dd298dac17c876dec2bfa1825..834045e717f5888e752586136f41918da734d374 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); @@ -58,16 +65,56 @@ 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 * @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 +175,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/login/MobileLoginController.java b/src/main/java/com/tianpengtech/front/mobile/login/MobileLoginController.java index 83172c0f7d1dd86871a32c5e0776a2078b669961..d27588767f04980e2fc498ad77971b90df9af2ec 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/moneylog/MobileMoenyLogService.java b/src/main/java/com/tianpengtech/front/mobile/moneylog/MobileMoenyLogService.java index 2adf27e4b3496833a9f9a1843003eb150c19dc11..0ee4ca16eb6d4558f89922ab716151d5caccee77 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 e02d8bf1bbe3477dd361af1ec156d93898dfde5c..0bdf156fd858746c5ca7deaa2888429141233d45 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; @@ -12,11 +13,13 @@ 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; 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; @@ -321,6 +324,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不能为空")); @@ -382,15 +386,27 @@ 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)); - 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"); + 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); + + //检测所有登录用户的收益信息,并且存入数据表中分析 + if(totalFee>=0){ + 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); + int sort = (temp.getInt("id")==0)?1:temp.getInt("id")+1; r.p("sort", sort); r.p("yandou",yandou); renderJson(r); @@ -402,13 +418,15 @@ 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); } 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); @@ -437,4 +455,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 ffe971d51fc47400d9a36448ef63f38cfc60d373..55587897a57f376cc49f18bdccc63378d86cfce9 100644 --- a/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java +++ b/src/main/java/com/tianpengtech/front/mobile/passport/MobilePassportService.java @@ -804,11 +804,12 @@ 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); - if (log == null) { + 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 (sumlog == null) { r.p("all", 0); } else { r.p("all", sumlog.get("money")); @@ -833,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; + } /** * 验证交易密码 @@ -870,14 +877,30 @@ public class MobilePassportService { Fair fair = fs.findById(Integer.parseInt(uid + "")); Double yue = fair.getDouble(Fair.MONEY); // 余额 double tixian = Double.parseDouble(money); // 提现金额 + + if (tixian <50) { + return R.fail("提现金额必须超过¥50"); + } + 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); - 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=?"; + 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); 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 bd3341ebf15d28b41629c9bca4105766758e361a..056c4224bb3b306425e04719b2479fa31141e812 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 8651860fe940d23c8ee18a250e6cd23b2e5f6112..bde8956a5e007f5e2d41f218a150b0018f5d2a1b 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 f36584762c2fda5644e70d57933126358584734e..c44e0b17c7ff82cd88e4a896e4c3626cc79615ac 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; @@ -48,15 +50,16 @@ 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( -// " 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); @@ -65,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()); @@ -81,7 +84,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 +93,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_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)); }); R r = R.ok(); r.p("pageNum", pageNum); @@ -99,16 +105,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; } @@ -136,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); @@ -188,14 +196,19 @@ 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); + int total = (type == Task.EXT_TYPE_RL) ? 200 : t.getInt(Task.WH_NUMBER); t.put("total", total); - t.put("haveAccept", queryAcceptNum(t.getLong(Task.ID), type)); + 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); // 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,22 +221,37 @@ 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.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.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("click_num",task.getLong(TaskWh.CLICK_NUM)); + task.put("cvs_num",task.getLong(TaskWh.CVS_NUM)); + long click_num =task.getLong(TaskWh.CLICK_NUM); + 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); @@ -233,27 +261,43 @@ 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 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 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 "+ 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++) { + //假如包含自己,则剔除自己再列表中的位置 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); + long click_num =f.getLong(TaskWh.CLICK_NUM); + 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(); @@ -264,7 +308,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 +336,49 @@ public class MobileTaskService { return r; } - List<TaskWh> taskWh= TaskService.queryFairTask(uid+"", 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; + } - if(taskWh.size()>=task.getInt(Task.WH_NUMBER)){ + 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()>=wh_num){ 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; } 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 0000000000000000000000000000000000000000..eb6929607dab91937bd036d99259ae67b86abe29 --- /dev/null +++ b/src/main/java/com/tianpengtech/front/mobile/task/TaskCalculateService.java @@ -0,0 +1,58 @@ +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; + +/** + * 任务费用计算相关类 + * @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; + } + + + /** + * 同步指定人的总收益数据信息 + * @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/fair/FairWebController.java b/src/main/java/com/tianpengtech/front/web/fair/FairWebController.java index 2a6fba9290b34745d23e525c255de84a0e0e2ebb..f6fc3e1dd5c3bd2ae27c59bd343a3535a894bb35 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/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 5f4b992ac42e1c2af55c3834eb319181e28a74d7..c7d6a77398a78ba87496a14f8af39bed223ec354 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 0000000000000000000000000000000000000000..7edc2d108402f5d70dc9fda95222902f5da39ad4 --- /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/java/com/tianpengtech/front/web/main/MainWebController.java b/src/main/java/com/tianpengtech/front/web/main/MainWebController.java index e0e24f525c9eabf253a2f601b26c86bdd98c654d..40cb0c6f8e64067be27b9d97d75c90b7fee8e30b 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 73c61906229f7238fd96e26967a102d4d1e05323..ff29592e80267edde1cbbdb5ceba75caf1280c9b 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 3a17a66b1d630376578dbb7740351e0dee078b01..5a926f2d5fa00285fbdeb57d9795ca0769353f79 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/java/com/tianpengtech/front/web/task/TaskService.java b/src/main/java/com/tianpengtech/front/web/task/TaskService.java index 913f078a8637d6983b7308fa3e04be4a1efc9850..25e2b2f71ba9026f8d4bd8d0122f55630c799f14 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++) { @@ -182,6 +189,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 +208,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 +286,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); } } } @@ -459,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){ @@ -514,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 7535eae472aa6d5345478281f8af3e9f7f6a951d..f001b1652ad7060f3fb838563941bf398970f90e 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)); @@ -313,6 +315,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); @@ -428,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)); @@ -453,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/resources/.gitignore b/src/main/resources/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e9eccc41ec346e2b38e396374474f4b934663bb3 --- /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 bfdbd6ffe7b1c7d14b172f65817f5907523ebed8..83c8b2ff2e71a304bbff7066d835f86692e831f6 100644 --- a/src/main/resources/a_little_config.txt +++ b/src/main/resources/a_little_config.txt @@ -1,6 +1,6 @@ -#jdbcUrl = jdbc:mysql://123.56.186.144:3306/bbt-test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull -#user = bbt -#password =bbt123 +#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 diff --git a/src/main/webapp/.DS_Store b/src/main/webapp/.DS_Store index 455f5e4a8bd3c1ea1d4614f05d197fb8c9ab2fad..1fc13c97ba39f1701cc4f76084555c508b73fa1f 100644 Binary files a/src/main/webapp/.DS_Store and b/src/main/webapp/.DS_Store differ 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 f5f9dba59d7c445b6eb5a7cfd0646384f97b849b..9ca87f40b5b0a8c479f5f5ad659252f2c0363501 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 @@ -13,13 +13,13 @@ <li><a _href="#(contextPath)/admin/task" data-title="任务管理" href="javascript:void(0)">任务管理</a></li> - + <li><a _href="#(contextPath)/admin/taskscreenshot" data-title="任务截图管理" href="javascript:void(0)">任务截图管理</a></li> <li><a _href="#(contextPath)/admin/task/taskCountSetting" data-title="任务统计模式管理" - href="javascript:void(0)">任务统计模式管理</a></li> + href="javascript:void(0)">任务统计模式管理</a></li> <li><a _href="#(contextPath)/admin/moneylog" data-title="邀请注册统计列表" - href="javascript:void(0)">邀请注册统计</a></li> + href="javascript:void(0)">邀请注册统计</a></li> <li><a _href="#(contextPath)/admin/task/taskDataAnalysis" data-title="任务数据分析" href="javascript:void(0)">任务数据分析</a></li> </ul> @@ -152,6 +152,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> <dl id="menu-article"> <dt> 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 a472a53178e2488a77352f3755412dfefef4cb4c..ea9a95ca200615402590b09e22db93298bf862ec 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"> 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 8e9cc5ed37fda44bafb6e47bdce54cc4b40f0603..a87943797a1f54535c653dce6017c7d96fa1a70c 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 5451d3c75428911162e99b298c28a9a912db89ba..9654c21df64d81de55534c337767c54fee7a3fdd 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> 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 d448cf6174764a9726efcef173ce9a86308bd8f0..8afaa12d4a22f27b13f0fa64ced15a00066640e7 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,9 +24,11 @@ { "data": "wh_id" }, { "data": "bank_id" }, { "data": "money" }, + { "data": "platform_fee" }, { "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>"+"|"; @@ -125,13 +127,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> @@ -139,10 +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> </tr> 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 0000000000000000000000000000000000000000..fae81f97c7e154ea08c8dd2826f7d0fc53478b35 --- /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 0000000000000000000000000000000000000000..2f3ac2c57cbdb32bc4e48bbca122075f54a8a93b --- /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 0000000000000000000000000000000000000000..4215359bf735a47e539703975ef510114bae57c4 --- /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 0000000000000000000000000000000000000000..24b4be5f6686e7abbeb1d60a3bfcfc4d7e8f9f9d --- /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 0000000000000000000000000000000000000000..b929949c018295902482d22b29d8328727c71715 --- /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 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 6c0ce850c190ee2e51df592ac67ec3e1c8755a8c..927e58fab39bf69dc763692abcbe787cd88c8ab1 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,15 @@ </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"> + <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"> 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 9e8be9bfea9ea0cbbcdc4e6beb4c15de3fbf9cde..2694eefcc88798aa57862ebdb1660809b8a80f6c 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 @@ -167,7 +167,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/admin/task/task-wh-detail.html b/src/main/webapp/WEB-INF/view/admin/task/task-wh-detail.html index 17d9d9daaae411cc2edfea6a18d9ba63e8a83845..5eade03acfccbad74e40d7cf620d55e1f9a65366 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,5 +1,23 @@ #@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() + <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> @@ -7,15 +25,32 @@ <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) + 等待结算 + #elseif(x.status==6) + 结算完成 + #end + </td> + <td class="sorting_disabled" rowspan="1" colspan="1"> + #if(x.status==5) + <a href="javascript:;" onclick="payMoney(#(x.task_id??''),#(x.wh_id??''))">立即结算</a> + #end + </td> </tr> #end </table> 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 9d424d974b2d3eed71083512fb82fba9dcf9c2cc..3f017eb11f6334e8be8ab7f4a7a4da45f9176c1c 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 e0deff90a6467c59ed5f30ea9de1f1c99ba6e6bf..2a874a7dbbb6881cb4d0c0345c4c6988b7ac1523 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/second-task-step.html b/src/main/webapp/WEB-INF/view/web/task/second-task-step.html index c058f9d9d7aea43926ffc9cf423f890ba8ca338e..47bd0349f6ca3b89ca314e8933b389c76efd4a02 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 2711ed93092b0964585e0324e8fbc529bd3b6cfb..cc9a0ce76eb50aaedb801b9e25f8667bb8d35429 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"> @@ -45,6 +46,7 @@ </div> </div> </div> + #--业务要求 去除人数选择 <div class="m-row"> <div class="u-row-title">人数:</div> <div class="u-row-box" > @@ -55,21 +57,28 @@ </div> </div> </div> - + --# <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;" />--> - <select name="task.task_price" class="u-row-cell-input" id="task_price"> + <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: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> </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 19255eb869e9c1f672bc9e22b7613afb8751013c..cf7edd1b16a91c5940e251b4d1115400a1e0b3f6 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 b9a0bd65ade856f7d63ba6cf708d1be2644ba949..72ea7e7bac23583fe57e9904651825bd9bf1dc82 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/.DS_Store b/src/main/webapp/assets/.DS_Store index 23576507f6aba30a3348fa50c49f98477f1d233c..4a604402606ae1716cadb61482c99ee005a15282 100644 Binary files a/src/main/webapp/assets/.DS_Store and b/src/main/webapp/assets/.DS_Store differ 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 Binary files /dev/null and b/src/main/webapp/assets/front/.DS_Store differ 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 Binary files /dev/null and b/src/main/webapp/assets/front/web/.DS_Store differ 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 aa55fcfa4e85dbdf66402efb522ab415c9d762d9..65b36be4d08a927e232c1d11fdca5e7f60e87555 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 9fbc067618495a59a896ee3180e59596edef36a2..276fa446f6e2d83157adc3401a28bb06c179a59b 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 a2c1043e3ae95819ccf37f315ba8bcf4ecaee970..03a805a61f02cdbbc9ea86a2ac149e673dd237b4 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,43 @@ 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; - } +// 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(!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(totalFee==""){ + layer.alert("请输入任务预算"); + return false; + } + if(!reg.test(totalFee)){ + layer.alert("任务预算只能是整数,如:3000"); + return false; + } + + if(parseInt(totalFee)<500){ + layer.alert("任务预算不能低于¥500"); return false; } @@ -72,19 +87,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 +152,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(); 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 Binary files /dev/null and b/src/main/webapp/assets/front/web_site/.DS_Store differ 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 Binary files /dev/null and b/src/main/webapp/assets/front/web_site/imags/.DS_Store differ 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 Binary files /dev/null and b/src/main/webapp/task_template/.DS_Store differ 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 Binary files /dev/null and b/src/main/webapp/task_template/common/.DS_Store differ