You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
4.1 KiB
87 lines
4.1 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
|
|
// +----------------------------------------------------------------------
|
|
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\wap\model\special;
|
|
|
|
use traits\ModelTrait;
|
|
use basic\ModelBasic;
|
|
use app\wap\model\store\StorePink;
|
|
use app\wap\model\topic\TestPaperObtain;
|
|
use app\wap\model\material\DataDownloadBuy;
|
|
|
|
/**专题兑换
|
|
* Class SpecialExchange
|
|
* @package app\wap\model\special
|
|
*/
|
|
class SpecialExchange extends ModelBasic
|
|
{
|
|
use ModelTrait;
|
|
|
|
/**提交兑换
|
|
* @param $uid
|
|
* @param $code
|
|
*/
|
|
public static function userExchangeSubmit($uid, $special_id, $code)
|
|
{
|
|
if (!$uid) return self::setErrorInfo('参数错误!');
|
|
$exchange = SpecialExchange::where(['exchange_code' => $code, 'special_id' => $special_id])->find();
|
|
if (!$exchange) return self::setErrorInfo('兑换码不存在或活动和兑换码不匹配!');
|
|
if (!$exchange['status']) return self::setErrorInfo('兑换码已结束!');
|
|
if ($exchange['use_uid'] > 0 || $exchange['use_time'] > 0) return self::setErrorInfo('兑换码已兑换!');
|
|
$batch = SpecialBatch::where('id', $exchange['card_batch_id'])->find();
|
|
if (!$batch['status']) return self::setErrorInfo('活动已结束!');
|
|
self::beginTrans();
|
|
$pinkId = StorePink::where(['cid' => $special_id, 'status' => '1', 'uid' => $uid])->order('add_time desc')->value('id');
|
|
if ($pinkId) {
|
|
return self::setErrorInfo('您正在拼团,无法兑换!', true);
|
|
}
|
|
$res = self::edit(['use_uid' => $uid, 'use_time' => time()], $exchange['id'], 'id');
|
|
if ($res && $batch) {
|
|
$res1 = SpecialBatch::edit(['use_num' => bcadd($batch['use_num'], 1, 0)], $exchange['card_batch_id'], 'id');
|
|
if (!$res1) {
|
|
return self::setErrorInfo('数据修改有误!', true);
|
|
}
|
|
$special = Special::PreWhere()->where('id', $special_id)->field('id,is_light,type,money,pay_type,validity')->find();
|
|
if (!$special) {
|
|
return self::setErrorInfo('兑换码关联的专题不存在!', true);
|
|
}
|
|
if (in_array($special['money'], [0, 0.00]) || in_array($special['pay_type'], [PAY_NO_MONEY, PAY_PASSWORD])) {
|
|
$isPay = 1;
|
|
} else {
|
|
$isPay = (!$uid || $uid == 0) ? false : SpecialBuy::PaySpecial($special_id, $uid);
|
|
}
|
|
if ($isPay) {
|
|
return self::setErrorInfo('该专题是免费的或者已购买,无需兑换!', true);
|
|
}
|
|
if ($special['type'] == SPECIAL_COLUMN) {
|
|
$special_source = SpecialSource::getSpecialSource($special['id']);
|
|
if ($special_source) {
|
|
foreach ($special_source as $k => $v) {
|
|
$task_special = Special::PreWhere()->where(['id'=>$v['source_id']])->find();
|
|
if ($task_special['is_show'] == 1) {
|
|
SpecialBuy::setBuySpecial('', $uid, $v['source_id'], 4, $task_special['validity'], $special_id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
SpecialBuy::setBuySpecial('', $uid, $special_id, 4, $special['validity']);
|
|
TestPaperObtain::setTestPaper('', $uid, $special_id, 2);
|
|
DataDownloadBuy::setDataDownload('', $uid, $special_id, 1);
|
|
self::commitTrans();
|
|
$data['id'] = $special['id'];
|
|
$data['is_light'] = $special['is_light'];
|
|
return $data;
|
|
} else {
|
|
return self::setErrorInfo('数据修改有误!', true);
|
|
}
|
|
}
|
|
|
|
}
|
|
|