100], [['description', 'cover', 'auth'], 'string', 'max' => 255], [['time_type'], 'string', 'max' => 45], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => '商城ID', 'title' => '活动标题', 'description' => '活动描述', 'cover' => '活动封面', 'award' => '总积分', 'virtual_award' => '虚拟积分', 'day_award' => '每日积分池', 'grab_user_num' => '已抢积分总人数', 'grab_integral' => '已抢积分总金额', 'surplus_integral' => '剩余积分总数额', 'data_at' => '数据更新时间', 'time_type' => '活动时间类型[1:每日积分,2:时间段积分]', 'start_time' => '活动开始时间', 'end_time' => '活动结束时间', 'integral_type' => '红包活动类型[1:冻结到激活积分,2:增值冻结积分,3:增值激活积分]', 'rule_values' => '规则条件的值集合', 'auth' => '参与权限', 'rule' => '规则说明', 'status' => '状态[-1:删除;0:禁用;1启用]', 'limit_user_level' => '会员限制', 'created_at' => '创建时间', 'updated_at' => '更新时间', ]; } /** * @Author: ltm * @DateTime: 2022/3/18 0018 16:21 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return string */ public static function setData(array $params){ try{ if (!empty($params['id'])) { $model = self::findOne(['id'=>$params['id'],'mall_id'=>$params['mall_id']]); if($params['type'] == StatusEnum::ENABLED && $model->time_type == StatusEnum::ENABLED){ //每日积分活动重新启用的时候更新开始时间和结束时间 $daytime = strtotime(date("Y-m-d")); $params['start_time'] = $daytime + strtotime(date("Y-m-d H:i:s",$model->start_time)) - strtotime(date("Y-m-d",$model->start_time)); $params['end_time'] = $daytime + strtotime(date("Y-m-d H:i:s",$model->end_time)) - strtotime(date("Y-m-d",$model->end_time)); } if (empty($model)) throw new Exception('记录不存在或已删除'); }else{ $model = new self(); $model->loadDefaultValues(); } $model->mall_id = $params['mall_id']; // echo '
';print_r($params);die;
if(!$model->load($params,'') || !$model->save()){
throw new Exception($model->getErrorMessage());
}
return $model;
}catch(\Exception $e){
self::$static_error = $e->getMessage();
return false;
}
}
/**
* 获取商品的优惠券设置
* @Author: lun
* @DateTime: 2022/5/12 0012 14:49
* @Copyright: copyright (c) 2021 广东七件事集团
* @param $params
* @return bool|string[]
*/
public static function getGoodSetting($params)
{
// 后台页面组件展示
if ($params['type'] == 'show_component') {
return [
'component' => 'com-score-expansion',
'path' => Yii::$app->basePath . '/../addons/ScoreExpansion/backend/views/goods',
];
} else {
try {
if (empty($params['setting'][AddonsEnum::ADDONS_NAME_SCORE_EXPANSION])) return true;
$setting = $params['setting'][AddonsEnum::ADDONS_NAME_SCORE_EXPANSION];
// 数据保存
$res = ScoreExpansionGoodsSetting::setGoodsSetting($params['mall_id'], $params['goods_id'], $setting);
if ($res === false) throw new Exception(ScoreExpansionGoodsSetting::getStaticError());
return true;
} catch (Exception $e) {
self::setStaticError($e->getMessage());
return false;
}
}
}
/**
* 分润明细类型
* @return array[]
*/
public function getGoodsModeCommssionType()
{
return [
[
'name' => 'integral',
'label' => '激活积分'
],
[
'name' => 'frozen_integral',
'label' => '冻结积分'
],
];
}
/**
* 获取订单分润列表
* @Author: lun
* @DateTime: 2023/10/33 0012 14:49
* @Copyright: copyright (c) 2021 广东七件事集团
* @param $params
* @return bool|string[]
*/
public static function getOrderListTab($params)
{
if (!isset($params['list']) || !is_array($params['list'])) return [];
$order_id = $params['order_id'] ?? 0;
$order_detail_id = $params['order_detail_id'] ?? null;
$mall_id = $params['mall_id'] ?? 0;
if ($order_id <= 0 && empty($order_detail_id)) return [];
$wallet_type = $params['wallet_type'] ?? '';
if (!in_array($wallet_type, [ScoreExpansionEnum::WALLET_INTEGRAL, ScoreExpansionEnum::WALLET_INTEGRAL_FROZEN])) {
return [];
}
$order_detail_id_arr = $order_detail_id;
if (!$order_detail_id_arr) {
//查询order_detail
$params = [];
$params['where'] = [
['order_id' => $order_id],
['mall_id' => $mall_id],
];
$order_detail_list = OrderDetail::lists($params);
$order_detail_id_arr = array_column($order_detail_list, 'id');
}
$cond = [];
$cond['where'] = [
['integral_wallet_type' => $wallet_type],
//['source_table_id' => $order_id],
// ['source_table' => '{{%order}}'],
['mall_id' => $mall_id],
['or',
['and',['source_table_id' => $order_id],['source_table' => Order::tableName()]],
['and',['source_table_id' => $order_detail_id_arr],['source_table' => 'order_detail']],
]
];
// if($order_detail_id_arr){
// $cond['where'][] = ['or',
// ['or',['source_table_id' => $order_id],['source_table' => 'order']],
// ['or',['source_table_id' => $order_detail_id_arr],['source_table' => 'order_detail']],
// ];
// }else{
// $cond['where'][] = ['source_table_id' => $order_id];
// $cond['where'][] = ['source_table' => Order::tableName()];
// }
$cond['with'] = ['user' => function ($query) {
$query->select('id,nickname,avatar_url');
}];
$list = ScoreExpansionWalletLog::lists($cond);
$wallet_log_status = ScoreExpansionEnum::getRedpackText();
$from_type_map = ScoreExpansionEnum::getFromType();
$addons_name_map = AddonsEnum::getAddonsNameMap();
foreach ($list as &$value) {
// $value['is_frozen'] = $wallet_log_status[$value['integral_wallet_type']] ?? '';//状态
$value['is_frozen'] = '已结算';//状态
$value['capital_type_text'] = $from_type_map[$value['from_type']] ?? '';//类型
$value['from_type_text'] = $addons_name_map[ScoreExpansionEnum::ADDONS_NAME] ?? '';
$value['nickname'] = $value['user']['nickname'];
$value['avatar_url'] = $value['user']['avatar_url'];
unset($value['user']['avatar_url'], $value['user']['nickname']);
}
return $list;
}
}