123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
- /**
- * SettleModel.php UTF-8
- * 提现
- *
- * @date : 2018/5/18 16:33
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\model\finance;
- use huo\model\common\CommonModel;
- use huo\model\user\AgentExtModel;
- use huo\model\user\UserModel;
- use huolib\constant\SettleConst;
- use huomp\model\member\UnusualMemModel;
- class SettleModel extends CommonModel {
- protected $name = 'settle';
- // 开启自动写入时间戳字段
- protected $autoWriteTimestamp = true;
- public function agent() {
- return $this->belongsTo('huo\model\user\UserModel', 'agent_id', 'id');
- }
- /**
- * 获取余额
- *
- * @return \think\model\relation\HasOne
- */
- public function remain() {
- return $this->hasOne(AgentExtModel::className(), 'agent_id', 'agent_id')
- ->field('agent_id, share_total,frozen_amount,share_remain');
- }
- /**
- * 获取用户标记
- *
- * @return \think\model\relation\HasOne
- */
- public function memtag() {
- return $this->hasOne(UnusualMemModel::className(), 'agent_id', 'agent_id')
- ->field('agent_id, type');
- }
- /**
- * 创建提现订单
- *
- * @param array $data
- *
- * @return bool|string
- */
- public function createOrder($data = []) {
- $_data = $data;
- $_data['failreason'] = !empty($data['failreason']) ? $data['failreason'] : '';
- if (empty($data)) {
- return false;
- }
- if ($_obj = self::create($_data, true)) {
- $_sh_data['s_id'] = $_obj->id;
- $_sh_data['u_id'] = $data['agent_id'];
- $_sh_data['content'] = '创建提现订单';
- (new SettleHistoryModel())->addLog($_sh_data);
- return $_obj->id;
- } else {
- return false;
- }
- }
- /**
- * 更新单条记录
- *
- * @param array $data
- * @param int $id
- *
- * @return bool
- */
- public function updateData($data, $id) {
- $_map['id'] = $id;
- $_data = $data;
- $_rs = self::update($_data, $_map, true);
- if (false == $_rs) {
- return false;
- } else {
- return true;
- }
- }
- /**
- * @param int $id
- *
- * @return array|false
- */
- public function getDetail($id) {
- $_map['id'] = $id;
- $_data = $this->where($_map)->find();
- if (false == $_data) {
- return false;
- }
- if (is_object($_data)) {
- $_data = $_data->toArray();
- }
- return $_data;
- }
- /**
- * 获取提现总金额
- *
- * @param $agent_id
- *
- * @return float|int
- */
- public function getTotalAmount($agent_id) {
- $_status = [SettleConst::SETTLE_STATUS_OP_CHECK, SettleConst::SETTLE_STATUS_FIN_CHECK,
- SettleConst::SETTLE_STATUS_OK];
- return $this->where('agent_id', '=', $agent_id)
- ->where('status', 'in', $_status)
- ->sum('amount');
- }
- /**
- * 获取提现总金额
- *
- * @param $agent_id
- *
- * @return float|int
- */
- public function getSubTotalAmount($agent_id) {
- $_sub_ids = (new UserModel())->getIdsByParentId($agent_id);
- if (empty($_sub_ids)) {
- return 0.00;
- }
- $_status = [SettleConst::SETTLE_STATUS_OP_CHECK, SettleConst::SETTLE_STATUS_FIN_CHECK,
- SettleConst::SETTLE_STATUS_OK];
- return $this->where('agent_id', '=', $agent_id)
- ->where('status', 'in', $_status)
- ->sum('amount');
- }
- /**
- * 获取提现次数
- *
- * @param $agent_id
- *
- * @return int|string
- */
- public function getCnt($agent_id) {
- $_map = [];
- $_map['status'] = ['in', [SettleConst::SETTLE_STATUS_OP_CHECK, SettleConst::SETTLE_STATUS_FIN_CHECK,
- SettleConst::SETTLE_STATUS_OK, SettleConst::SETTLE_STATUS_QUEUE]];
- $_map['agent_id'] = $agent_id;
- return $this->where($_map)->count();
- }
- }
|