try_files $uri $uri/ /index.php?$args;
ALTER TABLE marketing_hu_year_paintings_prize ADD member_coupons_id int(11) NOT Null comment '優惠券編碼' AFTER coupon_rule_id;
ALTER TABLE ldb_tencent_advertising ADD wechat_qrcode_name varchar(100) DEFAULT NULL comment '微信二維碼名稱' AFTER wechat_qrcode_id;
ALTER TABLE ldb_tencent_advertising ADD limit_date date DEFAULT NULL comment '限制日期' AFTER show_time;
MySQL熱備份
php artisan make:migration create_categories_table --create=categories
php artisan make:migration create_posts_table --create=posts
php artisan make:migration add_posts_table --add=posts
1.獲取token
2.刷新token
3.上報數據
問題:
1.確認查看數據的位置,
2.落地頁目前是不是只會查看固定的數據源
3.自動化獲取token
1110
111
111
111
111
設計圖
參數的判斷和
“actions”: [
{
“url”: “<URL>“,
“action_time”: <action_timestamp>,
“action_type”: “RESERVATION”,
“trace”: {
“click_id”: “<CLICK_ID>“
}
}
]
{
"user_action_set_id": 1110250758,
"actions": [{
"external_action_id":1110250758,
"action_time":1492998081,
"user_id":{
"hash_imei":"698d51a19d8a121ce581499d7b701668"
},
"action_type":"CUSTOM",
"custom_action":"my_type",
"action_param":{
"value":28,
"quantity":5,
"brand_name":"my_brand",
"int_example":123,
"int_array_example":[
123,
234
],
"double_example":123.45,
"double_array_example":[
123.45,
234.56
],
"bool_example":true,
"bool_array_example":[
true,
false
],
"string_example":"123",
"string_array_example":[
"123",
"234",
"abc"
]
},
"product_inform":{
"content_type":"EC",
"category_path":[
"\u5bb6\u7528\u7535\u5668\/\u53a8\u623f\u5c0f\u7535\/\u8c46\u6d46\u673a",
"\u672c\u5730\u751f\u6d3b\u65c5\u6e38\u51fa\u884c\/\u65c5\u6e38\u51fa\u884c\/\u673a\u7968\u706b\u8f66\u7968"
]
},
"channel":"CHANNEL_NATURAL"
}]
}
"account_id":4012484,
{
"user_action_set_id":1110250758,
"actions":[
{
"action_type":"RESERVATION",
"action_time":1492998081,
"url":"https://malltest.osa.com/mobile/index",
"trace":{
"click_id":"11"
}
}
]
}
看有沒有二維碼,
如果有,讀取現有二維碼
如果沒有,進入算法
openid
目前的邏輯:
用戶訪問落地頁,顯示已經分配的二維碼
如果是新用戶,之前沒有分配二維碼,那么進入輪循,顯示其他二維碼
用戶掃描后觸發行為,調用后端騰訊廣告的接口,用戶獲得分配的二維碼
疑問:
如果用戶不掃描,不觸發調用騰訊廣告的接口,如果他重復訪問落地頁3次,那么這3次顯示的是最少分配次數的二維碼,是不是需要另外記錄再寫一套邏輯,還是隨機
落地頁的平均輪循規則:
掃描二維碼->觸發行為->騰訊廣告接口->內部記錄分配次數
分配次數少的二維碼排隊,最后實現接近一樣的分配次數
1.落地頁 ->OK
2.用戶端展示頁面,輪循 ->OK,需要修改(記錄用戶對應的二維碼,刪除的二維碼再后補)
3.記錄配置量 ->OK
4.騰訊廣告 - 進行中
5.多選操作:停用+啟動+設置最大分配量+刪除
6.導入導出
7.測試整個流程
輪詢繼續,增加操作加入條件判斷,兩次調用
保持輪詢
后端:
修改分配算法:記錄用戶對應的二維碼,刪除的二維碼再后補
導入導出
騰訊廣告接口(自動生成access_token)
前端需要配合:
調用分配算法功能,添加openid參數
導入導出-調用接口
后端剩下:
(半天):2.用戶端展示頁面,輪循 ->OK,需要修改(記錄用戶對應的二維碼,刪除的二維碼再后補)
(1-2天):4.騰訊廣告 - 進行中
(半天):5.多選操作:停用+啟動+刪除+設置最大分配量
(半天):6.導入導出
(半天):7.測試整個流程
預計3-4天
目前我接通了這個接口,但是不知道是數據延時,還是其他問題,返回數據很少
1.應該是創建接口出現一些問題,
完成自動化讀取token
主要確定user_action_set_id和action_type,前端是否需要傳
用戶行為源id和
{
"account_id": "4012484",
"type": "WEB",
"name": "webuser_action_set",
"description": "",
"usages": []
}
{
"type": "WEB",
"name": "webuser_action_set"
}
{"start_date":"2022-01-01","end_date":"2022-03-05"}
[{"start_date":"2022-01-01","end_date":"2022-03-05"}]
curl https://api.e.qq.com/v1.3/user_action_sets/add?access_token=605001b6ec5af7e1adaba343c5940c52×tamp=1646360030&nonce=f7e1adaba343c5940c5%26times1111
curl https://api.e.qq.com/v1.3/user_action_sets/add?access_token=605001b6ec5af7e1adaba343c5940c52×tamp=1646360030&nonce=f7e1adaba343c5940c5%26times1111 \
-H Content-Type: application/json \
-d '{
"account_id": "4012484",
"type": "WEB",
"name": "webuser_action_set",
"description": "",
"usages": []
}'
平均分配算法:
1.優先給從沒有獲得機會的
2.之后從排隊最久的開始
記錄數據:
總累計分配數量
當天累計分配數量
當天最大分配量
當天規則下的分配數量
做前面兩個,還是三個都做:
1.創建用戶行為數據源
2.獲取用戶行為數據源
3.獲取用戶行為數據源報表 - 未知
https://developers.e.qq.com/oauth/authorize?client_id=1112006251&redirect_uri=
https://tfeimall.com/mobile/index
https://developers.e.qq.com/oauth/authorize?client_id=1112006251&redirect_uri=https://tfeimall.com/mobile/index&state=&scope=&account_type=ACCOUNT_TYPE_WECHAT
client_id=1112006251
微信廣告
代理商
賬戶ID: 4012484
SpID:spidb9f0141753
上饒市巨網科技有限公司
調轉獲取authorization_code
https://developers.e.qq.com/oauth/authorize?client_id=1112006251&redirect_uri=https%3A%2F%2Ftfeimall.com%2Fmobile%2Findex&state=&scope=&account_type=ACCOUNT_TYPE_WECHAT
https://tfeimall.com/mobile/index?authorization_code=26aa5c3158202fbc2c697b87edae1280&state=#/
26aa5c3158202fbc2c697b87edae1280
目前30天有效,可能依據需求做一個頁面用來保存token,以及延長更新時間
https://api.e.qq.com/oauth/token?client_id=1112006251&client_secret=&grant_type=&authorization_code=
refresh_token=
redirect_uri=
1110834175 - 1106245328
6f9ad785
https://api.e.qq.com/v1.3/user_action_sets/add?access_token=605001b6ec5af7e1adaba343c5940c52×tamp=1646298150&nonce=<NONCE>
https://api.e.qq.com/v1.1/campaigns/get?access_token=<ACCESS_TOKEN>×tamp=<TIMESTAMP>&nonce=<NONCE>
public static function clearWechatUser($groups)
{
$wechatUser = Advertising::whereIn('group_id', $groups);
$wechatUser = $wechatUser->orderBy('limit_date', 'DESC')->first();
if(mb_substr($wechatUser['show_time'], 0, 10) == date("Y-m-d") ) {
$update = Advertising::whereIn('group_id', $groups)
->update([
'today_assigned_quantity' => 0,
'limit_date' => '1800-01-01',
]);
} else {
$update = Advertising::whereIn('group_id', $groups)
->update([
'today_assigned_quantity' => 0,
'today_passing_quantity' => 0,
'limit_date' => '1800-01-01',
]);
}
return $update;
}
/**
* 清空當天之前的限制記錄
* @param Request $request
* @return mixed
*/
public static function clearLimitWechatUser($groups)
{
$wechatUser = Advertising::whereIn('group_id', $groups);
$wechatUser = $wechatUser->orderBy('limit_date', 'DESC')->first();
if($wechatUser['limit_date'] < date("Y-m-d",strtotime("+1 day",strtotime(date("Y-m-d")))) ) {
$update = self::clearWechatUser($groups);
}
return $update;
}
1-1-1-1
2-2-2-2
3-3-6-3
4-4-7-4
5-5-5
6-3-6
7-4-7
8-5-8
9-6-9
10-7-10
11-4
算法:
優先處理0次機會,從id最小開始
任何人都有一次
創建模板接口可以選擇關閉海報,最新編輯的模板分組保存接口,會立即啟用
[{"qr_code_width":30,"qr_code_height":10,"qr_code_x_axis":100,"qr_code_y_axis":300}]
"select * from `ldb_tencent_advertising_template_group_relationship` where `template_id` = ? order by `created_at` desc"
加入if($page_type = 3)
php artisan queue:work
php artisan queue:restart
列表,詳情,創建
qr_code_width
qr_code_height
qr_code_x_axis
qr_code_y_axis
cnpm install -g @vue/cli
vue create vue3
{"id":1,"name":"你好"}
{
"username": "test1",
"email": "113075416@qq.com",
"code": "123456"
}
圖片id和name,array格式,例:[{"image_id":1,"image_name":"圖片1"}]
"select * from `ldb_tencent_advertising` where `group_id` = ? order by `cumulative_assigned_quantity` asc, `today_assigned_quantity` asc, `passing_quantity` asc, `today_maximum_assigned` asc"
"select `ldb_tencent_advertising_group`.*, (select count(*) from `ldb_tencent_advertising`
where `ldb_tencent_advertising_group`.`id` = `ldb_tencent_advertising`.`group_id`) as `advertisings_count`
from `ldb_tencent_advertising_group`"
"select `ldb_tencent_advertising_group`.*, (select count(*) from `ldb_tencent_advertising` where `ldb_tencent_advertising_group`.`id` = `ldb_tencent_advertising`.`group_id`) as `advertising_group_count` from `ldb_tencent_advertising_group`"
展示+搜索+排序+分頁
{
"provider": "SF",
"logi_name": "順豐",
"tracking_number": "SF1360441916607",
"customer_name": "3328"
}
{
"provider": "YTO",
"logi_name": "圓通",
"tracking_number": "YT6277724382170"
}
// if (isset($input['wecaht_name'])) {
//
// $list->orWhere('phone', $input['phone']);
// }
// if (isset($input['wecaht_name'])) {
// $list->orWhere('phone', $input['phone']);
// }
$provider = array('SF');
if (in_array($input['provider'], $provider)) {
$input['tracking_type'] = 1;
$express = new Express($input);
return $this->success($express->query());
}
'CustomerName' => 'nullable',
update,
停用,啟用,設置最大分配量
刪除,
1.騰訊廣告,打廣告,獲得數據
2.微信地址,獲取微信地址數據,讀取商城數據庫
快遞鳥信息對接 - 2022年2月10號
微信地址獲取 - 2022年2月12號
微店區域信息 - 2022年2月17號
騰訊廣告 - 未定
數據脫敏 - 未定
固定字符串 VS 替換固定sql函數
STEP1:賬戶配置授權:https://developers.e.qq.com/oauth/authorize?client_id=123456&redirect_uri=https://www.example.com
STEP2:創建數據源:user_action_sets_add
STEP3:上報用戶行為數據:user_actions_add
STEP4:查看數據報表:user_action_set_reports/get
后端代碼風格有點不一致,提交代碼之前統一使用編輯器調整代碼格式方法調整之后再提交,快捷鍵ctrl+alt+l
1-0.2
style
Route::resource('admin/regionalManagement', 'AreaController');
// 獲取所有微店地區列表
Route::get('admin/regional/allArea', 'AreaController@allArea');
1萬個應用
https://malltest.osa.com/api/admin/Store?page=1&limit=10&type=1×tamp=1644919192&appkey=1224283400&sign=9AEDF4B1DA4B185314B071A3CBF7C0C5&areaId=1
批量查接口API
依據具體API,獲取對應的數據
'areaId' => 'integer',
廣東省id1-深圳id2-羅湖id3,
id,check有沒有children,有就獲取所有children,沒有就獲取當前級
最后whereIn('area_three_level_id', ['array'])
選擇,提交id
post
category
tag
commen
https://developers.e.qq.com/oauth/authorize?client_id=123456&redirect_uri=https://www.example.com
/**
* @param \Illuminate\Http\Request $request
* 1推1,5打卡1,5認證1
* @return mixed
* 依據微信數據查詢用戶地址信息id
*/
public function getRegionIdsByWechatData(Request $request)
{
$input = $request->only('first_region', 'second_region', 'third_region');
$validationCondition = [
'first_region' => 'required|string',
'second_region' => 'nullable|string',
'third_region' => 'nullable|string',
];
$validator = Validator::make($input, $validationCondition);
if ($validator->fails()) {
return $this->success([], 'error', 200, '數據格式錯誤');
}
$regionKey = [
0 => 'first_region_id',
1 => 'second_region_id',
2 => 'third_region_id',
];
for ($k=0; $k<count($regionKey); $k++) {
$result[$regionKey[$k]] = '';
}
// 查詢物流地區id
$regions = Region::where('region_name', 'like', '%'.$input['first_region'].'%')
->orWhere('region_name', 'like', '%'.$input['second_region'].'%')
->orWhere('region_name', 'like', '%'.$input['third_region'].'%')
->get();
$i = 0;
$tem[0] = 0;
for ($y=0; $y<count($regionKey); $y++)
{
foreach($regions as $key => $region)
{
$regionArray = explode(',', $region['region_path']);
$regionArray = array_filter($regionArray);
$regionArray= array_merge($regionArray);
// p_region_id有對應父級,同時region_path字段有對應數量的元素
if($region['p_region_id'] == $tem[$i] && count(array_filter($regionArray)) == $i+1)
{
$result[$regionKey[$i]] = $regionArray[$i];
$temId = $regionArray[$i];
$i++;
$tem[$i] = $temId;
unset($regions[$key]);
}
}
}
if($regionKey[0] == '')
{
return $this->success($result, 'error', 200, '暫無數據');
}
return $this->success($result);
}
"links": {
"first": "http://n.mall-test.com/api/orders/filter?page=1",
"last": "http://n.mall-test.com/api/orders/filter?page=35",
"prev": "http://n.mall-test.com/api/orders/filter?page=1",
"next": "http://n.mall-test.com/api/orders/filter?page=3"
},
"links": {
"first": "http://localhost/api/orders/filter?page=1",
"last": "http://localhost/api/orders/filter?page=39",
"prev": "http://localhost/api/orders/filter?page=1",
"next": "http://localhost/api/orders/filter?page=3"
},
/**
* @param Request $request
* @return mixed
* 依據微信數據查詢用戶地址信息id
*/
public function getRegionIdsByWechatData(Request $request)
{
$input = $request->only('first_region', 'second_region', 'third_region');
$validationCondition = [
'first_region' => 'required|string',
'second_region' => 'nullable|string',
'third_region' => 'nullable|string'
];
$validator = Validator::make($input, $validationCondition);
if ($validator->fails()) {
return $this->success(false, 'error', 200, '數據格式錯誤');
}
$regions = Region::where(function ($query) use ($input) {
$query->where('region_name', 'like', '%' . $input['first_region'] . '%')
->where('region_grade', 1);
})
->orWhere(function ($query) use ($input) {
$query->where('region_name', 'like', '%' . $input['second_region'] . '%')
->where('region_grade', 2);
})
->orWhere(function ($query) use ($input) {
$query->where('region_name', 'like', '%' . $input['third_region'] . '%')
->where('region_grade', 3);
})
->get(['id', 'region_name', 'p_region_id', 'region_path', 'region_grade']);
// $regions[12] = $regions[2];
// unset($regions[0]);
$regions[12] = array(
"id" => 12,
"region_name" => "重慶市111",
"p_region_id" => "86",
"region_path" => ",86,179511,",
"region_grade" => "2",
);
dd($regions->toArray());
$firstRegion = $regions->where('region_grade', 1);
if ($firstRegion->count() != 1) {
return $this->success(false, 'error', 200, '地址導入失敗');
}
$secondRegion = $regions->where('region_grade', 2)->where('p_region_id', $firstRegion->first()->id);
$thirdRegion = $regions->where('region_grade', 3)->where('p_region_id', $secondRegion->first()->id);
// dd($secondRegion->toArray());
if ($firstRegion->isEmpty() || $secondRegion->isEmpty() || $thirdRegion->isEmpty()) {
return $this->success(false, 'error', 200, '微信地址導入失敗');
}
return $this->success(array(
'first_region_id' => $firstRegion->first()->id,
'second_region_id' => $secondRegion->first()->id,
'third_region_id' => $thirdRegion->first()->id
));
}
^ "select * from `ldb_region_name` where `region_name` like ? and `region_grade` = ?
or `region_name` like ? and `region_grade` = ?
or `region_name` like ? and `region_grade` = ?"
fisrt_region_id: 86 region_path
second_region_id: 1795
third_region_id: 85
https://malltest.osa.com/api/region?timestamp=1644386452&appkey=1224283400&sign=CC30CB7051150F16565846B225DC496E
https://malltest.osa.com/api/region/665?timestamp=1644386514&appkey=1224283400&sign=CC30CB7051150F16565846B225DC496E
https://malltest.osa.com/api/region/206?timestamp=1644386551&appkey=1224283400&sign=CC30CB7051150F16565846B225DC496E
SELECT * FROM ldb_regions WHERE region_name LIKE '%廣東%'; ,3756,
SELECT * FROM ldb_regions WHERE region_name LIKE '%深圳%'; ,3756,1207,
SELECT * FROM ldb_regions WHERE region_name LIKE '%福田%';
ldb_delivery
ldb_dlycorps
http://tf.mall.com/mobile/index#/orderDetailView?order_no=220106194325295
https://malltest.osa.com/api/mobile/members/orderDetail
安排的任務
use App\Models\Deliverys\Dlycorp;
$logiId = [];
$logiId[] = $delivery['logi_id'];
$logiCodes = Dlycorp::whereIn('id', array_unique($logiId))->get()->toArray();
$logiCodes = array_column($logiCodes, null, 'id');
foreach ($orderData['deliveries'] as $key => $delivery) {
if ($delivery['order_type'] == 2)
continue;
$orderDetailData['ship_data'][$key]['logi_code'] = $logiCodes[$delivery['logi_id']]['corp_code'] ?? '';
}
https://malltest.osa.com/api/mobile/members/orderDetail
composer create-project --prefer-dist laravel/lumen lumen-api
composer require flipbox/lumen-generator
php artisan key:generate
php artisan make:model Post -fmc
開發一個排序功能
{
"page": 1,
"id": "DESC",
"rule_id": "DESC",
"member_id": "DESC",
"image_num": "DESC",
"created_at": "DESC",
"updated_at": "DESC"
}
npm i vue-router --save
npm i axios --save
25:25
composer self-update 1.8.6 --no-check-certificate
send_status
0 全發送
1 全不發送
2 只發送小程序端
3 只發送短信
路由-登錄判斷-Ajax
zi:fenxi-ke,
ti-fen+pen-ke-bi+dang-wen
course,
categories,mti
type
顏色:咖啡色-衛衣、尺碼:XS
http://n.mall-test.com/_debugbar/open?op=get&id=Xc5a5f61fb5c334a6d2f0be06845779ed
目前點擊之后,后端會產生一定的數據,后加的數據,區別是
foreach ($data as $key => $item)
{
if(count($item) < 2)
{
unset($data[$key]);
}
}
…\packages\weixin\src\Wechat\Basics.php254
{"expire_time":1642753217,"access_token":"53_HP1wcO8Tq0ngFZb51JKyOAwzId0cIHzvgy6tGY-_Ihb3WkoApBkIcvz2jHcrovmprO4CbYJxKsAdcP8qzL61b-GtwuaucEkfVXNbEhvgwnBz5lqHBxo1SJOOO9SR-1CbtAupBlbsrtyrFhUHPHDeAIATLH"}
顯示最后200行:
tail -n 200 文件名
tail -n 200 laravel-2022-01-25.log
應該要加兩個參數,
一個是用戶特等獎標記,
一個是用戶沒有添加過地址或添加過地址可修改狀態標記
1/100
https://malltest.osa.com/api/goods/16581/edit?timestamp=1640930264&appkey=1224283400&sign=CC30CB7051150F16565846B225DC496E
unable to execute file
releaseNotes.html
docker run -d -p 80:80 docker/getting-started
(隊列,可以考慮引入rabbitmq專門處理分布式隊列)
(后期有時間優化,可以考慮引入調用第三方AI判斷接口)
(保存虎年圖片接口,saveFuImage: id, user_id, json, step, share, give)
docker
CURD+ES
C:\Env\git\tf_mall\app\Http\Controllers\Admin\Marketing
git config --global user.name "Hong Jun"
git config --global user.email "113075416@qq.com"
docker run -d -p 80:80 docker/getting-started
【紅包雨】
https://malltest.osa.com/api/admin/marketing/huYearPaintings?page=1&limit=10×tamp=1641261030&appkey=1224283400&sign=5CCABEFC293C5689D145255C820955C2
https://malltest.osa.com/api/admin/marketing/huYearPaintings/5?timestamp=1641261076&appkey=1224283400&sign=CC30CB7051150F16565846B225DC496E
DROP TABLE IF EXISTS `ldb_marketing_hu_year_paintings_player`;
分支
2022-03-25
27
curd, es
導入到處
用戶表:ldb_members上傳的圖片。用json字段保存,中獎字段,獲取:手機號、收件人
中獎名單,采用ldb_member_addrs表的menber_id,獲取收件地址信息
你熟悉一下贈送優惠券和后臺配置的代碼,其實你們現在可以開始開發了
composer create-project laravel/laravel=5.6.40 --prefer-dist lara5640
或下載最新版本:
composer create-project laravel/laravel --prefer-dist filename
http://n.mall-test.com/api/admin/marketing/RedRain
{{host}}/api/admin/marketing/HuYearPaintings
{
"appkey": "1224283400",
"bn": [
"9C581063601923",
"9C581063601924"
],
"timestamp": 1641264685,
"sign": "5CCABEFC293C5689D145255C820955C2",
"title": "test1"
}
后臺營銷活動系統start*
#region 仿魚塘多銷的微信列表模塊
Route::middleware('throttle:100000,1')->namespace('Admin\Wechat')->group(function () {
Route::resource('/admin/wechat/fishond', 'FishondWechatController');
Route::post('/admin/wechat/fishond/export', 'FishondWechatController@export');
Route::post('/admin/wechat/fishond/import', 'FishondWechatController@import');
});
#endregion
#region 團購、秒殺、一口價、預付定金、訂單實付滿額抽獎、高單立減活動、限時購、前支付多少名送贈品
Route::middleware('throttle:100000,1')->namespace('Admin\Marketing')->group(function () {
//新人價福利
Route::resource('/admin/marketing/newUserPrice', 'NewUserPriceController');
Route::post('/admin/marketing/newUserPrice/filter', 'NewUserPriceController@filter');
Route::post('/admin/marketing/newUserPrice/search', 'NewUserPriceController@search');
Route::post('/admin/marketing/newUserPrice/storeGoods', 'NewUserPriceController@storeGoods');//手動添加活動商品數據
Route::post('/admin/marketing/newUserPrice/updateGoods', 'NewUserPriceController@updateGoods');//更新活動商品數據
Route::post('/admin/marketing/newUserPrice/deleteGoods', 'NewUserPriceController@deleteGoods');//刪除活動商品數據
});
#endregion
http://n.mall-test.com/api/admin/marketing/RedRain/6?timestamp=1641356282&appkey=1224283400&sign=CC30CB7051150F16565846B225DC496E
[{"id":1,"iamge_id":1,"title":"圖片1","description":"前20名集齊五虎者","quantity":20},{"id":2,"iamge_id":2,"title":"100元優惠券","description":"前20名集齊五虎者","quantity":20}]
{
"rule_id": 6,
"appkey": "1224283400",
"timestamp": 1641264685,
"sign": "5CCABEFC293C5689D145255C820955C2",
"member_id": "test1",
"coupon": "rules_description",
"member_addrs_id": 1,
}
public function show(Request $request)
{
$input = $request->only('id');
$validator = Validator::make($input, [
'status' => 'required|boolean',
]);
if ($validator->fails()) {
return $this->failed($validator->errors());
}
}
\DB::beginTransaction();
$saveRes = HuYearPaintings::create($data);
if ($saveRes) {
// 其他更新操作
//
\DB::commit();
return $this->success($data, 'success', 200, '操作成功');
}
\DB::rollBack();
return $this->failed("操作失敗,請稍后重試");
"coupon": [{"id":1,"iamge_id":10,"title":"100元優惠券","description":"前20名集齊五虎者","quantity":20}],
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'coupon' in 'field list' (SQL: insert into `ldb_marketing_hu_year_paintings_player` (`rule_id`, `member_id`, `coupon`, `member_addrs_id`, `updated_at`,
http://n.mall-test.com/api/admin/marketing/memberList
[{"location_id":1,"image_id":101},{"location_id":2,"image_id":102}]
http://transfer.act.dzpaas.com/activity/guest?AppID=wx5dd134dad31ed489&bgid=&CompanyID=0475&OpenID=[OpenID]
原來:"
{
"expire_time": 1642673018,
"access_token": "53_EHokCBpyFJSLy6QgrtTJwijVKrfqq3zOdoK4k2nLEjpcHvQrkieoc5bxbsyfcy8VUp7TKPsegwdEjSs987S2ZQuGC0zrjZ5LSv6wxAVQ9I_BdD19AAbmh4wBtcLKd_OjouxlVVhnDHxgqUxjGCAcABALHF"
}
新的:
{"expire_time":1642734952,"access_token":"53_L7n4pDYGSxdMG5mR0aOqFdcnp60Fc86QQ1hIrAtSgLVvahsWgBO52g-fNGhOYFMQ3D_sLE1qIJN6qczGz71pYpL5m3WZDUw77e2Wqm0HbRBAir8nasaVoNaHpIQ2IQHikkg8sj-O0oJrHMoeBTLgAEAQIA"}
加入100
/**
* 優惠券規則id的數據設置
* @return mixed
*/
public static function couponArr()
{
// 優惠券id和名次
$couponIds = [
197 => [
"number" => 20, // 1-20名
"name" => "一等獎",
],
198 => [
"number" => 50, // 21-50名
"name" => "二等獎",
],
199 => [
"number" => 100, // 51-100名
"name" => "幸運獎",
],
];
return $couponIds;
}
/**
* 獲取排名id對應的優惠券規則id
* @return mixed
*/
public static function couponId($ranking)
{
// 優惠券規則id的數據設置
$couponArr = self::couponArr();
// 優惠券id和名次
$couponIds = [];
foreach ($couponArr as $key => $coupon)
{
$couponIds[$key] = $coupon['number'];
}
foreach ($couponIds as $key => $item)
{
if($ranking <= $item)
{
$couponId = $key;
break;
}
}
return $couponId;
}
// 優惠券規則id的數據設置
$couponArr = self::couponArr();
$couponData = [];
foreach ($couponRudes as $key => $couponRude)
{
$couponData[$key]['id'] = $couponRude['id'] ?? '';
$couponData[$key]['cpns_type_name'] = $couponRude['cpns_type_name'] ?? '';
$couponData[$key]['cpns_name'] = $couponRude['cpns_name'] ?? '';
$couponData[$key]['cpns_amount'] = $couponRude['cpns_amount'];
$couponData[$key]['cpns_max_num'] = $couponRude['cpns_max_num'];
$couponData[$key]['level'] = $couponArr[$couponRude['id']]['name'];
}
if($ranking <= $this->memberMaxNum)
{
$result = $this->cardSynthesisGiveCoupon($prizeParams);
$prizeParams['data']['coupon_status'] = 1; // 1為有贈送
$ruleCoupons = SalesRuleCoupon::where('id', $result['couponId'])->first();
$prizeParams['data']['coupon_rule_id'] = $result['couponId'];
$prizeParams['data']['coupon_store'] = $result['cpnsStore'];
$prizeParams['data']['coupon_name'] = $ruleCoupons['cpns_name'];
$prizeParams['data']['cpns_amount'] = $ruleCoupons['cpns_amount'];
$prizeParams['data']['cpns_max_num'] = $ruleCoupons['cpns_max_num'];
$sendNotice = 1;
} else
{
$result = $this->cardSynthesisNoCoupon($prizeParams);
$prizeParams['data']['coupon_status'] = 2; // 2為無贈送
}
^ array:30 [
0 => array:2 [
0 => "顏色:白色"
1 => "尺碼:XXL"
]
1 => array:2 [
0 => "顏色:白色"
1 => "尺碼:XL"
]
2 => array:2 [
0 => "顏色:白色"
1 => "尺碼:XS"
]
3 => array:2 [
0 => "顏色:白色"
1 => "尺碼:S"
]
4 => array:2 [
0 => "顏色:白色"
1 => "尺碼:M"
]
5 => array:2 [
0 => "顏色:白色"
1 => "尺碼:L"
]
6 => array:2 [
0 => "顏色:紅色"
1 => "尺碼:XXL"
]
7 => array:2 [
0 => "顏色:紅色"
1 => "尺碼:XL"
]
8 => array:2 [
0 => "顏色:紅色"
1 => "尺碼:XS"
]
9 => array:2 [
0 => "顏色:紅色"
1 => "尺碼:S"
]
10 => array:2 [
0 => "顏色:紅色"
1 => "尺碼:M"
]
11 => array:2 [
0 => "顏色:紅色"
1 => "尺碼:L"
]
12 => array:2 [
0 => "顏色:綠色"
1 => "尺碼:XXL"
]
13 => array:2 [
0 => "顏色:綠色"
1 => "尺碼:XL"
]
14 => array:2 [
0 => "顏色:綠色"
1 => "尺碼:XS"
]
15 => array:2 [
0 => "顏色:綠色"
1 => "尺碼:S"
]
16 => array:2 [
0 => "顏色:綠色"
1 => "尺碼:M"
]
17 => array:2 [
0 => "顏色:綠色"
1 => "尺碼:L"
]
18 => array:2 [
0 => "顏色:牛仔藍色"
1 => "尺碼:XXL"
]
19 => array:2 [
0 => "顏色:牛仔藍色"
1 => "尺碼:XL"
]
20 => array:2 [
0 => "顏色:牛仔藍色"
1 => "尺碼:XS"
]
21 => array:2 [
0 => "顏色:牛仔藍色"
1 => "尺碼:S"
]
22 => array:2 [
0 => "顏色:牛仔藍色"
1 => "尺碼:M"
]
23 => array:2 [
0 => "顏色:牛仔藍色"
1 => "尺碼:L"
]
24 => array:1 [
0 => "尺碼:XXL"
]
25 => array:1 [
0 => "尺碼:XL"
]
26 => array:1 [
0 => "尺碼:XS"
]
27 => array:1 [
0 => "尺碼:S"
]
28 => array:1 [
0 => "尺碼:M"
]
29 => array:1 [
0 => "尺碼:L"
]
]