Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
newShopBack
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
newshop
newShopBack
Commits
8b96aa0f
Commit
8b96aa0f
authored
Dec 23, 2019
by
孙磊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
商品导入
Signed-off-by:
sunlei
<
sunlei@romens.cn
>
parent
42e6e734
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1078 additions
and
0 deletions
+1078
-0
ImportGoodsInfoController.php
...nd/controllers/v1/shopgoods/ImportGoodsInfoController.php
+1078
-0
No files found.
backend/controllers/v1/shopgoods/ImportGoodsInfoController.php
0 → 100644
View file @
8b96aa0f
<?php
namespace
backend\controllers\v1\shopgoods
;
use
Yii
;
use
backend\controllers\v1\BaseController
;
use
yii\web\BadRequestHttpException
;
use
backend\helpers\Func
;
use
backend\helpers\UploadFiles
;
use
yidas\phpSpreadsheet\Helper
;
use
yii\web\HttpException
;
use
yii\web\UploadedFile
;
use
app\models\v1\shopgoods\ShopGoodsProperty
;
use
app\models\v1\shopgoods\ShopGoodsBrand
;
use
app\models\v1\shopgoods\ShopGoodsSubsidiary
;
use
app\models\v1\shopgoods\ShopGoodsAttach
;
use
app\models\v1\rbacuser\ShopRbacUser
;
use
app\models\v1\transport\ShopTransportType
;
use
app\models\v1\shopgoods\ShopPointsGoods
;
use
app\models\v1\shopgoods\ShopSAttach
;
class
ImportGoodsInfoController
extends
BaseController
{
public
$modelClass
=
'app\models\v1\shopgoods\ShopGoods'
;
/**
* @OA\Post(
* path="/backend/web/v1/shopgoods/import-goods-infos/shop-goods-import",
* tags={"商品管理"},
* summary="导入商品信息Excel(孙磊)",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="导入商品Excel",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public
function
actionShopGoodsImport
()
{
$model
=
new
UploadFiles
([
'xlsx'
,
'xls'
]);
if
(
Yii
::
$app
->
request
->
isPost
)
{
//多文件用getInstances
$model
->
uploadFiles
=
UploadedFile
::
getInstance
(
$model
,
'uploadFile'
);
$fileInfo
=
$model
->
upload
();
// 文件上传成功
if
(
$fileInfo
[
'CODE'
]
==
200
)
{
$rows
=
Helper
::
newSpreadsheet
(
$fileInfo
[
'INFO'
][
0
])
->
getRows
();
$tempArr
=
array_slice
(
$rows
,
2
);
$shopModel
=
new
$this
->
modelClass
();
$propertyModel
=
new
ShopGoodsProperty
();
$brandModel
=
new
ShopGoodsBrand
();
$subsidiaryModel
=
new
ShopGoodsSubsidiary
();
$ORG_GUID
=
Yii
::
$app
->
user
->
identity
->
ORG_GUID
;
//图片相关
$host_name
=
YUNUO_YUN_URL
;
$pic_ext
=
PIC_EXTENSIONS
;
//批量处理商品标签、品牌
$all_tag
=
array
();
$all_brand
=
array
();
foreach
(
$tempArr
as
$k
=>
$v
)
{
$all_brand
[]
=
$v
[
3
];
$all_tag
[]
=
$v
[
18
];
}
//查看商品品牌表是否有值,没有则添加
if
(
$all_brand
)
{
$goods_brand_info
=
$brandModel
->
validateBrand
(
$all_brand
);
//存在则添加
if
(
$goods_brand_info
)
{
foreach
(
$goods_brand_info
as
$k
=>
$v
)
{
$_brandModel
=
clone
$brandModel
;
$_brandModel
->
GUID
=
Func
::
create_guid
();
$_brandModel
->
ORG_GUID
=
$ORG_GUID
;
$_brandModel
->
NAME
=
$v
;
if
(
!
$_brandModel
->
save
())
{
Yii
::
$app
->
response
->
statusCode
=
422
;
return
$_brandModel
->
errors
;
}
}
}
}
//查看商品标签表是否有值,没有则添加
if
(
$all_tag
)
{
foreach
(
$all_tag
as
$k
=>
$v
)
{
$v
=
preg_replace
(
"/,/"
,
","
,
$v
);
$all_tag
[
$k
]
=
explode
(
','
,
$v
);
}
$setgoodstag
=
$propertyModel
->
validateProperty
(
$all_tag
);
//存在则添加
if
(
$setgoodstag
)
{
foreach
(
$setgoodstag
as
$val
)
{
$_propertyModel
=
clone
$propertyModel
;
$_propertyModel
->
GUID
=
Func
::
create_guid
();
$_propertyModel
->
ORG_GUID
=
$ORG_GUID
;
$_propertyModel
->
CODE
=
Func
::
create_guid
();
$_propertyModel
->
NAME
=
$val
;
if
(
!
$_propertyModel
->
save
())
{
Yii
::
$app
->
response
->
statusCode
=
422
;
return
$_propertyModel
->
errors
;
}
}
}
}
$shopModel
->
scenario
=
'import'
;
$transaction
=
$shopModel
->
getDb
()
->
beginTransaction
();
try
{
foreach
(
$tempArr
as
$key
=>
$value
)
{
$_shopModel
=
$shopModel
::
findOne
([
'CODE'
=>
$value
[
0
]]);
$goods_guid
=
$ORG_GUID
.
'-'
.
$value
[
0
];
$_subsidiaryModel
=
$subsidiaryModel
::
findOne
([
'GOODS_GUID'
=>
$goods_guid
]);
//商品信息
if
(
$_shopModel
===
null
)
{
$_shopModel
=
clone
$shopModel
;
$_shopModel
->
GUID
=
$goods_guid
;
//商品guid
$_shopModel
->
ORG_GUID
=
$ORG_GUID
;
//组织机构号
$_shopModel
->
CREATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
//创建时间
$_shopModel
->
CREATE_USER_GUID
=
Yii
::
$app
->
user
->
identity
->
CODE
;
//创建人账号
}
else
{
$_shopModel
->
IS_AUDITING
=
1
;
$_shopModel
->
UPDATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
$_shopModel
->
ORG_GUID
=
$ORG_GUID
;
$_shopModel
->
UPDATE_USER_GUID
=
Yii
::
$app
->
user
->
identity
->
CODE
;
//修改人账号
}
//商品辅助信息
if
(
$_subsidiaryModel
===
null
)
{
$_subsidiaryModel
=
clone
$subsidiaryModel
;
$_subsidiaryModel
->
GUID
=
Func
::
create_guid
();
$_subsidiaryModel
->
GOODS_GUID
=
$goods_guid
;
$_subsidiaryModel
->
ORG_GUID
=
$ORG_GUID
;
}
//条件验证
if
(
$value
[
7
]
==
''
)
$value
[
7
]
=
0
;
//用户级商品限购数量
if
(
$value
[
8
]
==
''
)
$value
[
8
]
=
0
;
//订单级商品限购数量
//判断市场价,售价,库存是否为空,如果为空就将他们设置为0
if
(
$value
[
19
]
==
''
||
!
isset
(
$value
[
19
]))
$value
[
19
]
=
0
;
//设置市场价为0
if
(
$value
[
20
]
==
''
||
!
isset
(
$value
[
20
]))
$value
[
20
]
=
0
;
//设置售价为0
if
(
$value
[
21
]
==
''
||
!
isset
(
$value
[
21
]))
$value
[
21
]
=
0
;
//设置库存为0
if
(
$value
[
22
]
==
''
||
!
isset
(
$value
[
22
]))
$value
[
22
]
=
1
;
//设置是否发布小程序和APP为是
if
(
$value
[
23
]
==
''
||
!
isset
(
$value
[
23
]))
$value
[
23
]
=
1
;
//设置是否是实物为是
if
(
$value
[
24
]
==
''
||
!
isset
(
$value
[
24
]))
$value
[
24
]
=
0
;
//设置是否处方药为否
if
(
$value
[
25
]
==
''
||
!
isset
(
$value
[
25
]))
$value
[
25
]
=
0
;
//设置是否医保为否
if
(
$value
[
26
]
==
''
||
!
isset
(
$value
[
26
]))
$value
[
26
]
=
0
;
//设置是否多规格为否
if
(
$value
[
27
]
==
''
||
!
isset
(
$value
[
27
]))
$value
[
27
]
=
0
;
//设置是否特殊商品为否
if
(
$value
[
28
]
==
''
||
!
isset
(
$value
[
28
]))
$value
[
28
]
=
0
;
//设置是否冷链商品为否
if
(
$value
[
29
]
==
''
||
!
isset
(
$value
[
29
]))
$value
[
29
]
=
0
;
//设置是否赠品为否
if
(
$value
[
31
]
==
''
||
!
isset
(
$value
[
31
]))
$value
[
31
]
=
0
;
//设置是否麻黄碱商品为否
if
(
$value
[
36
]
==
''
||
!
isset
(
$value
[
36
]))
$value
[
36
]
=
0
;
//设置是否跨境商品为否
//获取商品品牌GUID
if
(
$value
[
3
])
{
$brandInfo
=
$brandModel
->
getBrandInfo
(
$value
[
3
]);
$_shopModel
->
BRAND_GUID
=
$brandInfo
[
0
][
'GUID'
];
}
//添加或更新
$_shopModel
->
HOST_NAME
=
$host_name
;
//图品域名
$_shopModel
->
PIC_EXTENSIONS
=
$pic_ext
;
//图品后缀
$_shopModel
->
CODE
=
$value
[
0
];
//商品编码
$_shopModel
->
NAME
=
$value
[
1
];
//药品名
$_shopModel
->
APPROVAL_NUMBER
=
$value
[
2
];
//批准文号
$_shopModel
->
BRAND_NAME
=
$value
[
3
];
//品牌名称
$_shopModel
->
DOSAGE_FORM
=
$value
[
4
];
//剂型
$_shopModel
->
SPEC
=
$value
[
5
];
//规格
$_shopModel
->
UNIT_NAME
=
$value
[
6
];
//计量单位
$_shopModel
->
LIMIT_GOODS_NUM
=
$value
[
7
];
//用户级商品限购数量
$_shopModel
->
ORDERL_IMIT
=
$value
[
8
];
//订单级商品限购数量
$_shopModel
->
IS_GIFT_INTERNET
=
$value
[
9
];
//是否是互联网赠品
$_shopModel
->
IS_ADVANCE
=
$value
[
10
];
//是否预售商品
$_shopModel
->
IS_TAX
=
$value
[
11
];
//是否含海关税
$_shopModel
->
IS_QA
=
$value
[
12
];
//是否质保商品
$_shopModel
->
QA_DATE
=
$value
[
13
];
//质保日期
$_shopModel
->
CUSTOMS_NUMBER
=
$value
[
14
];
//商品海关备案编码
$_shopModel
->
TAX_RATE
=
$value
[
15
];
//商品海关税率
$_shopModel
->
PRODUCTION_ENTERPRISES
=
$value
[
16
];
//生产企业
$_shopModel
->
BAR_CODE
=
$value
[
17
];
//条形码
$_shopModel
->
GOODS_TAG
=
$value
[
18
];
//商品标签
$_shopModel
->
MARKET_PRICE
=
$value
[
19
];
//市场价
$_shopModel
->
USER_PRICE
=
$value
[
20
];
//售价
$_shopModel
->
STOCK_COUNT
=
$value
[
21
];
//库存
$_shopModel
->
IS_PUBLIC_MOBILE
=
$value
[
22
];
//是否发布小程序和APP
$_shopModel
->
IS_REAL
=
$value
[
23
];
//是否是实物
$_shopModel
->
IS_PRESCRIPTION
=
$value
[
24
];
//是否处方药
$_shopModel
->
IS_MEDICAL_INSURANCE
=
$value
[
25
];
//是否医保
$_shopModel
->
IS_MULTI_SPEC
=
$value
[
26
];
//是否多规格
$_shopModel
->
IS_SPECIAL_GOODS
=
$value
[
27
];
//是否特殊商品
$_shopModel
->
IS_CODECHAIN_GOODS
=
$value
[
28
];
//是否冷链商品
$_shopModel
->
IS_GIFT
=
$value
[
29
];
//是否赠品
$_shopModel
->
STATE_OF_ORIGIN
=
$value
[
30
];
//源产地国描述
$_shopModel
->
IS_EPHEDRINE
=
$value
[
31
];
//是否麻黄碱商品
$_shopModel
->
THIRD_PARTY_CODE
=
$value
[
32
];
//供应商编码
$_shopModel
->
THIRD_PARTY_NAME
=
$value
[
33
];
//供应商名称
$_shopModel
->
TERMVALIDITY
=
$value
[
34
];
//有效期
$_shopModel
->
PACKAGE_LICENSE_NUMBER
=
$value
[
35
];
//分包装批准文号
$_shopModel
->
IS_CROSSB_ORDER
=
$value
[
36
];
//是否跨境
$_shopModel
->
ITEM_CAT
=
$value
[
37
];
//商品类目
$_shopModel
->
ITEM_CAT_DES
=
$value
[
38
];
//商品类目描述
$_shopModel
->
ITEM_TYPE
=
$value
[
39
];
//商品类型
$_shopModel
->
ITEM_TYPE_DESC
=
$value
[
40
];
//商品类型描述
$_shopModel
->
MATERIEL
=
$value
[
41
];
//物料划分
$_shopModel
->
MATERIEL_DESC
=
$value
[
42
];
//物料划分描述
$_shopModel
->
ROUGH_WEIGHT
=
$value
[
43
];
//毛重
$_shopModel
->
NUM_PACKAGES
=
$value
[
44
];
//中包装数
$_shopModel
->
NUM_PACKAGES_DESC
=
$value
[
45
];
//包装描述
$_shopModel
->
STORAGE_CONDITION
=
$value
[
46
];
//存储条件
//商品信息添加或更新
if
(
!
$_shopModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
1
)
=>
$_shopModel
->
errors
];
return
$returnInfo
;
}
//商品辅助信息添加或更新
$_subsidiaryModel
->
MATTERS_ATTENTION
=
$value
[
47
];
//注意事项
$_subsidiaryModel
->
USAGE_DOSAGE
=
$value
[
48
];
//用法用量
$_subsidiaryModel
->
DRUG_INIERACTIONS
=
$value
[
49
];
//药物相互作用
$_subsidiaryModel
->
DRUG_OVERDOSE
=
$value
[
50
];
//药物过量
$_subsidiaryModel
->
DRUG_INGREDIENTS
=
$value
[
51
];
//药物成分
$_subsidiaryModel
->
PHARMAC_TOXI
=
$value
[
52
];
//药理毒理
$_subsidiaryModel
->
PHARMACOKINETICS
=
$value
[
53
];
//药代动力学
$_subsidiaryModel
->
CLINICAL_TRIALS
=
$value
[
54
];
//临床实验
$_subsidiaryModel
->
ELDERLY_MEDICATION
=
$value
[
55
];
//老年用药
$_subsidiaryModel
->
PREGLACT_MEDICATION
=
$value
[
56
];
//孕妇及哺乳期妇女用药
$_subsidiaryModel
->
CHILDREN_MEDICATION
=
$value
[
57
];
//儿童用药
$_subsidiaryModel
->
TABOO
=
$value
[
58
];
//禁忌
$_subsidiaryModel
->
FUNCTION_ALINDICAT
=
$value
[
59
];
//功能主治
$_subsidiaryModel
->
SIDE_EFFECTS
=
$value
[
60
];
//不良反应
$_subsidiaryModel
->
SUITABLE_CROWD
=
$value
[
61
];
//适宜人群
$_subsidiaryModel
->
INAPPROPRIATE_CROWD
=
$value
[
62
];
//不适宜人群
$_subsidiaryModel
->
MODEL
=
$value
[
63
];
//型号
$_subsidiaryModel
->
COLOR
=
$value
[
64
];
//颜色
$_subsidiaryModel
->
DIAMETER
=
$value
[
65
];
//直径
$_subsidiaryModel
->
THICKNESS
=
$value
[
66
];
//厚度
$_subsidiaryModel
->
DEGREES
=
$value
[
67
];
//度数
$_subsidiaryModel
->
SERVICE_INFORMATION
=
$value
[
68
];
//售后服务商信息
$_subsidiaryModel
->
SPECIFICATION_CON
=
$value
[
69
];
//规格转化(散装)
$_subsidiaryModel
->
SPECIAL_PURPOSE
=
$value
[
70
];
//是否为特殊用品化妆品
//辅助信息添加或更新
if
(
!
$_subsidiaryModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
2
)
=>
$_subsidiaryModel
->
errors
];
return
$returnInfo
;
}
}
$transaction
->
commit
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
HttpException
(
"200"
,
'导入成功'
);
}
catch
(
\Throwable
$e
)
{
$transaction
->
rollBack
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
$e
;
}
}
else
{
Yii
::
$app
->
response
->
statusCode
=
422
;
if
(
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
==
"类型不对"
)
{
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
=
'文件类型要求97-2003工作簿 xls格式!'
;
}
return
$fileInfo
[
'INFO'
];
}
}
}
/**
* @OA\Post(
* path="/backend/web/v1/shopgoods/import-goods-infos/goods-extensions-import",
* tags={"商品管理"},
* summary="导入商品扩展信息Excel(孙磊)",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="导入商品扩展信息Excel",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public
function
actionGoodsExtensionsImport
()
{
$model
=
new
UploadFiles
([
'xlsx'
,
'xls'
]);
if
(
Yii
::
$app
->
request
->
isPost
)
{
//多文件用getInstances
$model
->
uploadFiles
=
UploadedFile
::
getInstance
(
$model
,
'uploadFile'
);
$fileInfo
=
$model
->
upload
();
// 文件上传成功
if
(
$fileInfo
[
'CODE'
]
==
200
)
{
$rows
=
Helper
::
newSpreadsheet
(
$fileInfo
[
'INFO'
][
0
])
->
getRows
();
$tempArr
=
array_slice
(
$rows
,
2
);
$shopModel
=
new
$this
->
modelClass
();
$attachModel
=
new
ShopGoodsAttach
();
$transportModel
=
new
ShopTransportType
();
$ORG_GUID
=
Yii
::
$app
->
user
->
identity
->
ORG_GUID
;
//权限信息
$rbac
=
new
ShopRbacUser
();
$userGuid
=
Yii
::
$app
->
user
->
identity
->
GUID
;
$userinfo
=
$rbac
->
getRbacUserInfo
(
$userGuid
);
// $supCompanyGuid = $userinfo['SUPCOMPANY_GUID'];
$supCompanyGuid
=
$userinfo
[
'PARENT_BRANCH_GUID'
];
$shopModel
->
scenario
=
'import'
;
$transaction
=
$attachModel
->
getDb
()
->
beginTransaction
();
try
{
foreach
(
$tempArr
as
$key
=>
$value
)
{
if
(
empty
(
$value
[
0
]))
{
throw
new
BadRequestHttpException
(
'商品编码不能为空'
);
}
$_shopModel
=
$shopModel
::
findOne
([
'CODE'
=>
$value
[
0
]]);
//商品信息
if
(
$_shopModel
===
null
)
{
continue
;
}
else
{
$goodsGuid
=
$_shopModel
[
'GUID'
];
$GoodsAttachGuid
=
$supCompanyGuid
.
'-'
.
$goodsGuid
;
//商品扩展信息GUID
$_attachModel
=
$attachModel
::
findOne
([
'GOODS_CODE'
=>
$value
[
0
]]);
if
(
$_attachModel
===
null
)
{
$_attachModel
=
clone
$attachModel
;
$_attachModel
->
GUID
=
$GoodsAttachGuid
;
$_attachModel
->
ORG_GUID
=
$ORG_GUID
;
$_attachModel
->
GOODS_GUID
=
$goodsGuid
;
}
else
{
$_attachModel
->
UPDATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
}
}
$fileLoadPath
=
$supCompanyGuid
.
'/'
.
$value
[
0
]
.
'/'
.
$value
[
0
];
//条件验证
if
(
$value
[
3
]
==
1
)
{
$host_name
=
YUNUO_YUN_URL
;
$picFilePath
=
$fileLoadPath
.
'-1.jpg'
;
$imgUrl
=
$host_name
.
$picFilePath
;
$value
[
3
]
=
$imgUrl
;
//商品图片
}
else
{
$value
[
3
]
=
''
;
}
$attachPicNum
=
(
int
)
trim
(
$value
[
4
]);
//批量更新 商品子图
if
(
!
empty
(
$attachPicNum
))
{
$res
=
$this
->
BatchUpdateGoodsExteninfo
(
$GoodsAttachGuid
,
$attachPicNum
,
$value
[
0
]);
}
if
(
!
empty
(
$value
[
5
]))
{
$value
[
5
]
=
preg_replace
(
"/,/"
,
","
,
$value
[
5
]);
$transportType
=
explode
(
','
,
$value
[
5
]);
//获取配送方式信息
$getTransportTypeInfo
=
$transportModel
->
BranchTransportInfo
(
$transportType
);
if
(
$getTransportTypeInfo
)
{
$transportGuid
=
array_column
(
$getTransportTypeInfo
,
'GUID'
);
$transportGuid_str
=
implode
(
','
,
$transportGuid
);
}
else
{
$transportGuid_str
=
''
;
}
$value
[
5
]
=
$transportGuid_str
;
}
if
(
$value
[
6
]
==
''
||
$value
[
6
]
==
1
)
{
$value
[
6
]
=
0
;
//0 下单时减少库存
}
else
{
$value
[
6
]
=
1
;
//1 付款后减少库存
}
if
(
$value
[
7
]
==
''
)
$value
[
7
]
=
0
;
//是否返利商品
if
(
empty
(
$value
[
8
]))
$value
[
8
]
=
0
;
//员工分销商一级返利额比例
if
(
empty
(
$value
[
9
]))
$value
[
9
]
=
0
;
//员工分销商二级返利额比例
if
(
empty
(
$value
[
10
]))
$value
[
10
]
=
0
;
//员工一级分销返利额比例
if
(
empty
(
$value
[
11
]))
$value
[
11
]
=
0
;
//员工二级分销返利额比例
if
(
empty
(
$value
[
12
]))
$value
[
12
]
=
0
;
//用户一级分销返利额比例
if
(
empty
(
$value
[
13
]))
$value
[
13
]
=
0
;
//用户二级分销返利额比例
if
(
$value
[
16
]
==
''
||
!
isset
(
$value
[
16
]))
$value
[
16
]
=
1
;
//设置是否上架为是
if
(
$value
[
17
]
==
''
||
!
isset
(
$value
[
17
]))
$value
[
17
]
=
1
;
//设置是否发布小程序和APP为是
if
(
$value
[
20
]
==
''
||
!
isset
(
$value
[
20
]))
$value
[
20
]
=
0
;
//设置是否医保为否
if
(
$value
[
21
]
==
''
||
!
isset
(
$value
[
21
]))
$value
[
21
]
=
0
;
//设置是否双跨处方药为否
if
(
$value
[
22
]
==
''
||
!
isset
(
$value
[
22
]))
$value
[
22
]
=
0
;
//设置是否赠品为否
if
(
$value
[
23
]
==
''
||
!
isset
(
$value
[
23
]))
$value
[
23
]
=
0
;
//设置是否参与营销活动为否
if
(
$value
[
30
]
==
''
||
!
isset
(
$value
[
30
]))
$value
[
30
]
=
0
;
//设置是否预售为否
if
(
$value
[
31
]
==
''
||
!
isset
(
$value
[
31
]))
$value
[
31
]
=
0
;
//设置是否限购为否
if
(
$value
[
34
]
==
''
||
!
isset
(
$value
[
34
]))
$value
[
34
]
=
0
;
//设置是否是跨境商品为否
//导入验证
$_attachModel
->
GOODS_CODE
=
$value
[
0
];
//商品编码
$_attachModel
->
GOODS_TITLE
=
$value
[
1
];
//商品标题
$_attachModel
->
GOODS_ABSTRACT
=
$value
[
2
];
//商品摘要
$_attachModel
->
HOST_NAME
=
$host_name
;
//商品图片 域名
$_attachModel
->
URI
=
$value
[
3
];
//商品图片 路径
$_attachModel
->
TRANSPORT_TYPE
=
$value
[
5
];
//配送方式
$_attachModel
->
STOCK_REDUCE_TYPE
=
$value
[
6
];
//支付前减库存
$_attachModel
->
IS_DISTRIBUTION_GOODS
=
$value
[
7
];
//是否返利商品
$_attachModel
->
EMPLOYEE_FIRST_RETURN_MONEY_RATIOS1
=
$value
[
8
];
//员工分销商一级返利额比例
$_attachModel
->
EMPLOYEE_SECOND_RETURN_MONEY_RATIOS2
=
$value
[
9
];
//员工分销商二级返利额比例
$_attachModel
->
EMPLOYEE_FIRST_RETURN_MONEY_RATIO
=
$value
[
10
];
//员工一级分销返利额比例
$_attachModel
->
EMPLOYEE_SECOND_RETURN_MONEY_RATIO
=
$value
[
11
];
//员工二级分销返利额比例
$_attachModel
->
USER_FIRST_RETURN_MONEY_RATIO
=
$value
[
12
];
//用户一级分销返利额比例
$_attachModel
->
USER_SECOND_RETURN_MONEY_RATIO
=
$value
[
13
];
//用户二级分销返利额比例
$_attachModel
->
DETAIL_DESCRIPTION
=
$value
[
14
];
//商品描述
$_attachModel
->
SUPCOMPANY_GUID
=
$supCompanyGuid
;
//省份编号
$_attachModel
->
PUBLIC_TYPE
=
$value
[
16
];
//是否上架
$_attachModel
->
IS_PUBLIC_MOBILE
=
$value
[
17
];
//是否发布到小程序或APP
$_attachModel
->
AD
=
$value
[
18
];
//商品广告词
$_attachModel
->
PREFIX
=
$value
[
19
];
//前缀
$_attachModel
->
IS_CARE
=
$value
[
20
];
//是否医保
$_attachModel
->
IS_RXANDOTC
=
$value
[
21
];
//是否双跨处方药
$_attachModel
->
IS_GIFT
=
$value
[
22
];
//是否赠品
$_attachModel
->
IS_ACTIVITY
=
$value
[
23
];
//是否参与营销活动
$_attachModel
->
PAY_TYPE
=
$value
[
24
];
//支付渠道
$_attachModel
->
COST_PRICE
=
$value
[
25
];
//成本
$_attachModel
->
MAX_ORDER_NUM
=
$value
[
26
];
//最大订单数量
$_attachModel
->
MIN_ORDER_NUM
=
$value
[
27
];
//最小订单数量
$_attachModel
->
GOODS_REBATE
=
$value
[
28
];
//单品级的返利维护
$_attachModel
->
REBATE_DISTRIBUTE
=
$value
[
29
];
//多级人员的分配
$_attachModel
->
IS_PRESELL
=
$value
[
30
];
//是否预售
$_attachModel
->
IS_LIMIT
=
$value
[
31
];
//是否限购
$_attachModel
->
TAX
=
$value
[
32
];
//商品税率/税金
$_attachModel
->
ESSENTIAL_DRUGS
=
$value
[
33
];
//基本药物
$_attachModel
->
IS_CROSS_BORDER
=
$value
[
34
];
//是否是跨境商品
$_attachModel
->
HINT
=
$value
[
35
];
//温馨提示
//商品扩展信息添加或更新
if
(
!
$_attachModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
1
)
=>
$_attachModel
->
errors
];
return
$returnInfo
;
}
}
$transaction
->
commit
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
HttpException
(
"200"
,
'导入成功'
);
}
catch
(
\Throwable
$e
)
{
$transaction
->
rollBack
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
$e
;
}
}
else
{
Yii
::
$app
->
response
->
statusCode
=
422
;
if
(
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
==
"类型不对"
)
{
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
=
'文件类型要求97-2003工作簿 xls格式!'
;
}
return
$fileInfo
[
'INFO'
];
}
}
}
/**
* 批量更新 商品子图
*/
public
function
BatchUpdateGoodsExteninfo
(
$GoodAttachGuid
,
$AttachInfoNum
,
$goodCode
)
{
$ORG_GUID
=
Yii
::
$app
->
user
->
identity
->
ORG_GUID
;
$host_name
=
YUNUO_YUN_URL
;
//先删除原有 子图信息
$SAttachModel
=
new
ShopSAttach
();
$SAttachModel
->
deleteByGoodsGuid
(
$GoodAttachGuid
);
//去掉主图排序
$AttachInfoNum
=
empty
(
$AttachInfoNum
)
?
0
:
$AttachInfoNum
+
1
;
//权限信息
$rbac
=
new
ShopRbacUser
();
$userGuid
=
Yii
::
$app
->
user
->
identity
->
GUID
;
$userinfo
=
$rbac
->
getRbacUserInfo
(
$userGuid
);
// $supCompanyGuid = $userinfo['SUPCOMPANY_GUID'];
$supCompanyGuid
=
$userinfo
[
'PARENT_BRANCH_GUID'
];
//路径
$fileLoadPath
=
$supCompanyGuid
.
'/'
.
$goodCode
.
'/'
.
$goodCode
.
'-'
;
for
(
$i
=
2
;
$i
<=
$AttachInfoNum
;
$i
++
)
{
$imgsNewId
=
Func
::
create_guid
();
// $filePath = $host_name . $fileLoadPath . $i . '.jpg';
$filesPath
=
$fileLoadPath
.
$i
.
'.jpg'
;
//验证
$_SAttachModel
=
clone
$SAttachModel
;
$_SAttachModel
->
GUID
=
$imgsNewId
;
$_SAttachModel
->
ORG_GUID
=
$ORG_GUID
;
$_SAttachModel
->
GOODS_GUID
=
$GoodAttachGuid
;
$_SAttachModel
->
HOST_NAME
=
$host_name
;
$_SAttachModel
->
URI
=
$filesPath
;
$_SAttachModel
->
ORDER_INDEX
=
(
string
)
$i
;
$_SAttachModel
->
TYPE
=
1
;
//保存
if
(
!
$_SAttachModel
->
save
())
{
Yii
::
$app
->
response
->
statusCode
=
422
;
return
$_SAttachModel
->
errors
;
}
}
return
$_SAttachModel
;
}
/**
* @OA\Post(
* path="/backend/web/v1/shopgoods/import-goods-infos/points-goods-import",
* tags={"商品管理"},
* summary="导入积分商品信息Excel(孙磊)",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="导入积分商品信息Excel",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public
function
actionPointsGoodsImport
()
{
$model
=
new
UploadFiles
([
'xlsx'
,
'xls'
]);
if
(
Yii
::
$app
->
request
->
isPost
)
{
//多文件用getInstances
$model
->
uploadFiles
=
UploadedFile
::
getInstance
(
$model
,
'uploadFile'
);
$fileInfo
=
$model
->
upload
();
// 文件上传成功
if
(
$fileInfo
[
'CODE'
]
==
200
)
{
$rows
=
Helper
::
newSpreadsheet
(
$fileInfo
[
'INFO'
][
0
])
->
getRows
();
$tempArr
=
array_slice
(
$rows
,
2
);
if
(
empty
(
$tempArr
))
{
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
BadRequestHttpException
(
'上传至少一条数据'
);
}
//判断唯一性数组
$uniqueArr
=
array
();
foreach
(
$tempArr
as
$key
=>
$value
)
{
$uniqueArr
[]
=
$value
[
0
];
}
if
(
count
(
$uniqueArr
)
!=
count
(
array_unique
(
$uniqueArr
)))
{
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
BadRequestHttpException
(
'存在重复数据,请确认'
);
}
$pointsGoodsModel
=
new
ShopPointsGoods
();
$shopModel
=
new
$this
->
modelClass
();
$ORG_GUID
=
Yii
::
$app
->
user
->
identity
->
ORG_GUID
;
$pointsGoodsModel
->
scenario
=
'import'
;
$transaction
=
$pointsGoodsModel
->
getDb
()
->
beginTransaction
();
try
{
foreach
(
$tempArr
as
$key
=>
$value
)
{
if
(
empty
(
$value
[
0
]))
{
throw
new
BadRequestHttpException
(
'商品编码不能为空'
);
}
if
(
empty
(
$value
[
4
])
||
$value
[
4
]
==
0
)
{
throw
new
BadRequestHttpException
(
'商品总金额不能为空或者0'
);
}
$_pointsGoodsModel
=
$pointsGoodsModel
::
findOne
([
'CODE'
=>
$value
[
0
]]);
//积分商品信息
if
(
$_pointsGoodsModel
===
null
)
{
$_pointsGoodsModel
=
clone
$pointsGoodsModel
;
$_pointsGoodsModel
->
GUID
=
Func
::
create_guid
();
$_pointsGoodsModel
->
ORG_GUID
=
$ORG_GUID
;
$_pointsGoodsModel
->
CREATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
}
//导入验证
$_pointsGoodsModel
->
CODE
=
$value
[
0
];
//商品编码
$_pointsGoodsModel
->
POINTS_VALUE
=
$value
[
1
];
//全积分支付所需积分
$_pointsGoodsModel
->
PART_POINTS
=
$value
[
2
];
//积分+现金支付所需积分
$_pointsGoodsModel
->
PRICES
=
$value
[
3
];
//积分+现金支付所需现金
$_pointsGoodsModel
->
TOTAL_AMOUNT
=
$value
[
4
];
//商品总金额
//积分商品信息添加或更新
if
(
!
$_pointsGoodsModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
1
)
=>
$_pointsGoodsModel
->
errors
];
return
$returnInfo
;
}
//商品信息更新
$_shopModel
=
$shopModel
::
findOne
([
'CODE'
=>
$value
[
0
]]);
if
(
$_shopModel
===
null
)
{
continue
;
}
else
{
$_shopModel
->
UPDATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
$_shopModel
->
UPDATE_USER_GUID
=
Yii
::
$app
->
user
->
identity
->
CODE
;
//修改人账号
}
$_shopModel
->
CODE
=
$value
[
0
];
//商品编码
$_shopModel
->
ALL_POINTS_NUM
=
$value
[
1
];
//全积分支付所需积分
$_shopModel
->
PART_POINTS_NUM
=
$value
[
2
];
//积分+现金支付所需积分
$_shopModel
->
POINTS_PRICE
=
$value
[
3
];
//积分+现金支付所需现金
$_shopModel
->
TOTAL_PRICE
=
$value
[
4
];
//商品总金额
//更新
if
(
!
$_shopModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
2
)
=>
$_shopModel
->
errors
];
return
$returnInfo
;
}
}
$transaction
->
commit
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
HttpException
(
"200"
,
'导入成功'
);
}
catch
(
\Throwable
$e
)
{
$transaction
->
rollBack
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
$e
;
}
}
else
{
Yii
::
$app
->
response
->
statusCode
=
422
;
if
(
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
==
"类型不对"
)
{
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
=
'文件类型要求97-2003工作簿 xls格式!'
;
}
return
$fileInfo
[
'INFO'
];
}
}
}
/**
* @OA\Post(
* path="/backend/web/v1/shopgoods/import-goods-infos/province-goods-extensions-import",
* tags={"商品管理"},
* summary="省级导入商品扩展信息Excel(孙磊)",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="省级导入商品扩展信息Excel",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public
function
actionProvinceGoodsExtensionsImport
()
{
$model
=
new
UploadFiles
([
'xlsx'
,
'xls'
]);
if
(
Yii
::
$app
->
request
->
isPost
)
{
//多文件用getInstances
$model
->
uploadFiles
=
UploadedFile
::
getInstance
(
$model
,
'uploadFile'
);
$fileInfo
=
$model
->
upload
();
// 文件上传成功
if
(
$fileInfo
[
'CODE'
]
==
200
)
{
$rows
=
Helper
::
newSpreadsheet
(
$fileInfo
[
'INFO'
][
0
])
->
getRows
();
$tempArr
=
array_slice
(
$rows
,
2
);
$shopModel
=
new
$this
->
modelClass
();
$attachModel
=
new
ShopGoodsAttach
();
$transportModel
=
new
ShopTransportType
();
$ORG_GUID
=
Yii
::
$app
->
user
->
identity
->
ORG_GUID
;
//权限信息
$rbac
=
new
ShopRbacUser
();
$userGuid
=
Yii
::
$app
->
user
->
identity
->
GUID
;
$userinfo
=
$rbac
->
getRbacUserInfo
(
$userGuid
);
// $supCompanyGuid = $userinfo['SUPCOMPANY_GUID'];
$supCompanyGuid
=
$userinfo
[
'PARENT_BRANCH_GUID'
];
$shopModel
->
scenario
=
'import'
;
$transaction
=
$attachModel
->
getDb
()
->
beginTransaction
();
try
{
foreach
(
$tempArr
as
$key
=>
$value
)
{
if
(
empty
(
$value
[
0
]))
{
throw
new
BadRequestHttpException
(
'商品编码不能为空'
);
}
$_shopModel
=
$shopModel
::
findOne
([
'CODE'
=>
$value
[
0
]]);
//商品信息
if
(
$_shopModel
===
null
)
{
continue
;
}
else
{
$_attachModel
=
$attachModel
::
findOne
([
'GOODS_CODE'
=>
$value
[
0
],
'SUPCOMPANY_GUID'
=>
$supCompanyGuid
]);
//只可修改扩展信息
if
(
$_attachModel
===
null
)
{
continue
;
}
else
{
$_attachModel
->
UPDATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
}
}
//条件验证
if
(
!
empty
(
$value
[
3
]))
{
$value
[
3
]
=
preg_replace
(
"/,/"
,
","
,
$value
[
3
]);
$transportType
=
explode
(
','
,
$value
[
3
]);
//获取配送方式信息
$getTransportTypeInfo
=
$transportModel
->
BranchTransportInfo
(
$transportType
);
if
(
$getTransportTypeInfo
)
{
$transportGuid
=
array_column
(
$getTransportTypeInfo
,
'GUID'
);
$transportGuid_str
=
implode
(
','
,
$transportGuid
);
}
else
{
$transportGuid_str
=
''
;
}
$value
[
3
]
=
$transportGuid_str
;
}
if
(
$value
[
4
]
==
''
||
$value
[
4
]
==
1
)
{
$value
[
4
]
=
0
;
//0 下单时减少库存
}
else
{
$value
[
4
]
=
1
;
//1 付款后减少库存
}
if
(
empty
(
$value
[
5
]))
$value
[
5
]
=
0
;
//是否返利商品
if
(
empty
(
$value
[
6
]))
$value
[
6
]
=
0
;
//员工一级分销返利额比例
if
(
empty
(
$value
[
7
]))
$value
[
7
]
=
0
;
//员工二级分销返利额比例
if
(
empty
(
$value
[
8
]))
$value
[
8
]
=
0
;
//用户一级分销返利额比例
if
(
empty
(
$value
[
9
]))
$value
[
9
]
=
0
;
//用户二级分销返利额比例
if
(
$value
[
10
]
==
''
||
!
isset
(
$value
[
10
]))
$value
[
10
]
=
1
;
//设置是否上架为是
if
(
$value
[
11
]
==
''
||
!
isset
(
$value
[
11
]))
$value
[
11
]
=
1
;
//设置是否发布小程序和APP为是
if
(
$value
[
14
]
==
''
||
!
isset
(
$value
[
14
]))
$value
[
14
]
=
0
;
//设置是否医保为否
if
(
$value
[
15
]
==
''
||
!
isset
(
$value
[
15
]))
$value
[
15
]
=
0
;
//设置是否双跨处方药为否
if
(
$value
[
16
]
==
''
||
!
isset
(
$value
[
16
]))
$value
[
16
]
=
0
;
//设置是否赠品为否
if
(
$value
[
17
]
==
''
||
!
isset
(
$value
[
17
]))
$value
[
17
]
=
0
;
//设置是否参与营销活动为否
if
(
$value
[
24
]
==
''
||
!
isset
(
$value
[
24
]))
$value
[
24
]
=
0
;
//设置是否预售为否
if
(
$value
[
25
]
==
''
||
!
isset
(
$value
[
25
]))
$value
[
25
]
=
0
;
//设置是否限购为否
if
(
$value
[
28
]
==
''
||
!
isset
(
$value
[
28
]))
$value
[
28
]
=
0
;
//设置是否是跨境商品为否
//导入验证
$_attachModel
->
PUBLIC_PLATFORM
=
'1,2,3'
;
//发布平台
$_attachModel
->
GOODS_CODE
=
$value
[
0
];
//商品编码
$_attachModel
->
GOODS_TITLE
=
$value
[
1
];
//商品标题
$_attachModel
->
GOODS_ABSTRACT
=
$value
[
2
];
//商品摘要
$_attachModel
->
TRANSPORT_TYPE
=
$value
[
3
];
//配送方式
$_attachModel
->
STOCK_REDUCE_TYPE
=
$value
[
4
];
//支付前减库存
$_attachModel
->
IS_DISTRIBUTION_GOODS
=
$value
[
5
];
//是否返利商品
$_attachModel
->
EMPLOYEE_FIRST_RETURN_MONEY_RATIO
=
$value
[
6
];
//员工一级分销返利额比例
$_attachModel
->
EMPLOYEE_SECOND_RETURN_MONEY_RATIO
=
$value
[
7
];
//员工二级分销返利额比例
$_attachModel
->
USER_FIRST_RETURN_MONEY_RATIO
=
$value
[
8
];
//用户一级分销返利额比例
$_attachModel
->
USER_SECOND_RETURN_MONEY_RATIO
=
$value
[
9
];
//用户二级分销返利额比例
$_attachModel
->
SUPCOMPANY_GUID
=
$supCompanyGuid
;
//省份编号
$_attachModel
->
PUBLIC_TYPE
=
$value
[
10
];
//是否上架
$_attachModel
->
IS_PUBLIC_MOBILE
=
$value
[
11
];
//是否发布到小程序或APP
$_attachModel
->
AD
=
$value
[
12
];
//商品广告词
$_attachModel
->
PREFIX
=
$value
[
13
];
//前缀
$_attachModel
->
IS_CARE
=
$value
[
14
];
//是否医保
$_attachModel
->
IS_RXANDOTC
=
$value
[
15
];
//是否双跨处方药
$_attachModel
->
IS_GIFT
=
$value
[
16
];
//是否赠品
$_attachModel
->
IS_ACTIVITY
=
$value
[
17
];
//是否参与营销活动
$_attachModel
->
PAY_TYPE
=
$value
[
18
];
//支付渠道
$_attachModel
->
COST_PRICE
=
$value
[
19
];
//成本
$_attachModel
->
MAX_ORDER_NUM
=
$value
[
20
];
//最大订单数量
$_attachModel
->
MIN_ORDER_NUM
=
$value
[
21
];
//最小订单数量
$_attachModel
->
GOODS_REBATE
=
$value
[
22
];
//单品级的返利维护
$_attachModel
->
REBATE_DISTRIBUTE
=
$value
[
23
];
//多级人员的分配
$_attachModel
->
IS_PRESELL
=
$value
[
24
];
//是否预售
$_attachModel
->
IS_LIMIT
=
$value
[
25
];
//是否限购
$_attachModel
->
TAX
=
$value
[
26
];
//商品税率/税金
$_attachModel
->
ESSENTIAL_DRUGS
=
$value
[
27
];
//基本药物
$_attachModel
->
IS_CROSS_BORDER
=
$value
[
28
];
//是否是跨境商品
$_attachModel
->
HINT
=
$value
[
29
];
//温馨提示
//商品扩展信息更新
if
(
!
$_attachModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
1
)
=>
$_attachModel
->
errors
];
return
$returnInfo
;
}
}
$transaction
->
commit
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
HttpException
(
"200"
,
'导入成功'
);
}
catch
(
\Throwable
$e
)
{
$transaction
->
rollBack
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
$e
;
}
}
else
{
Yii
::
$app
->
response
->
statusCode
=
422
;
if
(
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
==
"类型不对"
)
{
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
=
'文件类型要求97-2003工作簿 xls格式!'
;
}
return
$fileInfo
[
'INFO'
];
}
}
}
/**
* @OA\Post(
* path="/backend/web/v1/shopgoods/import-goods-infos/province-goods-rebate-import",
* tags={"商品管理"},
* summary="省级商品返利额信息上传Excel(孙磊)",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="省级商品返利额信息上传Excel",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public
function
actionProvinceGoodsRebateImport
()
{
$model
=
new
UploadFiles
([
'xlsx'
,
'xls'
]);
if
(
Yii
::
$app
->
request
->
isPost
)
{
//多文件用getInstances
$model
->
uploadFiles
=
UploadedFile
::
getInstance
(
$model
,
'uploadFile'
);
$fileInfo
=
$model
->
upload
();
// 文件上传成功
if
(
$fileInfo
[
'CODE'
]
==
200
)
{
$tempArr
=
Helper
::
newSpreadsheet
(
$fileInfo
[
'INFO'
][
0
])
->
getRows
(
true
,
[
'rowOffset'
=>
2
,
'columns'
=>
8
]);
if
(
empty
(
$tempArr
))
{
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
BadRequestHttpException
(
'上传至少一条数据'
);
}
//判断唯一性数组
$uniqueArr
=
array
();
foreach
(
$tempArr
as
$key
=>
$value
)
{
$uniqueArr
[]
=
$value
[
0
];
}
if
(
count
(
$uniqueArr
)
!=
count
(
array_unique
(
$uniqueArr
)))
{
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
BadRequestHttpException
(
'存在重复数据,请确认'
);
}
$attachModel
=
new
ShopGoodsAttach
();
$transaction
=
$attachModel
->
getDb
()
->
beginTransaction
();
try
{
foreach
(
$tempArr
as
$key
=>
$value
)
{
if
(
empty
(
$value
[
0
]))
{
throw
new
BadRequestHttpException
(
'商品编码不能为空'
);
}
$_attachModel
=
$attachModel
::
findOne
([
'GOODS_CODE'
=>
$value
[
0
]]);
//商品扩展信息 只可修改
if
(
$_attachModel
===
null
)
{
continue
;
}
else
{
$_attachModel
->
UPDATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
}
//是否是分销商品 1是0否
if
(
$value
[
1
]
==
''
||
$value
[
1
]
==
'否'
||
$value
[
1
]
==
'0'
)
{
$value
[
1
]
=
0
;
}
else
{
$value
[
1
]
=
1
;
}
if
(
empty
(
$value
[
2
]))
$value
[
2
]
=
0
;
//员工分销商一级返利比例
if
(
empty
(
$value
[
3
]))
$value
[
3
]
=
0
;
//员工分销商二级返利比例
if
(
empty
(
$value
[
4
]))
$value
[
4
]
=
0
;
//员工一级返利比例
if
(
empty
(
$value
[
5
]))
$value
[
5
]
=
0
;
//员工二级返利比例
if
(
empty
(
$value
[
6
]))
$value
[
6
]
=
0
;
//用户一级返利比例
if
(
empty
(
$value
[
7
]))
$value
[
7
]
=
0
;
//用户二级返利比例
//导入验证
$_attachModel
->
GOODS_CODE
=
$value
[
0
];
//商品编码
$_attachModel
->
IS_DISTRIBUTION_GOODS
=
$value
[
1
];
//是否是分销商品
if
(
$value
[
1
]
==
0
)
{
$_attachModel
->
EMPLOYEE_FIRST_RETURN_MONEY_RATIOS1
=
'0'
;
//员工分销商一级返利额比例
$_attachModel
->
EMPLOYEE_SECOND_RETURN_MONEY_RATIOS2
=
'0'
;
//员工分销商二级返利额比例
$_attachModel
->
EMPLOYEE_FIRST_RETURN_MONEY_RATIO
=
'0'
;
//员工一级分销返利额比例
$_attachModel
->
EMPLOYEE_SECOND_RETURN_MONEY_RATIO
=
'0'
;
//员工二级分销返利额比例
$_attachModel
->
USER_FIRST_RETURN_MONEY_RATIO
=
'0'
;
//用户一级分销返利额比例
$_attachModel
->
USER_SECOND_RETURN_MONEY_RATIO
=
'0'
;
//用户二级分销返利额比例
}
else
{
$_attachModel
->
EMPLOYEE_FIRST_RETURN_MONEY_RATIOS1
=
$value
[
2
];
//员工分销商一级返利额比例
$_attachModel
->
EMPLOYEE_SECOND_RETURN_MONEY_RATIOS2
=
$value
[
3
];
//员工分销商二级返利额比例
$_attachModel
->
EMPLOYEE_FIRST_RETURN_MONEY_RATIO
=
$value
[
4
];
//员工一级分销返利额比例
$_attachModel
->
EMPLOYEE_SECOND_RETURN_MONEY_RATIO
=
$value
[
5
];
//员工二级分销返利额比例
$_attachModel
->
USER_FIRST_RETURN_MONEY_RATIO
=
$value
[
6
];
//用户一级分销返利额比例
$_attachModel
->
USER_SECOND_RETURN_MONEY_RATIO
=
$value
[
7
];
//用户二级分销返利额比例
}
//商品返利信息更新
if
(
!
$_attachModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
1
)
=>
$_attachModel
->
errors
];
return
$returnInfo
;
}
}
$transaction
->
commit
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
HttpException
(
"200"
,
'导入成功'
);
}
catch
(
\Throwable
$e
)
{
$transaction
->
rollBack
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
$e
;
}
}
else
{
Yii
::
$app
->
response
->
statusCode
=
422
;
if
(
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
==
"类型不对"
)
{
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
=
'文件类型要求97-2003工作簿 xls格式!'
;
}
return
$fileInfo
[
'INFO'
];
}
}
}
/**
* @OA\Post(
* path="/backend/web/v1/shopgoods/import-goods-infos/province-goods-title-words-summary-import",
* tags={"商品管理"},
* summary="省级商品标题、热词、摘要上传Excel(孙磊)",
* @OA\Response(
* response=200,
* description="上传成功",
* ),
* security={{"Authorization":{}}},
* @OA\RequestBody(
* description="省级商品标题、热词、摘要上传Excel",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="uploadFile",
* type="string",
* format="binary"
* ),
* )
* )
* )
* )
*/
public
function
actionProvinceGoodsTitleWordsSummaryImport
()
{
$model
=
new
UploadFiles
([
'xlsx'
,
'xls'
]);
if
(
Yii
::
$app
->
request
->
isPost
)
{
//多文件用getInstances
$model
->
uploadFiles
=
UploadedFile
::
getInstance
(
$model
,
'uploadFile'
);
$fileInfo
=
$model
->
upload
();
// 文件上传成功
if
(
$fileInfo
[
'CODE'
]
==
200
)
{
$tempArr
=
Helper
::
newSpreadsheet
(
$fileInfo
[
'INFO'
][
0
])
->
getRows
(
true
,
[
'rowOffset'
=>
2
,
'columns'
=>
6
]);
if
(
empty
(
$tempArr
))
{
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
BadRequestHttpException
(
'上传至少一条数据'
);
}
//判断唯一性数组
$uniqueArr
=
array
();
foreach
(
$tempArr
as
$key
=>
$value
)
{
$uniqueArr
[]
=
$value
[
0
];
}
if
(
count
(
$uniqueArr
)
!=
count
(
array_unique
(
$uniqueArr
)))
{
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
BadRequestHttpException
(
'存在重复数据,请确认'
);
}
$attachModel
=
new
ShopGoodsAttach
();
$transaction
=
$attachModel
->
getDb
()
->
beginTransaction
();
try
{
foreach
(
$tempArr
as
$key
=>
$value
)
{
if
(
empty
(
$value
[
0
]))
{
throw
new
BadRequestHttpException
(
'商品编码不能为空'
);
}
$_attachModel
=
$attachModel
::
findOne
([
'GOODS_CODE'
=>
$value
[
0
]]);
//商品扩展信息
if
(
$_attachModel
===
null
)
{
continue
;
}
else
{
$_attachModel
->
UPDATE_TIME
=
date
(
'Y-m-d H:i:s'
,
time
());
}
//处理插入数据
$value
[
0
]
=
trim
(
$value
[
0
],
' '
);
$value
[
1
]
=
trim
(
$value
[
1
],
' '
);
$value
[
2
]
=
trim
(
$value
[
2
],
' '
);
$value
[
3
]
=
trim
(
$value
[
3
],
' '
);
$value
[
4
]
=
trim
(
$value
[
4
],
' '
);
$value
[
5
]
=
trim
(
$value
[
5
],
' '
);
//导入验证
$_attachModel
->
GOODS_CODE
=
$value
[
0
];
//商品编码
if
(
$value
[
1
]
!=
'0'
&&
$value
[
1
]
!=
''
)
{
$_attachModel
->
GOODS_TITLE
=
$value
[
1
];
//商品标题
}
if
(
$value
[
2
]
!=
'0'
&&
$value
[
2
]
!=
''
)
{
$_attachModel
->
AD
=
$value
[
2
];
//广告词/热词
$_attachModel
->
AD_START_TIME
=
$value
[
4
];
//热词开始时间
$_attachModel
->
AD_END_TIME
=
$value
[
5
];
//热词结束时间
}
if
(
$value
[
3
]
!=
'0'
&&
$value
[
3
]
!=
''
)
{
$_attachModel
->
GOODS_ABSTRACT
=
$value
[
3
];
//商品摘要
}
//商品标题、热词、摘要信息更新
if
(
!
$_attachModel
->
save
())
{
$transaction
->
rollBack
();
$returnInfo
=
[
(
$key
+
1
)
=>
$_attachModel
->
errors
];
return
$returnInfo
;
}
}
$transaction
->
commit
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
new
HttpException
(
"200"
,
'导入成功'
);
}
catch
(
\Throwable
$e
)
{
$transaction
->
rollBack
();
@
unlink
(
$fileInfo
[
'INFO'
][
0
]);
throw
$e
;
}
}
else
{
Yii
::
$app
->
response
->
statusCode
=
422
;
if
(
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
==
"类型不对"
)
{
$fileInfo
[
'INFO'
][
'uploadFiles'
][
0
]
=
'文件类型要求97-2003工作簿 xls格式!'
;
}
return
$fileInfo
[
'INFO'
];
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment