/** * @param int $accountId * @param \DateTime $date * @return array */ public function findOneByAccountAndPeriod($accountId, \DateTime $date) { $period = Util::getPreviousQuarter($date); $query = $this->fpdo->from($this->table)->leftJoin('bill ON bill.id = bill_item.bill_id')->select('bill.year')->where('bill_item.system_account_id', $accountId)->where('bill.year', $period['year'])->where('bill.quarter', $period['quarter']); $result = $query->limit(1)->fetchAll(); return $this->bindCollection($result)->first(); }
/** * 退出 */ public function index() { //记录日志 D('Logs')->action(LogsModel::ACT_LOGOUT)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__)->ok(); Util::setCookie('u', '', -1); $this->assign('waitSecond', 0); //exit($this->success('退出成功!', U('/Admin/Login'))); exit($this->redirect(U('/Admin/System/Login'), null, 0, '退出成功!')); }
/** * @return bool|mixed * @throws Exception */ private static function _getAccessToken() { $url = sprintf(self::$access_token_url, APPID, APPSECRET); $accessToken = Util::get($url); $accessToken = json_decode($accessToken, true); if (!isset($accessToken['access_token'])) { throw new Exception("获取ACCESS_TOKEN失败"); } //缓存时间,用来判断access_token是否过期 $accessToken['atime'] = time(); $accessTokenJson = json_encode($accessToken); //缓存基础access_token S(self::$cache_id, $accessTokenJson); return $accessToken; }
/** * @param ArrayCollection $initialLots * @param LotModel $model * @return int|null */ protected function compareEqualQuantity(ArrayCollection $initialLots, LotModel $model) { foreach ($initialLots as $initialLot) { if (Util::floatcmp($initialLot->getQuantity(), $model->getQuantity())) { $model->setStatus(WealthbotLot::LOT_CLOSED); $model->setWasClosed(true); $model->setInitialLotId($initialLot->getId()); $model->setRealizedGain($model->getAmount() - $initialLot->getAmount()); // Close initial lot $this->closedLot($initialLot->getId()); // Save lot return $this->lotRepo->save($model); } } return null; }
public static function generate(array $params) { $message = null; $bracket = self::_getBracket(array_shift($params)); if ($bracket) { $cacheKey = 'Controller::Admin::Advance_bracketAdvanceTime_' . $bracket->id; $lastBracketAdvance = Lib\Cache::Get($cacheKey); if (!$lastBracketAdvance || $lastBracketAdvance + self::BRACKET_ADVANCE_DELAY < time()) { Lib\Cache::Set($cacheKey, time()); $bracket->advance(); $message = new stdClass(); $message->type = 'success'; $message->message = $bracket->name . ' has advanced to the next round'; self::_refreshCaches($bracket); } else { $message = new stdClass(); $message->type = 'error'; $delta = $lastBracketAdvance + self::BRACKET_ADVANCE_DELAY - time(); $time = Lib\Util::relativeTime(time() - $delta); $message->message = $bracket->name . ' was recently advanced. Please wait ' . $time . ' before advancing again.'; } } return self::_main($message, true); }
public function picUploadHandler() { if (IS_POST) { $keys = array_keys($_FILES); $configName = $keys['0']; $upload = new Upload(); //设置附件上传大小 $upload->maxSize = 3145728; //设置附件上传类型 $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); //设置附件上传根目录 $upload->rootPath = './uploads/'; $info = $upload->upload(); $logs = D('Logs')->action(LogsModel::ACT_UPDATE)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__); //上传错误提示错误信息 if (!$info) { $logs->exec(json_encode($info))->fail(); exit(Util::response(self::__ERROR__2, "上传失败!")); } else { $filePath = ltrim($upload->rootPath, '.') . $info[$configName]['savepath'] . $info[$configName]['savename']; $configModel = D('Config'); $res = $configModel->getConfigByName($configName); $res['value'] = $filePath; if ($res) { $updateRes = $configModel->saveConfig($res); if ($updateRes) { $logs->exec($configModel->_sql())->ok(); exit(Util::response(self::__OK__, "上传成功!")); } else { $logs->exec($configModel->_sql())->fail(); exit(Util::response(self::__ERROR__2, "上传失败!")); } } } } }
public function calculatePeriod() { $curDate = $this->getCurDate(); $last1Year = $this->getModifyDate('-1 year'); $last3Year = $this->getModifyDate('-3 year'); $actualTwr = new Actual(); // NET $model = new PortfolioTwrPeriodModel(); $model->setNetMtd($actualTwr->rule(new PortfolioActualNetRule($this->getKey(), Util::firstDayOf('month', $curDate), $curDate))); $model->setNetQtd($actualTwr->rule(new PortfolioActualNetRule($this->getKey(), Util::firstDayOf('quarter', $curDate), $curDate))); $model->setNetYtd($actualTwr->rule(new PortfolioActualNetRule($this->getKey(), Util::firstDayOf('year', $curDate), $curDate))); $model->setNetYr1($actualTwr->rule(new PortfolioActualNetRule($this->getKey(), $last1Year, $curDate))); $model->setNetYr3($actualTwr->rule(new PortfolioActualNetRule($this->getKey(), $last3Year, $curDate))); $model->setNetSinceInception($actualTwr->rule(new PortfolioActualNetRule($this->getKey()))); // GROSS $model->setGrossMtd($actualTwr->rule(new PortfolioActualGrossRule($this->getKey(), Util::firstDayOf('month', $curDate), $curDate))); $model->setGrossQtd($actualTwr->rule(new PortfolioActualGrossRule($this->getKey(), Util::firstDayOf('quarter', $curDate), $curDate))); $model->setGrossYtd($actualTwr->rule(new PortfolioActualGrossRule($this->getKey(), Util::firstDayOf('year', $curDate), $curDate))); $model->setGrossYr1($actualTwr->rule(new PortfolioActualGrossRule($this->getKey(), $last1Year, $curDate))); $model->setGrossYr3($actualTwr->rule(new PortfolioActualGrossRule($this->getKey(), $last3Year, $curDate))); $model->setGrossSinceInception($actualTwr->rule(new PortfolioActualGrossRule($this->getKey()))); $model->setClientId($this->getKey()); // Save portfolio period return $this->periodRepo->save($model); }
/** * 用户退出登录 */ public function userLogout() { Util::setRawCookie('u', '', -1); }
/** * 得到有效的搜索词 * @param $keyword * @param string $method * @return string */ public static function getValidSearchKeyword($keyword, $method = 'AND') { $sep = strtoupper($method) === 'AND' ? ' AND ' : ' '; return $keyword ? urlencode(join($sep, array_unique(Util::explode(' ', str_replace(' ', ' ', $keyword))))) : ''; }
/** * @param SystemClientAccountModel $account */ public function calculatePeriod(SystemClientAccountModel $account) { $curDate = $this->getCurDate(); $last1Year = $this->getModifyDate('-1 year'); $last3Year = $this->getModifyDate('-3 year'); $actualTwr = new Actual(); // NET $model = new AccountTwrPeriodModel(); $model->setNetMtd($actualTwr->rule(new AccountActualNetRule($account->getAccountNumber(), Util::firstDayOf('month', $curDate), $curDate))); $model->setNetQtd($actualTwr->rule(new AccountActualNetRule($account->getAccountNumber(), Util::firstDayOf('quarter', $curDate), $curDate))); $model->setNetYtd($actualTwr->rule(new AccountActualNetRule($account->getAccountNumber(), Util::firstDayOf('year', $curDate), $curDate))); $model->setNetYr1($actualTwr->rule(new AccountActualNetRule($account->getAccountNumber(), $last1Year, $curDate))); $model->setNetYr3($actualTwr->rule(new AccountActualNetRule($account->getAccountNumber(), $last3Year, $curDate))); $model->setNetSinceInception($actualTwr->rule(new AccountActualNetRule($account->getAccountNumber(), $account->getPerformanceInceptionAsDateTime()))); // GROSS $model->setGrossMtd($actualTwr->rule(new AccountActualGrossRule($account->getAccountNumber(), Util::firstDayOf('month', $curDate), $curDate))); $model->setGrossQtd($actualTwr->rule(new AccountActualGrossRule($account->getAccountNumber(), Util::firstDayOf('quarter', $curDate), $curDate))); $model->setGrossYtd($actualTwr->rule(new AccountActualGrossRule($account->getAccountNumber(), Util::firstDayOf('year', $curDate), $curDate))); $model->setGrossYr1($actualTwr->rule(new AccountActualGrossRule($account->getAccountNumber(), $last1Year, $curDate))); $model->setGrossYr3($actualTwr->rule(new AccountActualGrossRule($account->getAccountNumber(), $last3Year, $curDate))); $model->setGrossSinceInception($actualTwr->rule(new AccountActualGrossRule($account->getAccountNumber(), $account->getPerformanceInceptionAsDateTime()))); $model->setAccountNumber($account->getAccountNumber()); // Save $this->periodRepo->save($model); }
/** * 删除配置 */ public function del() { $ids = array_unique((array) Util::getSafeText(I('id', 0))); $configModel = D('Config'); $res = $configModel->delConfig($ids); $this->logWriter = $this->logWriter->action(LogsModel::ACT_DELETE)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__)->exec($configModel->_sql()); if ($res) { $this->logWriter->ok(); exit(Util::response(self::__OK__, "删除成功!")); } else { $this->logWriter->fail(); exit(Util::response(self::__ERROR__3, "删除配置失败!")); } }
public function regedit() { if (IS_POST) { $uname = Util::getSafeText(trim(I('post.uname'))); $userpwd = Util::getSafeText(I('post.passwd')); $userrepwd = Util::getSafeText(I('post.repwd')); $group = Util::getSafeText(I('post.group')); $blocked = Util::getSafeText(I('post.blocked')) ? Util::getSafeText(I('post.blocked')) : 1; //$expirtime = Util::getSafeText(trim(I('post.expirtime'))); //$nickname = Util::getSafeText(trim(I('post.nickname'))); if (empty($uname) || empty($userpwd) || empty($userrepwd) || $userpwd !== $userrepwd) { exit(Util::response(self::__ERROR__0, "参数错误!")); } $data = array('uname' => $uname, 'passwd' => Util::genMd5Pwd($userpwd), 'blocked' => $blocked, 'createtime' => time(), 'expirtime' => time() + 100 * 12 * 30 * 24 * 3600); $userModel = D('Useradmin'); if ($userModel->where(array('uname' => $uname))->find()) { exit(Util::response(self::__ERROR__2, "用户名已存在!")); } $res = $userModel->addRow($data); if ($res) { $authGroupAccessModel = D('AuthGroupAccess'); $authGroupAccessModel->addRow(array('uid' => $res, 'group_id' => $group)); exit(Util::response(self::__OK__, "注册成功,等待管理员审核!")); } else { exit(Util::response(self::__ERROR__1, "注册失败!")); } } else { $authGroupModel = D('AuthGroup'); $groups = $authGroupModel->getAll(); $this->assign('groups', $groups); $this->assign('isEdit', false); $this->assign('addAction', U('regedit')); $this->display(); } }
/** * Adds a set of standard utility helpers to the render engine */ private static function _addStandardHelpers() { self::addHelper('relativeTime', function ($template, $context, $args, $source) { return Util::relativeTime($context->get($args)); }); // Idea lifted right out of dust.js self::addHelper('sep', function ($template, $context, $args, $source) { if (!$context->get('@last')) { return $source; } }); self::addHelper('jsonBlob', function ($template, $context, $args, $source) { return json_encode($context->get($args)); }); }
/** * 根据用户Id,获取全部客户端连接ID * @param string|array $uid_list 用户ID列表,逗号分隔或一个数组 * @param bool $remove_current_user 如果为false,那么如果查询结果有当前用户将会保留 * @return array 返回一个包含指定用户id的客户端连接Id数组 */ public static function getClientByUser($uid_list, $remove_current_user = true) { $in_list = Util::formatIntList($uid_list); if (!$in_list) { return array(); } $where = "uid IN({$in_list})"; if ($remove_current_user) { $uid = (int) self::getLoggedUserInfo('uid'); if ($uid) { $where .= " AND uid<>{$uid}"; } } $db = self::db(); $table = self::table('message_ucmap'); $result = $db->select('client_id')->from($table)->where($where)->column(); return $result ? $result : array(); }
/** * 删除菜单分组 */ public function del() { $ids = array_unique((array) Util::getSafeText(I('id', 0))); $menuGroupModel = D('MenuGroup'); //TODO:菜单分组被使用的情况下不能删除 foreach ($ids as $id) { } $res = $menuGroupModel->delRowsInIds($ids); $this->logWriter = $this->logWriter->action(LogsModel::ACT_DELETE)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__)->exec($menuGroupModel->_sql()); if ($res) { $this->logWriter->ok(); exit(Util::response(self::__OK__, "删除成功!")); } else { $this->logWriter->fail(); exit(Util::response(self::__ERROR__3, "删除菜单分组失败!")); } }
/** * 写入组权限 */ public function writeGroup() { if (isset($_POST['rules'])) { sort($_POST['rules']); $_POST['rules'] = implode(',', array_unique($_POST['rules'])); } $_POST['module'] = 'admin'; $_POST['type'] = AuthGroupModel::TYPE_ADMIN; $authGroupModel = M('AuthGroup'); $data = $authGroupModel->create(); if ($data) { if (empty($data['id'])) { $r = $authGroupModel->add(); } else { $r = $authGroupModel->save(); } $this->logWriter = $this->logWriter->action(LogsModel::ACT_UPDATE)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__)->exec($authGroupModel->_sql()); if ($r === false) { $this->logWriter->fail(); exit(Util::response(self::__ERROR__4, "操作失败!")); //$this->error('操作失败'.$authGroupModel->getError()); } else { $this->logWriter->ok(); exit(Util::response(self::__OK__, "操作成功!")); } } else { exit(Util::response(self::__ERROR__5, "操作失败!")); } }
/** * 生成Token * @param $userId * @return mixed */ public function _createToken($userId) { return Util::aesEncode($userId . '_' . $this->time . '_' . C('TOKEN_DISTURB_CODE')); }
/** * 删除菜单 */ public function del() { $ids = array_unique((array) Util::getSafeText(I('id', 0))); $menuModel = D('Menu'); //检查是否存在子菜单,存在子菜单则不允许删除 $hasChild = $menuModel->hasChild($ids); if ($hasChild) { exit(Util::response(self::__ERROR__4, "该菜单包含子菜单,不允许删除!")); } $res = $menuModel->delMenus($ids); $this->logWriter = $this->logWriter->action(LogsModel::ACT_DELETE)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__)->exec($menuModel->_sql()); if ($res) { $this->logWriter->ok(); exit(Util::response(self::__OK__, "删除菜单成功!")); } else { $this->logWriter->fail(); exit(Util::response(self::__ERROR__3, "删除菜单失败!")); } }
public function del() { $ids = array_unique((array) Util::getSafeText(I('id', 0))); $userAdminModel = D('Useradmin'); $res = $userAdminModel->delRowsInIds($ids); $this->logWriter = $this->logWriter->action(LogsModel::ACT_DELETE)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__)->exec($userAdminModel->_sql()); if ($res) { $this->logWriter->ok(); //$this->success('删除用户成功!'); exit(Util::response(self::__OK__, "删除用户成功!")); } else { $this->logWriter->fail(); exit(Util::response(self::__ERROR__3, "删除用户失败!")); } }
/** * 接口调用请求说明 * * 主要使用场景: * 开发者用于生成二维码的原链接(商品、支付二维码等)太长导致扫码速度和成功率下降, * 将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。 * * @param string $url 待转的长链接 * @return string JSON串 * {"errcode":0,"errmsg":"ok","short_url":"http:\/\/w.url.cn\/s\/AvCo6Ih"} * @see http://mp.weixin.qq.com/wiki/10/165c9b15eddcfbd8699ac12b0bd89ae6.html */ public static function toShortUrl($url) { $query_url = sprintf(self::$long_to_short_url, AccessToken::getAccessToken()); $post_ary = array('long_url' => $url, 'action' => 'long2short'); $post_data = json_encode($post_ary); return Util::post($query_url, $post_data); }
/** * 提供修改用户资料功能 */ public function userinfo() { $id = $this->userId; $userModel = D('Useradmin'); if (IS_POST) { $uname = Util::getSafeText(trim(I('post.uname'))); $data = array('uname' => $uname, 'createtime' => time(), 'expirtime' => time() + 100 * 12 * 30 * 24 * 3600); $res = $userModel->updateRows($data, intval($id)); $this->logWriter = $this->logWriter->action(LogsModel::ACT_UPDATE)->called(ltrim(__CLASS__, __NAMESPACE__) . '::' . __FUNCTION__)->exec($userModel->_sql()); if ($res) { $authGroupAccessModel = D('AuthGroupAccess'); $authGroupAccessModel->updateRows(array(), array("uid" => intval($id))); $this->logWriter->ok(); exit(Util::response(self::__OK__, "修改用户信息成功!")); } else { $this->logWriter->fail(); exit(Util::response(self::__ERROR__2, "修改用户信息失败!")); } } else { $authGroupModel = D('AuthGroup'); $groups = $authGroupModel->getAll(); $this->assign('groups', $groups); $authGroupAccessModel = D('AuthGroupAccess'); $row = $authGroupAccessModel->getRow(array("uid={$id}")); $group_id = $row['group_id']; $this->assign('groupId', $group_id); $map = array("id={$id}"); $user = $userModel->getRow($map); $this->assign('user', $user); $this->assign('isEdit', true); $this->pageTitle("修改用户信息"); $this->display(); } }