初始上传
This commit is contained in:
146
addon/divideticket/model/share/WchatShare.php
Executable file
146
addon/divideticket/model/share/WchatShare.php
Executable file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\divideticket\model\share;
|
||||
|
||||
use addon\divideticket\model\Divideticket as DivideticketModel;
|
||||
use addon\divideticket\model\DivideticketFriendsGroup as DivideticketFriendsGroupModel;
|
||||
use app\model\share\WchatShareBase as BaseModel;
|
||||
use app\model\system\Config as ConfigModel;
|
||||
|
||||
/**
|
||||
* 分享
|
||||
*/
|
||||
class WchatShare extends BaseModel
|
||||
{
|
||||
protected $config = [
|
||||
[
|
||||
'title' => '好友瓜分卷列表',
|
||||
'config_key' => 'WCHAT_SHARE_CONFIG_DIVIDE_TICKET_LIST',
|
||||
'path' => [ '/pages_promotion/divideticket/list' ],
|
||||
'method_prefix' => 'divideTicketList',
|
||||
],
|
||||
[
|
||||
'title' => '好友瓜分卷分享',
|
||||
'config_key' => 'WCHAT_SHARE_CONFIG_DIVIDE_TICKET_DETAIL',
|
||||
'path' => [ '/pages_promotion/divideticket/index' ],
|
||||
'method_prefix' => 'divideTicketDetail',
|
||||
],
|
||||
];
|
||||
|
||||
protected $sort = 20;
|
||||
|
||||
/**
|
||||
* 好友瓜分卷分享数据
|
||||
* @param $param
|
||||
* @return array
|
||||
*/
|
||||
protected function divideTicketListShareData($param)
|
||||
{
|
||||
//跳转路径
|
||||
$link = $this->getShareLink($param);
|
||||
$config_data = $this->divideTicketListShareConfig($param)[ 'value' ];
|
||||
|
||||
$data = [
|
||||
'link' => $link,
|
||||
'desc' => $config_data[ 'desc' ],
|
||||
'imgUrl' => $config_data[ 'imgUrl' ],
|
||||
'title' => $config_data[ 'title' ]
|
||||
];
|
||||
return [
|
||||
'permission' => [
|
||||
'hideOptionMenu' => false,
|
||||
'hideMenuItems' => [],
|
||||
],
|
||||
'data' => $data,//分享内容
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 好友瓜分卷列表分享配置
|
||||
* @param $param
|
||||
* @return array
|
||||
*/
|
||||
public function divideTicketListShareConfig($param)
|
||||
{
|
||||
$site_id = $param[ 'site_id' ];
|
||||
$config = $param[ 'config' ];
|
||||
|
||||
$config_model = new ConfigModel();
|
||||
$data = $config_model->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', $config[ 'config_key' ] ] ])[ 'data' ];
|
||||
if (empty($data[ 'value' ])) {
|
||||
$data[ 'value' ] = [
|
||||
'title' => "好友瓜分卷列表",
|
||||
'desc' => "喊好友\n一起来瓜分",
|
||||
'imgUrl' => ''
|
||||
];
|
||||
}
|
||||
if (empty($data[ 'value' ][ 'imgUrl' ])) {
|
||||
$data[ 'value' ][ 'imgUrl' ] = img('addon/divideticket/icon.png');
|
||||
}
|
||||
return [
|
||||
'value' => $data[ 'value' ],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 好友瓜分卷分享数据
|
||||
* @param $param
|
||||
* @return array
|
||||
*/
|
||||
protected function divideTicketDetailShareData($param)
|
||||
{
|
||||
$site_id = $param[ 'site_id' ];
|
||||
$member_id = $param[ 'member_id' ];
|
||||
//链接参数
|
||||
parse_str(parse_url($param[ 'url' ])[ 'query' ] ?? '', $query);
|
||||
if (isset($query[ 'coupon_id' ])) {
|
||||
$coupon_id = $query[ 'coupon_id' ];
|
||||
$divideticket_model = new DivideticketModel();
|
||||
$condition = [
|
||||
[ 'coupon_id', '=', $coupon_id ],
|
||||
[ 'site_id', '=', $site_id ],
|
||||
];
|
||||
$divide_ticket_info = $divideticket_model->getDivideticketInfo($condition)[ 'data' ];
|
||||
if (!empty($divide_ticket_info)) {
|
||||
$link = $this->getShareLink($param);
|
||||
if (!empty($member_id)) {
|
||||
$group_model = new DivideticketFriendsGroupModel();
|
||||
$group_info = $group_model->getDivideticketFriendsGroupInfo([
|
||||
[ 'promotion_id', '=', $coupon_id ],
|
||||
[ '', 'exp', \think\facade\Db::raw("FIND_IN_SET({$member_id}, group_member_ids)") ],
|
||||
], 'group_id')[ 'data' ];
|
||||
if (!empty($group_info)) {
|
||||
$group_id = $group_info[ 'group_id' ];
|
||||
$page_path = explode('?', $param[ 'url' ])[ 0 ];
|
||||
$link = "{$page_path}?coupon_id={$coupon_id}&group_id={$group_id}&inviter_id={$member_id}";
|
||||
}
|
||||
}
|
||||
|
||||
$imgUrl = $divide_ticket_info[ 'image' ];
|
||||
if (empty($imgUrl)) $imgUrl = $this->getDefaultShareIcon();
|
||||
$data = [
|
||||
'link' => $link,
|
||||
'desc' => "仅差一人,即可瓜分{$divide_ticket_info['money']}元优惠劵",
|
||||
'imgUrl' => $imgUrl,
|
||||
'title' => $divide_ticket_info[ 'name' ],
|
||||
];
|
||||
return [
|
||||
'permission' => [
|
||||
'hideOptionMenu' => false,
|
||||
'hideMenuItems' => [],
|
||||
],
|
||||
'data' => $data,//分享内容
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
90
addon/divideticket/model/share/WeappShare.php
Executable file
90
addon/divideticket/model/share/WeappShare.php
Executable file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\divideticket\model\share;
|
||||
|
||||
use app\model\share\WeappShareBase;
|
||||
use app\model\system\Config as ConfigModel;
|
||||
|
||||
/**
|
||||
* 分享
|
||||
*/
|
||||
class WeappShare extends WeappShareBase
|
||||
{
|
||||
protected $config = [
|
||||
[
|
||||
'title' => '好友瓜分列表',
|
||||
'config_key' => 'WEAPP_SHARE_CONFIG_DIVIDETICKET_LIST',
|
||||
'path' => ['/pages_promotion/divideticket/list'],
|
||||
'method_prefix' => 'divideticketList',
|
||||
],
|
||||
];
|
||||
|
||||
protected $sort = 11;
|
||||
|
||||
/**
|
||||
* 好友瓜分列表
|
||||
* @param $param
|
||||
* @return array
|
||||
*/
|
||||
protected function divideticketListShareData($param)
|
||||
{
|
||||
//获取和替换配置数据
|
||||
$config_data = $this->divideticketListShareConfig($param);
|
||||
$title = $config_data['value']['title'];
|
||||
$image_url = $config_data['value']['imageUrl'] ? img($config_data['value']['imageUrl']) : '';
|
||||
$path = $this->getSharePath($param);
|
||||
|
||||
$data = [
|
||||
'title' => $title,
|
||||
'path' => $path,
|
||||
'imageUrl' => $image_url,
|
||||
];
|
||||
return [
|
||||
'permission' => [
|
||||
'onShareAppMessage' => true,
|
||||
'onShareTimeline' => true,
|
||||
],
|
||||
'data' => $data,//分享内容
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 好友瓜分列表
|
||||
* @param $param
|
||||
* @return array
|
||||
*/
|
||||
protected function divideticketListShareConfig($param)
|
||||
{
|
||||
$site_id = $param['site_id'];
|
||||
$config = $param['config'];
|
||||
|
||||
$config_model = new ConfigModel();
|
||||
$data = $config_model->getConfig([
|
||||
['site_id', '=', $site_id],
|
||||
['app_module', '=', 'shop'],
|
||||
['config_key', '=', $config['config_key']],
|
||||
])['data'];
|
||||
if (empty($data['value'])) {
|
||||
$data['value'] = [
|
||||
'title' => '跟我一起来瓜分吧!',
|
||||
'imageUrl' => '',
|
||||
];
|
||||
}
|
||||
$variable = [];
|
||||
|
||||
return [
|
||||
'value' => $data['value'],
|
||||
'variable' => $variable,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user