|
@@ -9,8 +9,119 @@ defined('InShopNC') or exit('Access Invalid!');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/algorithm.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/sms_helper.php');
|
|
|
+require_once(BASE_ROOT_PATH . '/mobile/util/errcode.php');
|
|
|
|
|
|
|
|
|
+class activity_bonus
|
|
|
+{
|
|
|
+ const admin_member_id = 36429;
|
|
|
+ private $mErrMessage;
|
|
|
+ public function err() {
|
|
|
+ return $this->mErrMessage;
|
|
|
+ }
|
|
|
+ private function parse_rate($bonus_rate)
|
|
|
+ {
|
|
|
+ $params = explode('#', urldecode($bonus_rate));
|
|
|
+ $result = [];
|
|
|
+ foreach ($params as $val)
|
|
|
+ {
|
|
|
+ if(preg_match_all('/^(\d{1,3})\|(\d{1,6})\|(\d{1,4})$/', $val, $match))
|
|
|
+ {
|
|
|
+ $item['rate'] = intval($match[1][0]);
|
|
|
+ $item['amount'] = intval($match[2][0]);
|
|
|
+ $item['num'] = intval($match[3][0]);
|
|
|
+ $result[] = $item;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(empty($result)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function check_param($input, &$ret)
|
|
|
+ {
|
|
|
+ if(!isset($input['start_time'])) {
|
|
|
+ $ret = array('code' => errcode::ErrParamter,'msg' => "请输入活动开始和结束时间.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $start_tm = strtotime($input['start_time']);
|
|
|
+ if($start_tm == false) {
|
|
|
+ $ret = array('code' => errcode::ErrParamter,'msg' => "错误的活动开始时间格式,请参考,2016-06-04 10:00:00.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($start_tm < time()) {
|
|
|
+ $cur_time = date("Y-m-d H:i:s");
|
|
|
+ $ret = array('code' => errcode::ErrParamter,'msg' => "活动时间不能小于服务器当前时间:{$cur_time}");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isset($input['end_time'])) {
|
|
|
+ $end_tm = strtotime($input['end_time']);
|
|
|
+ } else {
|
|
|
+ $end_tm = $start_tm + 24 * 3600;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($end_tm <= $start_tm) {
|
|
|
+ $ret = array('code' => errcode::ErrParamter,'msg' => "活动结束时间必须大于开始时间");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $param = [];
|
|
|
+ $param['send_start_date'] = $start_tm;
|
|
|
+ $param['send_end_date'] = $end_tm;
|
|
|
+
|
|
|
+ return $param;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function make($input)
|
|
|
+ {
|
|
|
+ if(empty($input['bonus_rate'])) {
|
|
|
+ $this->mErrMessage = "bonus_rate 参数为空";
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = [];
|
|
|
+ $result['type_name'] = $input['type_name'];
|
|
|
+ $result['type_bless'] = $input['type_bless'];
|
|
|
+ $result['sender_id'] = self::admin_member_id;
|
|
|
+ $result['sender_name'] = "熊猫美妆";
|
|
|
+ $result['send_type'] = $input['send_type'];
|
|
|
+
|
|
|
+ $rate_moneys = $this->parse_rate($input['bonus_rate']);
|
|
|
+ if($rate_moneys == false) {
|
|
|
+ $this->mErrMessage = "bonus_rate 或者 send_type 参数错误";
|
|
|
+ return false;
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $result['rate_money'] = $rate_moneys;
|
|
|
+ }
|
|
|
+
|
|
|
+ $param = $this->check_param($input,$ret);
|
|
|
+ if($param == false) {
|
|
|
+ $this->mErrMessage = $ret['msg'];
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = array_merge($param,$result);
|
|
|
+
|
|
|
+ $pre_helper = new predeposit_helper(self::admin_member_id);
|
|
|
+ $ret = $pre_helper->admin_make_bonus($result,$rate_moneys);
|
|
|
+ if($ret === false) {
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ $type_sn = $ret['type_sn'];
|
|
|
+ $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
|
|
|
+ return array('type_sn' => $type_sn,'url' => "{$url}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
class person_bonusControl extends SystemControl
|
|
|
{
|
|
|
const EXPORT_SIZE = 5000;
|
|
@@ -135,8 +246,17 @@ class person_bonusControl extends SystemControl
|
|
|
{
|
|
|
if(chksubmit())
|
|
|
{
|
|
|
- $x = 0;
|
|
|
-
|
|
|
+ $admin = $this->getAdminInfo();
|
|
|
+ $maker = new activity_bonus();
|
|
|
+ $ret = $maker->make($_POST);
|
|
|
+ if($ret == false) {
|
|
|
+ $err = $maker->err();
|
|
|
+ showMessage($err,'index.php?act=person_bonus&op=promotion','','error');
|
|
|
+ } else {
|
|
|
+ Tpl::output('type_sn',$ret['type_sn']);
|
|
|
+ Tpl::output('bonus_url',$ret['url']);
|
|
|
+ Tpl::showpage('person_bonus.activity');
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|