Ejemplo n.º 1
0
 protected function parse_filter(array $filters = null, array $options = array())
 {
     $defaults = ['to_string' => true];
     $options = array_merge($defaults, $options);
     if (isset($filters['start'])) {
         $filters['stat_date'][] = array('operator' => '>=', 'data' => $filters['start']);
         unset($filters['start']);
     }
     if (isset($filters['end'])) {
         $filters['stat_date'][] = array('operator' => '<=', 'data' => $filters['end']);
         unset($filters['end']);
     }
     $spec = array('date');
     $pick = Utils::array_pick($filters, $spec);
     $filters = Utils::array_omit($filters, $spec);
     list($conditions, $params) = parent::parse_filter($filters, ['to_string' => false]);
     foreach ($pick as $key => $value) {
         switch ($key) {
             case 'date':
                 $conditions[] = "DATE(`stat_date`)=:date";
                 $params[':date'] = $value;
                 break;
         }
     }
     $conditions = $options['to_string'] ? ($options['is_append'] ? ' and ' : '') . implode(' AND ', $conditions) : $options;
     return array($conditions, $params);
 }
Ejemplo n.º 2
0
 public function update()
 {
     $data = $this->get_post_data();
     // 有可能通过修改密码popup修改密码
     if ($_REQUEST['newpassword']) {
         $data = Utils::array_pick($_REQUEST, 'oldpassword', 'newpassword', 'repassword');
     }
     // 校验密码
     if ($data['newpassword']) {
         if ($data['newpassword'] != $data['repassword']) {
             $this->exit_with_error(11, '两次输入的密码不一致,请重新输入。', 403);
         }
         if (!preg_match('/[0-9a-zA-Z$!^#_@%&*.]{6,16}/', $data['newpassword'])) {
             $this->exit_with_error(12, '新的密码不合规则,请重新输入。', 403);
         }
         $auth = new Auth();
         if (!$auth->validate($_SESSION['email'], $data['oldpassword'], true)) {
             $this->exit_with_error(13, '旧密码不正确,请重新输入', 403);
         }
         $data['password'] = $auth->encrypt($_SESSION['email'], $data['newpassword']);
         $data = Utils::array_omit($data, 'oldpassword', 'newpassword', 'repassword');
     }
     $service = new User();
     $check = $service->update_me($data);
     if ($check) {
         $this->output(['code' => 0, 'msg' => '修改成功', $data]);
     } else {
         $this->exit_with_error(400, '修改失败', 1);
     }
 }
Ejemplo n.º 3
0
 private function split_attr(array $attr = null, $only_split = false)
 {
     $attr = $attr ? $attr : $this->attributes;
     $callback = Utils::array_pick($attr, self::$FIELDS_CALLBACK);
     $ios = Utils::array_pick($attr, self::$FIELDS_IOS);
     $channel = Utils::array_pick($attr, self::$FIELDS_CHANNEL);
     $diy = Utils::array_pick($attr, self::$FIELDS_DIY);
     $permissions = $attr['permission'];
     $provinces = $attr['provinces'] ? $attr['provinces'] : $attr['put_provinces'];
     if (!$only_split) {
         $me = $_SESSION['id'];
         $im_cp = $_SESSION['role'] == Auth::$CP_PERMISSION;
         $now = date('Y-m-d H:i:s');
         $callback['ad_id'] = $channel['id'] = $ios['ad_id'] = $diy['id'] = $this->id;
         $attr['status'] = 2;
         // 新建,待审核
         $attr['ad_sdk_type'] = 1;
         // 只允许广告墙
         $attr['create_user'] = $me;
         $attr['create_time'] = $now;
         if ($im_cp) {
             $channel['feedback'] = 7;
             $channel['cycle'] = 1;
             $attr['ad_app_type'] = 2;
             $attr['cate'] = 1;
         } else {
             $admin = new Admin();
             $channel = array_merge($channel, $admin->get_owner($attr, $me));
         }
         if ($attr['replace']) {
             $this->replace = $attr['replace-with'];
             $attr['status'] = 3;
             // 欲替换之前的广告
             $attr['status_time'] = $attr['replace-time'];
         }
     }
     $attr = Utils::array_omit($attr, self::$FIELDS_CALLBACK, self::$FIELDS_CHANNEL, self::$FIELDS_IOS, self::$FIELDS_DIY, self::$FIELDS_OMIT);
     if ($only_split) {
         unset($attr['id']);
     }
     return [$callback, $ios, $channel, $diy, $attr, $permissions, $provinces];
 }
Ejemplo n.º 4
0
 protected function parse_filter(array $filters = null, array $options = array())
 {
     $defaults = ['to_string' => true];
     $options = array_merge($defaults, $options);
     if (isset($filters['salesman'])) {
         $filters['applicant'] = $filters['salesman'];
         unset($filters['salesman']);
     }
     if (isset($filters['start'])) {
         $filters['apply_time'][] = array('operator' => '>=', 'data' => $filters['start']);
         unset($filters['start']);
     }
     if (isset($filters['end'])) {
         $filters['apply_time'][] = array('operator' => '<=', 'data' => $filters['end']);
         unset($filters['end']);
     }
     if (isset($filters['pass_status'])) {
         $filters['a.status'][] = array('operator' => '>=', 'data' => $filters['pass_status']);
         unset($filters['pass_status']);
     }
     $spec = array('keyword');
     $pick = Utils::array_pick($filters, $spec);
     $filters = Utils::array_omit($filters, $spec);
     list($conditions, $params) = parent::parse_filter($filters, array('to_string' => false));
     foreach ($pick as $key => $value) {
         switch ($key) {
             case 'keyword':
                 if ($value) {
                     $conditions[] = "(`express_number` LIKE :keyword OR `full_name` LIKE :keyword OR `company` LIKE :keyword)";
                     $params[':keyword'] = "%{$value}%";
                 }
                 break;
         }
     }
     $conditions = $options['to_string'] ? ($options['is_append'] ? ' and ' : '') . implode(' AND ', $conditions) : $options;
     return array($conditions, $params);
 }
Ejemplo n.º 5
0
 protected function parse_admin_filter(array $filters = null, array $options = array())
 {
     $defaults = ['to_string' => true];
     $options = array_merge($defaults, $options);
     $spec = array('keyword', 'salesman', 'channel', 'follow');
     if (isset($filters['ad_name'])) {
         $filters['a.ad_name'] = $filters['ad_name'];
         unset($filters['ad_name']);
     }
     if (isset($filters['start'])) {
         $filters['create_time'][] = array('operator' => '>=', 'data' => $filters['start']);
         unset($filters['start']);
     }
     if (isset($filters['end'])) {
         $filters['create_time'][] = array('operator' => '<=', 'data' => $filters['start']);
         unset($filters['end']);
     }
     if (isset($filters['owner'])) {
         $filters['b.owner'] = $filters['owner'];
         unset($filters['owner']);
     }
     $pick = Utils::array_pick($filters, $spec);
     $filters = Utils::array_omit($filters, $spec);
     list($conditions, $params) = parent::parse_filter($filters, array('to_string' => false));
     foreach ($pick as $key => $value) {
         switch ($key) {
             case 'keyword':
                 $conditions[] = " (a.`ad_name` LIKE :keyword OR ifnull(h.company_short,ifnull(c.alias,b.channel)) LIKE :keyword)";
                 $params[':keyword'] = '%' . $value . '%';
                 break;
             case 'salesman':
                 $conditions[] = " (b.`owner`=:salesman OR `execute_owner`=:salesman)";
                 $params[':salesman'] = $value;
                 break;
             case 'channel':
                 $conditions[] = " ifnull(h.company_short,ifnull(c.alias,b.channel))=:channel";
                 $params[':channel'] = $value;
                 break;
             case 'follow':
                 $conditions[] = ' b.owner!=execute_owner';
                 break;
         }
     }
     $conditions = $options['to_string'] ? ($options['is_append'] ? ' and ' : '') . implode(' AND ', $conditions) : $options;
     return array($conditions, $params);
 }
Ejemplo n.º 6
0
 /**
  * @param array $filters
  * @param array $options
  *
  * @return array
  */
 protected function parse_filter(array $filters = null, array $options = array())
 {
     $defaults = ['to_string' => true];
     $options = array_merge($defaults, $options);
     $spec = array('keyword', 'today');
     $pick = Utils::array_pick($filters, $spec);
     $filters = Utils::array_omit($filters, $spec);
     list($conditions, $params) = parent::parse_filter($filters, array('to_string' => false));
     foreach ($pick as $key => $value) {
         switch ($key) {
             case 'keyword':
                 if ($value) {
                     $conditions[] = "(`company` LIKE :keyword OR `company_short` LIKE :keyword OR a.`agreement_id` LIKE\n            :keyword)";
                     $params[':keyword'] = '%' . $value . '%';
                 }
                 break;
             case 'today':
                 $value = date('Y-m-d', strtotime($value) - 86400 * 60);
                 $conditions[] = '(`doc_date`>=:protection_begin OR c.`status`=' . ADModel::ONLINE . '
         OR (c.`status`=' . ADModel::OFFLINE . ' AND `status_time`>=:protection_begin))';
                 $params[':protection_begin'] = $value;
                 break;
         }
     }
     $conditions = $options['to_string'] ? ($options['is_append'] ? ' and ' : '') . implode(' AND ', $conditions) : $conditions;
     return array($conditions, $params);
 }
Ejemplo n.º 7
0
 /**
  * @param array $filters
  * @param array $options
  *
  * @return array
  */
 protected function parse_filter(array $filters = null, array $options = array())
 {
     $defaults = ['to_string' => true];
     $options = array_merge($defaults, $options);
     $spec = array('keyword', 'salesman');
     $pick = Utils::array_pick($filters, $spec);
     $filters = Utils::array_omit($filters, $spec);
     list($conditions, $params) = parent::parse_filter($filters, array('to_string' => false));
     foreach ($pick as $key => $value) {
         switch ($key) {
             case 'keyword':
                 if ($value) {
                     $conditions[] = "(`alias` LIKE :keyword OR `full_name` LIKE :keyword)";
                     $params[':keyword'] = "%{$value}%";
                 }
                 break;
             case 'salesman':
                 if ($value) {
                     $conditions[] = "(b.`owner`=:salesman OR b.`execute_owner`=:salesman)";
                     $params[':salesman'] = $value;
                 }
                 break;
         }
     }
     $conditions = $options['to_string'] ? ($options['is_append'] ? ' and ' : '') . implode(' AND ', $conditions) : $options;
     return array($conditions, $params);
 }