/** * 判断是否需要奖励彩金 * Enter description here ... * @param unknown_type $userid */ public function is_no_user($userid) { $agentobj = Myagent::instance(); $agent = $agentobj->get_by_user_id($userid); if ($agent == false) { $is_agent = false; } else { if ($agent['flag'] == 2) { $is_agent = true; } else { $is_agent = false; } } if ($is_agent == false) { $relationobj = Myrelation::instance(); $relation = $relationobj->is_client_user($userid); if ($relation == false) { $is_agent = false; } else { $is_agent = true; } } if (!in_array($userid, self::$no_userid) && $is_agent == false) { return true; } else { return false; } }
public function __construct() { parent::__construct(); role::check('distribution_system_manage'); $this->userDao = Myuser::instance(); $this->contractDao = MyRealtime_contract::instance(); $this->relationDao = Myrelation::instance(); }
public function open($contractId) { //权限验证 role::check('superplaner_system_manage'); if (!$contractId) { remind::set(Kohana::lang('o_global.bad_request'), request::referrer(), 'error'); } $contractDao = Superplaner_Realtime_contract::instance(); $aContract = $contractDao->get_by_id($contractId); if ($aContract == null) { remind::set(Kohana::lang('o_contract.contract_not_exists'), request::referrer(), 'error'); } //检查实时合约 (类型与当前合约一致) $searchStruct = array(); $searchStruct['where'] = array('user_id' => $aContract['user_id'], 'type' => $aContract['type'], 'flag' => 2); $contractList = $contractDao->lists($searchStruct); if (count($contractList) > 0) { remind::set(Kohana::lang('o_contract.contract_has_exists'), request::referrer(), 'error'); } //检查是否有下级用户需要返点 $relationSearchCondition = array(); $relationSearchCondition['where'] = array('agentid' => $aContract['user_id'], 'client_type' => 1, 'flag' => 2); $relationDao = Myrelation::instance(); $relationList = $relationDao->lists($relationSearchCondition); // 如果是普通实时合约,则比对下级用户的client_rate if ($aContract['type'] == 0) { foreach ($relationList as $aRelation) { if ($aContract['rate'] <= $aRelation['client_rate']) { remind::set('下级用户返点率(普通)高于该合约的返点率', request::referrer(), 'error'); } } } else { if ($aContract['type'] == 7) { foreach ($relationList as $aRelation) { if ($aContract['rate'] <= $aRelation['client_rate']) { remind::set('下级用户返点率(北单)高于该合约的返点率', request::referrer(), 'error'); } } } } $aContract['flag'] = 2; if ($contractDao->edit($aContract)) { remind::set(Kohana::lang('o_global.update_success'), request::referrer(), 'success'); } else { remind::set(Kohana::lang('o_global.update_fail'), request::referrer(), 'error'); } }
public function set_client_rate() { //初始化返回数组 $return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array()); $request_data = $this->input->get(); $relationId = isset($request_data['relationId']) ? $request_data['relationId'] : ''; $client_rate = isset($request_data['client_rate']) ? $request_data['client_rate'] : ''; if (empty($relationId) || empty($client_rate)) { $return_struct['msg'] = Kohana::lang('o_global.bad_request'); exit(json_encode($return_struct)); } if (!is_numeric($client_rate) || $client_rate < 0 || $client_rate > 0.1) { $return_struct['msg'] = Kohana::lang('o_global.rate_rule'); exit(json_encode($return_struct)); } if (Myrelation::instance()->set_client_rate($relationId, $client_rate)) { $return_struct = array('status' => 1, 'code' => 200, 'msg' => Kohana::lang('o_global.update_success'), 'content' => array('client_rate' => $client_rate)); } else { $return_struct['msg'] = Kohana::lang('o_global.update_error'); } exit(json_encode($return_struct)); }
public function add($relationId) { //权限检查 得到所有可管理站点ID列表 role::check('distribution_system_manage'); if ($relationId == null || $relationId == '') { remind::set(Kohana::lang('o_global.bad_request'), request::referrer(), 'error'); } $relationDao = Myrelation::instance(); $theRelation = $relationDao->get_by_id($relationId); if ($theRelation == null) { remind::set(Kohana::lang('o_relation.relation_not_exists'), request::referrer(), 'error'); } $client = Myuser::instance()->get_by_id($theRelation['user_id']); $agent = Myuser::instance()->get_by_id($theRelation['agentid']); //确定 agent还可以给下级用户分配多少返点率 $rate_ability_array = $this->getAgentRateAbility($agent['id']); if ($rate_ability_array == null) { remind::set('请为上级代理添加月结合约', request::referrer(), 'error'); } // print_r($rate_ability_array); //初始化返点细则数组 $contractDetailData = array(); for ($index = 1; $index <= 10; $index++) { $contractDetailData[$index] = array('grade' => $index, 'minimum' => 0, 'maximum' => 0, 'rate' => 0); } // print_r($contractDetailData); if ($_POST) { $data = $_POST; $data['relation_id'] = $_POST['relationId']; $data['agent_id'] = $_POST['agentId']; $data['user_id'] = $_POST['clientId']; $data['contract_type'] = $_POST['contractType']; $data['type'] = $_POST['type']; $data['rate_ability'] = $_POST['rateAbility']; $data['taxrate'] = 0.0; $data['flag'] = 0; $data['createtime'] = date("Y-m-d H:i:s", time()); $data['starttime'] = date("Y-m-d H:i:s", time()); $data['lastsettletime'] = date("Y-m-d H:i:s", time()); for ($index = 1; $index <= 10; $index++) { $contractDetailData[$index]['grade'] = $_POST['grade-' . $index]; $contractDetailData[$index]['minimum'] = $_POST['minimum-' . $index]; $contractDetailData[$index]['maximum'] = $_POST['maximum-' . $index]; $contractDetailData[$index]['rate'] = $_POST['rate-' . $index]; } $detailList = array(); for ($index = 1; $index <= 10; $index++) { if ($contractDetailData[$index]['minimum'] == null && $contractDetailData[$index]['maximum'] == null && $contractDetailData[$index]['rate'] == null) { continue; } if ($contractDetailData[$index]['minimum'] == null || $contractDetailData[$index]['maximum'] == null || $contractDetailData[$index]['rate'] == null) { remind::set(Kohana::lang('o_contract.detail_not_completed'), request::referrer(), 'error'); return; } if (is_numeric($contractDetailData[$index]['minimum']) == false || is_numeric($contractDetailData[$index]['maximum']) == false || is_numeric($contractDetailData[$index]['rate']) == false) { remind::set('请在合约细则中输入数字', 'error', request::referrer()); return; } if ($contractDetailData[$index]['minimum'] >= $contractDetailData[$index]['maximum']) { remind::set(Kohana::lang('o_contract.detail_invalid'), request::referrer(), 'error'); return; } if (doubleval($contractDetailData[$index]['rate']) < 0) { remind::set('返点率不能小于0', request::referrer(), 'error'); return; } if (doubleval($contractDetailData[$index]['rate']) > $data['rate_ability']) { remind::set('超出代理的返点能力', request::referrer(), 'error'); return; } if (isset($contractDetailData[$index - 1]['maximum'])) { if ($contractDetailData[$index]['minimum'] != $contractDetailData[$index - 1]['maximum']) { remind::set('销售额范围不连续', request::referrer(), 'error'); return; } } $detailList[] = $contractDetailData[$index]; } // print_r($contractDetailData); //标签过滤 tool::filter_strip_tags($data); $month_contractDao = MyMonth_contract::instance(); if ($contractId = $month_contractDao->add($data)) { $month_contract_detailDao = MyMonth_contract_detail::instance(); foreach ($detailList as $aContractDetail) { $aContractDetail['contract_id'] = $contractId; $aContractDetail['createtime'] = date("Y-m-d H:i:s", time()); $month_contract_detailDao->add($aContractDetail); } remind::set(Kohana::lang('o_global.add_success'), 'distribution/client_month_contract?relationId=' . $relationId, 'success'); } else { remind::set(Kohana::lang('o_global.add_error'), request::referrer(), 'error'); } } $this->template->content = new View("distribution/client_month_contract_add"); $this->template->content->relation = $theRelation; $this->template->content->agent = $agent; $this->template->content->client = $client; $this->template->content->rate_ability_array = $rate_ability_array; $this->template->content->contractDetailData = $contractDetailData; }