You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
3.7 KiB
PHTML

5 years ago
<?php
// +----------------------------------------------------------------------
// | 徐州梦创信息科技有限公司—专业的游戏运营,推广解决方案.
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.vlcms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: kefu@vlcms.com QQ97471547
// +----------------------------------------------------------------------
namespace Home\Model;
use Think\Model;
/**
* 文档基础模型
*/
class PromoteModel extends Model{
/**
* 构造函数
* @param string $name 模型名称
* @param string $tablePrefix 表前缀
* @param mixed $connection 数据库连接信息
*/
public function __construct($name = '', $tablePrefix = '', $connection = '') {
/* 设置默认的表前缀 */
$this->tablePrefix ='tab_';
/* 执行构造方法 */
parent::__construct($name, $tablePrefix, $connection);
}
public function isLogin() {
$user = session('promote_auth');
if (!empty($user)) {
return $user;
}
return null;
}
/**
* 更新时间
*/
protected function getTime() {
return date("Y-m-d H:i:s",time());
}
/**
* 转移平台币
* @param $uid 渠道ID
* @param $sid 子渠道ID
* @param $num 数量
*/
public function shift_coin($uid,$sid,$num){
//扣除渠道平台币
$e_res2 = $this->edit_promote_balance_coin($uid,$num,2,$sid);
//增加子渠道平台币
$e_res1 = $this->edit_promote_balance_coin($sid,$num,1,$uid);
if($e_res2 && $e_res1){
return true;
}else{
return false;
}
}
public function shiftCoin($params){
//扣除渠道平台币
$e_res2 = $this->edit_promote_balance_coin($uid,$num,2,$sid);
//增加子渠道平台币
$e_res1 = $this->edit_promote_balance_coin($sid,$num,1,$uid);
if($e_res2 && $e_res1){
return true;
}else{
return false;
}
}
/**
* 渠道平台币修改
* @param $promote_account 渠道帐号
* @param $num 平台币数量
* @param $type 1增加 2收回
*/
public function edit_promote_balance_coin($promote_id,$num,$type,$sid=0){
//开启事务
$this->startTrans();
$map['id'] = $promote_id;
$data = $this->where($map)->find();
if($type == 1){
$data['balance_coin'] += (int)$num;
$res = $this->where($map)->save($data);
}
if($type == 2){
$data['balance_coin'] -= (int)$num;
if($data['balance_coin'] < 0){
$data['balance_coin'] = 0;
}
$res = $this->where($map)->save($data);
}
$rec = D('PromoteCoin')->record($promote_id, $sid, $num, $type);
if($res && $rec){
//事务提交
$this->commit();
}else{
//事务回滚
$this->rollback();
}
return $res;
}
public function get_child_promote($pid,$field=true) {
$map['parent_id'] = $pid;
$map['grand_id'] = $pid;
$map['_logic'] = 'or';
return $this->field($field)->where($map)->select();
}
public function resetPassword($id, $password)
{
$password = $this->password($password, UC_AUTH_KEY);
return $this->where("id=".$id)->save(['password' => $password]);
}
public function password($str, $key = 'ThinkUCenter')
{
return '' === $str ? '' : md5(sha1($str) . $key);
}
}