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.
628 lines
24 KiB
628 lines
24 KiB
<?php
|
|
defined('IN_IA') or exit('Access Denied');
|
|
|
|
/**
|
|
* 用户权益 / 权益启用 / 权益
|
|
*/
|
|
class Rights
|
|
{
|
|
protected static $tableName = PDO_NAME . 'rights';
|
|
|
|
public static $dateUnit = [
|
|
1 => '天', /* 2 => '周',*/ 3 => '月'/*, 4 => '年'*/
|
|
];
|
|
|
|
public static $graduatedSchool = [6 => '大专',1 => '统招本科', 2 => '重点院校', 3 => '双一流', 4 => '211', 5 => '985'];
|
|
|
|
public static $experience = [1 => '在校干部', 2 => '实习经验'];
|
|
|
|
public static $levelList = ['基础配置'];
|
|
|
|
public static $amountUnit = [1 => '个', 2 => '份' , 3 => '次'];
|
|
|
|
public static $unit = [1 => '个', 2 => '份' , 3 => '次', 4 => '天'];
|
|
|
|
public static $calculateMethod = [1 => '天', 2 => '个'];
|
|
|
|
public static $monthData = [30 => '一个月', 90 => '三个月', 180 => '六个月' , 365 => '一年'];
|
|
|
|
public static $dayData = [10 => '10天', 30 => '30天', 50 => '50天' , 100 => '100天'];
|
|
|
|
public static $numData = [10 => '10次', 30 => '30次', 50 => '50次' , 100 => '100次'];
|
|
|
|
public static $copyData = [10 => '10份', 30 => '30份', 50 => '50份' , 100 => '100份'];
|
|
|
|
public static function dump($data,$is_die = true) {
|
|
echo "<pre>";
|
|
var_dump($data);
|
|
if ($is_die) die;
|
|
}
|
|
|
|
public static function getRightsBagAll () {
|
|
return pdo_getall(PDO_NAME . 'rights_bag',['status' => 1]);
|
|
}
|
|
|
|
public static function getRightsList() {
|
|
return pdo_getall(self::$tableName,['status' => 1]);
|
|
}
|
|
|
|
/**
|
|
* 权益合并显示列表
|
|
* @return array
|
|
*/
|
|
public static function getRightsMergeList()
|
|
{
|
|
$list = [];
|
|
|
|
$res = self::getRightsList();
|
|
|
|
foreach ($res as $row) {
|
|
|
|
$base_rights = '';
|
|
$vip_rights = '';
|
|
$specRes = pdo_getall(PDO_NAME . 'rights_spec',['rightsid' => $row['id']]);
|
|
foreach ($specRes as $specRow) {
|
|
if ($specRow['rights_bagid'] == 1) {
|
|
$base_rights = self::getSpecInfo($specRow,$row['rights_type']);
|
|
} elseif ($specRow['rights_bagid'] == 2) {
|
|
$vip_rights = self::getSpecInfo($specRow,$row['rights_type']);
|
|
}
|
|
}
|
|
$list[] = [
|
|
'rights_type' => $row['rights_type'],
|
|
'base_rights' => $base_rights,
|
|
'vip_rights' => $vip_rights
|
|
];
|
|
}
|
|
|
|
return $list;
|
|
}
|
|
|
|
/**
|
|
* 获取规格信息
|
|
* @param $item // 权益规格数据
|
|
* @param $rights_type // 权益类型
|
|
* @return string
|
|
*/
|
|
protected static function getSpecInfo($item,$rights_type) {
|
|
$rights_str = '';
|
|
|
|
if ($item['amount'] > 0) {
|
|
$rights_str .= $item['amount'] . self::$amountUnit[$item['amount_unit']];
|
|
}
|
|
if ($item['date_amount'] > 0) {
|
|
if (!empty($rights_str)) $rights_str .= '/';
|
|
$rights_str .= $item['date_amount'] . self::$dateUnit[$item['date_unit']];
|
|
}
|
|
|
|
if ($rights_type == '精准人才卡' && !empty($rights_str) && $item['date_amount'] <= 0) {
|
|
$rights_str .= '/简历';
|
|
}
|
|
return $rights_str;
|
|
}
|
|
|
|
/**
|
|
* 获取用户权益使用信息
|
|
* @param $mid
|
|
* @return array
|
|
*/
|
|
public static function getMemberRightsUsageInfo($mid) {
|
|
|
|
$diyData = [];
|
|
|
|
$rightsRes = self::getRightsList();
|
|
|
|
foreach ($rightsRes as $rightsRow) {
|
|
|
|
$memberRightsWhere = ['mid' => $mid,'status' => 1,'rightsid' => $rightsRow['id']];
|
|
$memberRights = pdo_get(PDO_NAME .'member_rights',$memberRightsWhere);
|
|
$use_amount = $memberRights['use_amount'] ?: 0;
|
|
$diyData[] = [
|
|
'name' => $rightsRow['rights_type'],
|
|
'total_amount' => $memberRights['total_amount'] ?: 0,
|
|
'use_amount' => self::getUseAmount($rightsRow['id'],$memberRights['id'],$use_amount,$memberRights['total_amount']),
|
|
'unit' => self::$calculateMethod[$rightsRow['calculate_method']],
|
|
'rights_id' => $rightsRow['id']
|
|
];
|
|
}
|
|
|
|
# 特殊标题
|
|
$arr = ['猎头服务', '视频号直播', '企业视频制作'];
|
|
foreach ($arr as $name) {
|
|
$diyData[] = [
|
|
'name' => $name,
|
|
'total_amount' => '',
|
|
'use_amount' => '',
|
|
'unit' => '',
|
|
'rights_id' => ''
|
|
];
|
|
}
|
|
|
|
return $diyData;
|
|
}
|
|
|
|
/**
|
|
* 获取剩余数量
|
|
* @param $rightsid // 权益ID
|
|
* @param $member_rightsid // 用户权益ID
|
|
* @param $use_amount // 使用权益数量
|
|
* @param $total_amount // 总权益数量
|
|
* @return int|mixed
|
|
*/
|
|
public static function getUseAmount($rightsid,$member_rightsid,$use_amount,$total_amount) {
|
|
if (!in_array($rightsid,[2,5])) return $total_amount - $use_amount; // 置顶权益和精准人才卡特殊处理
|
|
$useTotalAmount = 0;
|
|
$rightsUse = pdo_getall(PDO_NAME . 'member_rights_use',['member_rightsid' => $member_rightsid],['use_total_amount']);
|
|
foreach ($rightsUse as $rightsUseValue) {
|
|
$useTotalAmount += $rightsUseValue['use_total_amount'];
|
|
}
|
|
return $total_amount - $useTotalAmount;
|
|
}
|
|
|
|
/**
|
|
* 获取企业招聘岗位信息
|
|
* @param $mid
|
|
* @return array
|
|
*/
|
|
public static function getStoreRecruitInfo($mid) {
|
|
$data = [];
|
|
|
|
$storeIdArr = [];
|
|
$storeUser = pdo_getall(PDO_NAME . 'merchantuser',['mid' => $mid],['storeid']);
|
|
foreach ($storeUser as $storeUserRow) {
|
|
$storeIdArr[] = $storeUserRow['storeid'];
|
|
}
|
|
|
|
$recruit = pdo_getall(PDO_NAME . 'recruit_recruit',['release_sid' => $storeIdArr, 'status' => 4],['id','release_sid','title']);
|
|
foreach ($recruit as $recruit_row) {
|
|
$data[] = [
|
|
'recruit_id' => $recruit_row['id'],
|
|
'recruit_title' => $recruit_row['title']
|
|
];
|
|
}
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* 权益支付成功 生成用户权益
|
|
* @param $mid
|
|
* @param $orderid // 订单id
|
|
* @param $orderData // 订单数据
|
|
* @return void
|
|
*/
|
|
public static function rightsPaySuccess($mid,$orderid, $orderData = array()) {
|
|
global $_W;
|
|
|
|
if (empty($orderData)) {
|
|
$orderData = pdo_get(PDO_NAME . 'order',['id' => $orderid,'plugin' => 'rights']);
|
|
}
|
|
|
|
if ($orderData) {
|
|
|
|
$rightsid = $orderData['fkid']; // 权益id 或是 权益包id
|
|
$payfor = $orderData['payfor']; // rights-权益 rightsBag-权益包
|
|
$num = $orderData['num']; // 购买数量
|
|
|
|
switch ($payfor) {
|
|
case 'rights':
|
|
|
|
self::createMemberRights($_W['uniacid'],$rightsid,$mid,$num);
|
|
break;
|
|
case 'rightsBag':
|
|
|
|
$rightsSpec = pdo_getall(PDO_NAME . 'rights_spec',['rights_bagid' => $rightsid]);
|
|
foreach ($rightsSpec as $row) {
|
|
if ($row['calculate_method'] == 1) {
|
|
$num = $row['date_amount'];
|
|
} elseif ($row['calculate_method'] == 2) {
|
|
$num = $row['amount'];
|
|
}
|
|
self::createMemberRights($_W['uniacid'],$row['rightsid'],$mid,$num,$rightsid);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 初始商家创建基础权益
|
|
* @param $mid
|
|
* @param $uniacid
|
|
* @return string|void
|
|
*/
|
|
public static function createBaseRights($mid,$uniacid) {
|
|
$queryExists = pdo_get(PDO_NAME . 'member_rights',['mid' => $mid]);
|
|
if ($queryExists) return '';
|
|
$rightsBag = pdo_getall(PDO_NAME . 'rights_spec',['rights_bagid' => 1]);
|
|
foreach ($rightsBag as $value) {
|
|
if ($value['rightsid'] == 3) continue;
|
|
if ($value['amount'] > 0) {
|
|
self::createMemberRights($uniacid,$value['rightsid'],$mid,$value['amount'],1);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 创建|修改 用户权益
|
|
* @param $uniacid
|
|
* @param $rightsid
|
|
* @param $mid
|
|
* @param $num
|
|
* @param $rights_bagid
|
|
* @return void
|
|
*/
|
|
protected static function createMemberRights($uniacid,$rightsid,$mid,$num,$rights_bagid = 0) {
|
|
$memberRightsWhere = ['rightsid' => $rightsid,'mid' => $mid,'status' => 1];
|
|
$memberRights = pdo_get(PDO_NAME . 'member_rights',$memberRightsWhere,['id','total_amount']);
|
|
$member_rightsid = $memberRights['id'];
|
|
if ($memberRights) {
|
|
$updateData = ['total_amount' => $memberRights['total_amount'] + $num];
|
|
pdo_update(PDO_NAME . 'member_rights',$updateData,['id' => $member_rightsid]);
|
|
} else {
|
|
$insertData = [
|
|
'uniacid' => $uniacid,
|
|
'rightsid' => $rightsid,
|
|
'rights_bagid' => $rights_bagid,
|
|
'mid' => $mid,
|
|
'total_amount' => $num,
|
|
'create_time' => time(),
|
|
];
|
|
pdo_insert(PDO_NAME . 'member_rights',$insertData);
|
|
$member_rightsid = pdo_insertid();
|
|
}
|
|
if (in_array($rightsid,[1,3,4])) {
|
|
$relation_type = pdo_getcolumn(self::$tableName,['id' => $rightsid],'relation_type');
|
|
self::saveMemberRightsUse($rightsid,$member_rightsid,$num,0,$relation_type);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取权益商品名称
|
|
* @param $fkid
|
|
* @param $payfor
|
|
* @return mixed|string
|
|
*/
|
|
public static function getRightsGoodname($fkid,$payfor)
|
|
{
|
|
if (empty($fkid)) return '';
|
|
if (empty($payfor) || !in_array($payfor,['rights','rightsBag'])) return '';
|
|
|
|
if ($payfor == 'rights') {
|
|
$rights = pdo_get(self::$tableName,['id' => $fkid],['rights_type']);
|
|
return $rights['rights_type'];
|
|
} elseif ($payfor == 'rightsBag') {
|
|
$rightsBag = pdo_get(PDO_NAME . 'rights_bag',['id' => $fkid],['title']);
|
|
return $rightsBag['title'];
|
|
}
|
|
return '';
|
|
}
|
|
|
|
/**
|
|
* 创建|追加 用户使用权益记录
|
|
* @param $rightsid // 权益id
|
|
* @param $member_rightsid // 用户权益id
|
|
* @param $num // 使用数量
|
|
* @param $relation_id // 关联id
|
|
* @param $relation_type // 关联类型 ad_exposure=广告曝光 recruit_top=招聘置顶 chat=畅聊 recruit_bout=招聘次数 recruit_resume=精准人才
|
|
* @param $data
|
|
* @return array|bool[]
|
|
*/
|
|
public static function saveMemberRightsUse($rightsid,$member_rightsid,$num,$relation_id,$relation_type = 'recruit_top',$data = []) {
|
|
global $_W;
|
|
|
|
$rightsUseWhere = [
|
|
'rightsid' => $rightsid,
|
|
'member_rightsid' => $member_rightsid,
|
|
'status' => [0,1],
|
|
'relation_id' => $relation_id,
|
|
'relation_type' => $relation_type
|
|
];
|
|
$rightsUse = pdo_get(PDO_NAME . 'member_rights_use',$rightsUseWhere);
|
|
|
|
if ($rightsUse) {
|
|
|
|
$updateArr = ['use_total_amount' => $rightsUse['use_total_amount'] + $num];
|
|
$updateRes = pdo_update(PDO_NAME . 'member_rights_use',$updateArr,['id' => $rightsUse['id']]);
|
|
if (!$updateRes) return ['status' => false,'msg' => '使用失败'];
|
|
} else {
|
|
|
|
$insertArr = [
|
|
'uniacid' => $_W['uniacid'],
|
|
'member_rightsid' => $member_rightsid,
|
|
'rightsid' => $rightsid,
|
|
'relation_type' => $relation_type,
|
|
'relation_id' => $relation_id,
|
|
'use_total_amount' => $num,
|
|
'filter' => serialize($data),
|
|
'create_time' => time()
|
|
];
|
|
|
|
$insertRes = pdo_insert(PDO_NAME . 'member_rights_use',$insertArr);
|
|
if (!$insertRes) return ['status' => false,'msg' => '使用失败'];
|
|
}
|
|
|
|
return ['status' => true];
|
|
}
|
|
|
|
/**
|
|
* 获取用户权益
|
|
* @param $mid
|
|
* @param $rightsid
|
|
* @return false|mixed
|
|
*/
|
|
public static function getMemberRights($mid,$rightsid) {
|
|
$memberRightsSql = 'select * from ims_' . PDO_NAME . "member_rights where `mid` = '{$mid}' "
|
|
." and `rightsid` = '{$rightsid}' order by id desc limit 1";
|
|
return pdo_fetch($memberRightsSql);
|
|
}
|
|
|
|
/**
|
|
* 使用权益
|
|
* @param $rightsid
|
|
* @param $mid
|
|
* @param $relation_id
|
|
* @param $relation_type
|
|
* @param $amount
|
|
* @return array|bool[]|void
|
|
*/
|
|
public static function useMemberRights($rightsid,$mid,$relation_id = 0,$relation_type = 'recruit_bout',$amount = 1) {
|
|
|
|
// 只限制商家,企业身份的用户
|
|
$member = pdo_get(PDO_NAME . 'member',['id' => $mid],['identity_id']);
|
|
if (!in_array($member['identity_id'],[4,5])) return ['status' => true];
|
|
|
|
$rights = pdo_get(self::$tableName,['id' => $rightsid],['rights_type']);
|
|
|
|
$isBuyStr = self::isBuyRights($mid,$rightsid);
|
|
$memberRights = self::getMemberRights($mid,$rightsid);
|
|
$rights_type = $rights['rights_type'];
|
|
if (strpos($rights_type,'权益') === false) $rights_type .= '权益';
|
|
if (!$memberRights) return ['status' => false, 'msg' => "您未开通: {$rights_type},请前往购买后使用"];
|
|
if ($memberRights['status'] == 0) return ['status' => false, 'msg' => $isBuyStr."{$rights_type}已用完,请前往购买后使用"];
|
|
if ($memberRights['use_amount'] >= $memberRights['total_amount']) return ['status' => false, 'msg' => $isBuyStr."{$rights_type}已用完,请前往购买后使用"];
|
|
$member_rightsid = $memberRights['id'];
|
|
|
|
$rightsUseWhere = [
|
|
'rightsid' => $rightsid,
|
|
'member_rightsid' => $member_rightsid,
|
|
'relation_id' => $relation_id,
|
|
'relation_type' => $relation_type,
|
|
'status' => [0,1]
|
|
];
|
|
$rightsUse = pdo_get(PDO_NAME . 'member_rights_use',$rightsUseWhere);
|
|
$rights_useid = $rightsUse['id'];
|
|
if (!$rightsUse) return ['status' => false, 'msg' => "{$rights_type},购买的使用次数已全部使用"];
|
|
if ($rightsUse['use_amount'] >= $rightsUse['use_total_amount']) return ['status' => false, 'msg' => "{$rights_type},购买的使用次数已全部使用"];
|
|
|
|
$use_amount = $rightsUse['use_amount'] + $amount;
|
|
if ($use_amount > $rightsUse['use_total_amount']) return ['status' => false, 'msg' => "{$rights_type},使用超出设定使用次数"];
|
|
|
|
// 扣减次数(子)
|
|
$updateData = ['use_amount' => $use_amount];
|
|
if ($rightsUse['status'] == 0) {
|
|
$updateData['status'] = 1;
|
|
$updateData['start_time'] = time();
|
|
}
|
|
$updateRes = pdo_update(PDO_NAME . 'member_rights_use',$updateData,['id' => $rights_useid]);
|
|
if (!$updateRes) return ['status' => false, 'msg' => "系统错误"];
|
|
|
|
$memberRightsUpData = ['use_amount' => $memberRights['use_amount'] + $amount];
|
|
$updateRes = pdo_update(PDO_NAME . 'member_rights',$memberRightsUpData,['id' => $member_rightsid]);
|
|
if (!$updateRes) return ['status' => false, 'msg' => "系统错误"];
|
|
|
|
// 同步判断是否完结
|
|
self::syncMemberRightsStatus($member_rightsid,$rights_useid);
|
|
|
|
return ['status' => true];
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否购买过该权益
|
|
* @param $mid
|
|
* @param $rightsid
|
|
* @return string
|
|
* @author whj
|
|
* @date 2023-08-14 15:22
|
|
*/
|
|
protected static function isBuyRights($mid,$rightsid)
|
|
{
|
|
# 是否购买过权益包
|
|
$orderWhere1 = ['mid' => $mid, 'fkid' => 2,'payfor' => 'rightsBag','plugin' => 'rights','status' => 3];
|
|
$order1 = pdo_get(PDO_NAME . 'order',$orderWhere1);
|
|
if ($order1) return '购买的';
|
|
# 是否有单独购买过
|
|
$orderWhere2 = ['mid' => $mid, 'fkid' => $rightsid,'payfor' => 'rights','plugin' => 'rights','status' => 3];
|
|
$order2 = pdo_get(PDO_NAME . 'order',$orderWhere2);
|
|
return $order2 ? '购买的' : '免费的';
|
|
}
|
|
|
|
/**
|
|
* 同步修改用户权益状态,判断权益是否全部完成
|
|
* @param $member_rightsid
|
|
* @param $rights_useid
|
|
* @return void
|
|
*/
|
|
protected static function syncMemberRightsStatus($member_rightsid,$rights_useid)
|
|
{
|
|
$rightsUse = pdo_get(PDO_NAME . 'member_rights_use',['id' => $rights_useid]);
|
|
// 判断用户权益是否使用完(子)
|
|
if ($rightsUse['use_amount'] >= $rightsUse['use_total_amount']) {
|
|
// 使用完自动完结
|
|
$rightsUseData = ['status' => 2, 'end_time' => time()];
|
|
// 判断用户全部权益是否使用完
|
|
$rightsUseUpRes = pdo_update(PDO_NAME . 'member_rights_use',$rightsUseData,['id' => $rights_useid]);
|
|
if ($rightsUseUpRes) {
|
|
self::syncCancelTop($rightsUse['rightsid'],$rightsUse['relation_id']);
|
|
$memberRights = pdo_get(PDO_NAME . 'member_rights',['id' => $member_rightsid]);
|
|
if (
|
|
$memberRights['use_amount'] >= $memberRights['total_amount']
|
|
|| $rightsUse['use_amount'] >= $memberRights['total_amount']
|
|
) {
|
|
// 完结用户总权益(父)
|
|
$memberRightsData = ['status' => 0];
|
|
if ($rightsUse['use_amount'] >= $memberRights['total_amount']) {
|
|
$memberRightsData['use_amount'] = $rightsUse['use_amount'];
|
|
}
|
|
pdo_update(PDO_NAME . 'member_rights',$memberRightsData,['id' => $member_rightsid]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 招聘取消置顶
|
|
* @param $rightsid // 权益id
|
|
* @param $recruit_id // 招聘信息id
|
|
* @return void
|
|
*/
|
|
protected static function syncCancelTop($rightsid,$recruit_id) {
|
|
if ($rightsid == 2 && !empty($recruit_id)) {
|
|
pdo_update(PDO_NAME . 'recruit_recruit',['is_top' => 0],['id' => $recruit_id]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 判断招聘是否可以置顶 rightsid = 2
|
|
* @param $recruit_id
|
|
* @param $member_rightsid
|
|
* @param $memberRights
|
|
* @param $num
|
|
* @return int 0-未置顶不扣减 1-置顶扣减 2-置顶先不扣减
|
|
*/
|
|
public static function recruitIsTop($recruit_id,$member_rightsid,$memberRights = array(),$num = 1)
|
|
{
|
|
// 判断招聘信息是否置顶
|
|
$recruit = pdo_get(PDO_NAME . 'recruit_recruit',['id' => $recruit_id]);
|
|
if ($recruit['is_top'] == 1) return 1;
|
|
// 根据配置获取置顶个数
|
|
if (empty($memberRights)) $memberRights = pdo_get(PDO_NAME .'member_rights',['id' => $member_rightsid]);
|
|
$rightsSpec = pdo_get(PDO_NAME . 'rights_spec',['rightsid' => $memberRights['rightsid'], 'rights_bagid' => $memberRights['rights_bagid']]);
|
|
if ($rightsSpec) {
|
|
$amount = 5;
|
|
$count = pdo_count(PDO_NAME . 'member_rights_use',['member_rightsid' => $member_rightsid,'status' => 1]);
|
|
if ($count >= $amount) return 0;
|
|
}
|
|
// 判断招聘信息置顶条数已满
|
|
$topRecruit = pdo_getall(PDO_NAME . 'recruit_recruit',['cc_id' => $recruit['cc_id'],'is_top' => 1]);
|
|
$topCount = count($topRecruit);
|
|
if ($topCount >= 5) return 0;
|
|
// 修改招聘信息置顶
|
|
$top_end_time = strtotime(date("Y-m-d 00:00:00",strtotime("+{$num} day")));
|
|
$updateRes = pdo_update(PDO_NAME . 'recruit_recruit',['is_top' => 1,'top_end_time' => $top_end_time],['id' => $recruit_id]);
|
|
if (!$updateRes) return 0;
|
|
return 2;
|
|
}
|
|
|
|
/**
|
|
* 判断是否有畅聊权益 rightsid = 3
|
|
* @param $mid
|
|
* @return array|bool[]
|
|
*/
|
|
public static function memberIsChat($mid)
|
|
{
|
|
$rightsid = 3;
|
|
|
|
// 只限制商家,企业身份的用户
|
|
$identity_id = pdo_getcolumn(PDO_NAME . 'member',['id' => $mid],'identity_id');
|
|
if (!in_array($identity_id,[4,5])) return ['status' => true];
|
|
|
|
$rights = pdo_get(self::$tableName,['id' => $rightsid],['rights_type']);
|
|
$isBuyStr = self::isBuyRights($mid,$rightsid);
|
|
$memberRights = self::getMemberRights($mid,$rightsid);
|
|
$rights_type = $rights['rights_type'];
|
|
if (!$memberRights) return ['status' => false, 'msg' => "您未开通: {$rights_type},请前往购买后使用"];
|
|
if ($memberRights['status'] == 0) return ['status' => false, 'msg' => $isBuyStr."{$rights_type}已用完,请前往购买后使用"];
|
|
|
|
return ['status' => true];
|
|
}
|
|
|
|
/**
|
|
* Comment: 招聘信息支付回调处理
|
|
* Date: 2021/1/8 17:04
|
|
* @param $params
|
|
* @throws \GuzzleHttp\Exception\GuzzleException
|
|
*/
|
|
public static function payRightsOrderNotify($params) {
|
|
global $_W;
|
|
//写入异步日志记录
|
|
Util::wl_log('rights_notify', PATH_DATA . "rights/data/", $params);
|
|
$order = pdo_get(PDO_NAME."order",['orderno' => $params['tid']],['plugin','id','fkid','fightstatus','num','payfor','mid']);
|
|
//更新订单
|
|
$data = array('status' => $params['result'] == 'success' ? 3 : 0);
|
|
$data['paytype'] = $params['type'];
|
|
if ($params['tag']['transaction_id']) $data['transid'] = $params['tag']['transaction_id'];
|
|
$data['paytime'] = TIMESTAMP;
|
|
$result = pdo_update(PDO_NAME . 'order', $data, array('id' => $order['id']));
|
|
if ($result) {
|
|
Rights::rightsPaySuccess($order['mid'],$order['id'],$order);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 免费畅聊卡人数限制
|
|
* @param $mid // 用户ID
|
|
* @param $send_type // 发送方类型(1=用户;2=商户)
|
|
* @return bool
|
|
*/
|
|
public static function freeChatRights($mid,$send_type)
|
|
{
|
|
$identity_id = pdo_getcolumn(PDO_NAME .'member',['id' => $mid],'identity_id');
|
|
if (!in_array($identity_id,[4,5])) return true;
|
|
if ($send_type != 2) return true;
|
|
|
|
$amount = pdo_getcolumn(PDO_NAME . 'rights_spec',['rightsid' => 3,'rights_bagid' => 1],'amount');
|
|
if ($amount <= 0) return false;
|
|
|
|
$storeid = pdo_getcolumn(PDO_NAME.'merchantuser',['mid' => $mid],'storeid');
|
|
if (!$storeid) return false;
|
|
|
|
$start_times = strtotime('today');
|
|
|
|
$imWhere = " send_id = {$storeid} AND send_type = {$send_type} AND create_time >= {$start_times} ";
|
|
$imCountRes = pdo_fetch("select COUNT(DISTINCT receive_id) AS num FROM ims_".PDO_NAME."im where {$imWhere}");
|
|
$imCount = $imCountRes['num'];
|
|
|
|
return $imCount < $amount ? true : false;
|
|
}
|
|
|
|
/**
|
|
* 获取精准推送的简历
|
|
* @param $recruit_id
|
|
* @return array
|
|
*/
|
|
public static function getRightsRecruitResume($recruit_id) {
|
|
$resume_id = [];
|
|
$rightsUseWhere = ['rightsid' => 5,'relation_id' => $recruit_id];
|
|
$rightsUse = pdo_getall(PDO_NAME . 'member_rights_use',$rightsUseWhere);
|
|
foreach ($rightsUse as $value) {
|
|
$filter = unserialize($value['filter']);
|
|
if (isset($filter['resume_id'])) {
|
|
$resume_id = array_merge($resume_id,$filter['resume_id']);
|
|
}
|
|
}
|
|
return array_unique($resume_id);
|
|
}
|
|
|
|
/**
|
|
* 获取权益名称
|
|
* @param $rightsfor
|
|
* @param $rightsid
|
|
* @return array
|
|
*/
|
|
public static function getRightsInfo($rightsfor,$rightsid)
|
|
{
|
|
if ($rightsfor == 'rights') {
|
|
$rights = pdo_get(PDO_NAME . 'rights',['id' => $rightsid]);
|
|
$goodsname = $rights['rights_type'];
|
|
$goodsprice = $rights['price'];
|
|
} else {
|
|
$rightsBag = pdo_get(PDO_NAME . 'rights_bag',['id' => $rightsid]);
|
|
$goodsname = $rightsBag['title'];
|
|
$goodsprice = $rightsBag['price'];
|
|
}
|
|
return [
|
|
'name' => $goodsname,
|
|
'price' => $goodsprice,
|
|
];
|
|
}
|
|
}
|