CreditModel::startTransfer PHP Method

startTransfer() public method

积分转账
public startTransfer ( array $data = [] ) : boolean
$data array 转账数据
return boolean
    public function startTransfer(array $data = array())
    {
        $data = count($data) ? $data : $_POST;
        if (!$data['toUid'] || $data['num'] <= 0 || !$data['fromUid']) {
            return false;
        }
        $score = $this->getUserCredit($data['toUid']);
        $score = intval($score['credit']['score']['value']);
        $score2 = $this->getUserCredit($data['fromUid']);
        $score2 = intval($score2['credit']['score']['value']);
        if ($score2 < intval($data['num'])) {
            return false;
        }
        $add['type'] = 3;
        $add['uid'] = intval($data['toUid']);
        $add['action'] = '积分转入';
        $add['des'] = t($data['desc']);
        $add['change'] = intval($data['num']);
        $add['ctime'] = time();
        $add['detail'] = '{"score":"' . $add['change'] . '"}';
        $add2 = $add;
        $add2['uid'] = intval($data['fromUid']);
        $add2['change'] = -1 * intval($data['num']);
        $add2['action'] = '积分转出';
        $add2['detail'] = '{"score":"' . $add2['change'] . '"}';
        M('credit_user')->where("uid={$add2['uid']}")->save(array('score' => $score2 - $add['change']));
        M('credit_user')->where("uid={$add['uid']}")->save(array('score' => $score + $add['change']));
        //转账对象积分变动记录
        //当前用户积分变动记录
        D('credit_record')->add($add) && D('credit_record')->add($add2);
        $this->cleanCache($data['toUid']);
        $this->cleanCache($data['fromUid']);
        return true;
    }