Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-store
Overview
Overview
Details
Activity
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
base_platform_enterprise
gic-store
Commits
b1972726
Commit
b1972726
authored
Jul 08, 2019
by
zhiwj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
门店自定义字段导入, 修改品牌删除bug
parent
b8e6255a
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
196 additions
and
70 deletions
+196
-70
StoreEnableOrDisAbleEnum.java
...java/com/gic/store/constant/StoreEnableOrDisAbleEnum.java
+26
-0
CheckField.java
...i/src/main/java/com/gic/store/utils/field/CheckField.java
+8
-0
FieldBase.java
...pi/src/main/java/com/gic/store/utils/field/FieldBase.java
+9
-0
RadioField.java
...i/src/main/java/com/gic/store/utils/field/RadioField.java
+9
-0
RealNumberField.java
.../main/java/com/gic/store/utils/field/RealNumberField.java
+10
-0
StoreBrandApiServiceImpl.java
...com/gic/store/service/outer/StoreBrandApiServiceImpl.java
+9
-4
StoreImportApiServiceImpl.java
...om/gic/store/service/outer/StoreImportApiServiceImpl.java
+6
-5
StoreTaskServiceImpl.java
...ava/com/gic/store/service/outer/StoreTaskServiceImpl.java
+87
-38
TabStoreMapper.xml
...tore-service/src/main/resources/mapper/TabStoreMapper.xml
+3
-0
StoreDictController.java
...ava/com/gic/store/web/controller/StoreDictController.java
+13
-13
StoreImportController.java
...a/com/gic/store/web/controller/StoreImportController.java
+16
-10
No files found.
gic-store-api/src/main/java/com/gic/store/constant/StoreEnableOrDisAbleEnum.java
0 → 100644
View file @
b1972726
package
com
.
gic
.
store
.
constant
;
/**
* @author zhiwj
* @date 2019/7/8
*/
public
enum
StoreEnableOrDisAbleEnum
{
ENABLE
(
1
,
"启用"
),
DISABLE
(
2
,
"不启用"
),
;
private
int
code
;
private
String
message
;
StoreEnableOrDisAbleEnum
(
int
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
int
getCode
()
{
return
code
;
}
public
String
getMessage
()
{
return
message
;
}
}
gic-store-api/src/main/java/com/gic/store/utils/field/CheckField.java
0 → 100644
View file @
b1972726
package
com
.
gic
.
store
.
utils
.
field
;
/**
* @author zhiwj
* @date 2019/7/8
*/
public
class
CheckField
extends
FieldBase
{
}
gic-store-api/src/main/java/com/gic/store/utils/field/FieldBase.java
View file @
b1972726
...
...
@@ -8,6 +8,7 @@ public class FieldBase {
private
Integer
allowEdit
;
private
Integer
isMust
;
private
Integer
allowRepeat
;
private
String
value
;
public
void
setAllowEdit
(
Integer
allowEdit
)
{
this
.
allowEdit
=
allowEdit
;
...
...
@@ -32,4 +33,12 @@ public class FieldBase {
public
boolean
getAllowRepeat
()
{
return
allowRepeat
==
1
;
}
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
}
gic-store-api/src/main/java/com/gic/store/utils/field/RadioField.java
0 → 100644
View file @
b1972726
package
com
.
gic
.
store
.
utils
.
field
;
/**
* @author zhiwj
* @date 2019/7/8
*/
public
class
RadioField
extends
FieldBase
{
}
gic-store-api/src/main/java/com/gic/store/utils/field/RealNumberField.java
0 → 100644
View file @
b1972726
package
com
.
gic
.
store
.
utils
.
field
;
/**
* @author zhiwj
* @date 2019/7/8
*/
public
class
RealNumberField
{
}
\ No newline at end of file
gic-store-service/src/main/java/com/gic/store/service/outer/StoreBrandApiServiceImpl.java
View file @
b1972726
...
...
@@ -100,14 +100,19 @@ public class StoreBrandApiServiceImpl implements StoreBrandApiService {
return
count
==
0
;
})
.
collect
(
Collectors
.
toList
());
//
if
(
CollectionUtils
.
isEmpty
(
notDelList
))
{
// 要删除品牌
storeBrandService
.
deleteByIds
(
enterpriseId
,
delList
);
return
ServiceResponse
.
success
();
}
else
{
// 有不能删除的品牌
List
<
TabStoreBrand
>
storeBrandList
=
storeBrandService
.
listStoreBrandByIds
(
notDelList
);
EntityUtil
.
changeEntityListByOrika
(
StoreBrandDTO
.
class
,
storeBrandList
);
return
ServiceResponse
.
failure
(
ErrorCode
.
ERR_9999
.
getCode
(),
"部分数据在使用中"
,
EntityUtil
.
changeEntityListByOrika
(
StoreBrandDTO
.
class
,
storeBrandList
));
}
List
<
TabStoreBrand
>
storeBrandList
=
storeBrandService
.
listStoreBrandByIds
(
notDelList
);
EntityUtil
.
changeEntityListByOrika
(
StoreBrandDTO
.
class
,
storeBrandList
);
return
ServiceResponse
.
failure
(
ErrorCode
.
ERR_9999
.
getCode
(),
"部分数据在使用中"
,
EntityUtil
.
changeEntityListByOrika
(
StoreBrandDTO
.
class
,
storeBrandList
));
}
else
{
// 没有要删除的品牌
return
ServiceResponse
.
success
();
}
}
...
...
gic-store-service/src/main/java/com/gic/store/service/outer/StoreImportApiServiceImpl.java
View file @
b1972726
...
...
@@ -159,11 +159,12 @@ public class StoreImportApiServiceImpl implements StoreImportApiService {
List
<
List
<
String
>>
resultList
=
new
LinkedList
<>();
Page
page
=
this
.
listStoreTmp
(
enterpriseId
,
Boolean
.
FALSE
,
currentPage
,
pageSize
).
getResult
();
List
<
StoreTmpDTO
>
dataList
=
page
.
getResult
();
List
<
String
>
title
=
getTitle
(
enterpriseId
,
dataList
.
get
(
0
).
getRegionId
());
resultList
.
add
(
title
);
packData
(
resultList
,
dataList
);
page
.
setResult
(
resultList
);
if
(
CollectionUtils
.
isNotEmpty
(
dataList
))
{
List
<
String
>
title
=
getTitle
(
enterpriseId
,
dataList
.
get
(
0
).
getRegionId
());
resultList
.
add
(
title
);
packData
(
resultList
,
dataList
);
page
.
setResult
(
resultList
);
}
return
ServiceResponse
.
success
(
page
);
}
...
...
gic-store-service/src/main/java/com/gic/store/service/outer/StoreTaskServiceImpl.java
View file @
b1972726
...
...
@@ -4,13 +4,11 @@ import com.alibaba.fastjson.JSON;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.util.GlobalInfo
;
import
com.gic.store.constant.Constants
;
import
com.gic.store.constant.CreateTypeEnum
;
import
com.gic.store.constant.*
;
import
com.gic.store.dto.*
;
import
com.gic.store.entity.TabStoreBrand
;
import
com.gic.store.entity.TabStoreGroup
;
import
com.gic.store.entity.TabStoreTmp
;
import
com.gic.store.entity.*
;
import
com.gic.store.service.*
;
import
com.github.pagehelper.Page
;
import
com.google.common.base.Joiner
;
import
com.task.allocation.api.AbstractTaskAllocationOperation
;
import
com.task.allocation.exception.TaskAllocationException
;
...
...
@@ -57,6 +55,18 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
@Autowired
private
StoreService
storeService
;
@Autowired
private
StoreStrategyApiService
storeStrategyApiService
;
@Autowired
private
StoreStrategyService
storeStrategyService
;
@Autowired
private
StoreFieldService
storeFieldService
;
@Autowired
private
StoreFieldSelectService
storeFieldSelectService
;
@Override
public
List
<
Object
>
getListTasks
(
String
params
)
{
List
<
TabStoreTmp
>
list
=
storeImportService
.
listUnImportStore
(
params
);
...
...
@@ -109,56 +119,95 @@ public class StoreTaskServiceImpl extends AbstractTaskAllocationOperation implem
ServiceResponse
<
List
<
ProvinceDTO
>>
provinceResponse
=
provincesApiService
.
selectAllProvince
();
ServiceResponse
<
List
<
CityDTO
>>
cityResponse
=
provincesApiService
.
selectAllCity
();
ServiceResponse
<
List
<
CountyDTO
>>
countyResponse
=
provincesApiService
.
selectAllCounty
();
if
(
provinceResponse
.
isSuccess
()
&&
cityResponse
.
isSuccess
()
&&
countyResponse
.
isSuccess
())
{
List
<
ProvinceDTO
>
provinceDTOList
=
provinceResponse
.
getResult
();
Optional
<
ProvinceDTO
>
provinceDTO
=
provinceDTOList
.
stream
().
filter
(
e
->
StringUtils
.
equals
(
e
.
getProvinceName
(),
t
.
getProvince
())).
findFirst
();
storeDTO
.
setProvinceId
(
provinceDTO
.
get
().
getProvinceId
());
List
<
CityDTO
>
cityDTOList
=
cityResponse
.
getResult
();
Optional
<
CityDTO
>
cityDTO
=
cityDTOList
.
stream
().
filter
(
e
->
StringUtils
.
equals
(
e
.
getCityName
(),
t
.
getCity
())).
findFirst
();
storeDTO
.
setCityId
(
cityDTO
.
get
().
getCityId
());
List
<
CountyDTO
>
countyDTOList
=
countyResponse
.
getResult
();
Optional
<
CountyDTO
>
countyDTO
=
countyDTOList
.
stream
().
filter
(
e
->
StringUtils
.
equals
(
e
.
getCountyName
(),
t
.
getCounty
())).
findFirst
();
storeDTO
.
setAreaId
(
countyDTO
.
get
().
getCountyId
());
storeDTO
.
setProvinces
(
provinceDTO
.
get
().
getProvinceName
()
+
"\\"
+
cityDTO
.
get
().
getCityName
()
+
"\\"
+
countyDTO
.
get
().
getCountyName
());
}
else
{
logger
.
warn
(
"省市区调用失败"
);
}
List
<
ProvinceDTO
>
provinceDTOList
=
provinceResponse
.
getResult
();
Optional
<
ProvinceDTO
>
provinceDTO
=
provinceDTOList
.
stream
().
filter
(
e
->
StringUtils
.
equals
(
e
.
getProvinceName
(),
t
.
getProvince
())).
findFirst
();
storeDTO
.
setProvinceId
(
provinceDTO
.
get
().
getProvinceId
());
List
<
CityDTO
>
cityDTOList
=
cityResponse
.
getResult
();
Optional
<
CityDTO
>
cityDTO
=
cityDTOList
.
stream
().
filter
(
e
->
StringUtils
.
equals
(
e
.
getCityName
(),
t
.
getCity
())).
findFirst
();
storeDTO
.
setCityId
(
cityDTO
.
get
().
getCityId
());
List
<
CountyDTO
>
countyDTOList
=
countyResponse
.
getResult
();
Optional
<
CountyDTO
>
countyDTO
=
countyDTOList
.
stream
().
filter
(
e
->
StringUtils
.
equals
(
e
.
getCountyName
(),
t
.
getCounty
())).
findFirst
();
storeDTO
.
setAreaId
(
countyDTO
.
get
().
getCountyId
());
storeDTO
.
setProvinces
(
provinceDTO
.
get
().
getProvinceName
()
+
"/"
+
cityDTO
.
get
().
getCityName
()
+
"/"
+
countyDTO
.
get
().
getCountyName
());
storeDTO
.
setLongitude
(
t
.
getLongitude
());
storeDTO
.
setLatitude
(
t
.
getLatitude
());
// todo 判断溢出
storeDTO
.
setOverflowStatus
(
0
);
storeDTO
.
setStatus
(
2
);
ServiceResponse
<
List
<
StoreDictDTO
>>
erpStatusResponse
=
storeDictApiService
.
listStoreStatus
(
t
.
getEnterpriseId
());
if
(
erpStatusResponse
.
isSuccess
())
{
List
<
StoreDictDTO
>
erpList
=
erpStatusResponse
.
getResult
();
final
String
erpStatusTmp
=
t
.
getErpStatus
().
replace
(
"\\s+"
,
""
);
Optional
<
StoreDictDTO
>
erpStatusDTO
=
erpList
.
stream
().
filter
(
e
->
e
.
getKey
().
equals
(
erpStatusTmp
)).
findFirst
();
storeDTO
.
setErpStatus
(
Integer
.
parseInt
(
erpStatusDTO
.
get
().
getValue
()));
}
else
{
logger
.
warn
(
"字典模块调用失败"
);
}
List
<
StoreDictDTO
>
erpList
=
erpStatusResponse
.
getResult
();
final
String
erpStatusTmp
=
t
.
getErpStatus
().
replace
(
"\\s+"
,
""
);
Optional
<
StoreDictDTO
>
erpStatusDTO
=
erpList
.
stream
().
filter
(
e
->
e
.
getKey
().
equals
(
erpStatusTmp
)).
findFirst
();
storeDTO
.
setErpStatus
(
Integer
.
parseInt
(
erpStatusDTO
.
get
().
getValue
()));
ServiceResponse
<
List
<
StoreDictDTO
>>
storeTypeResponse
=
storeDictApiService
.
listStoreType
(
t
.
getEnterpriseId
());
if
(
storeTypeResponse
.
isSuccess
())
{
List
<
StoreDictDTO
>
typeList
=
storeTypeResponse
.
getResult
();
final
String
typeTmp
=
t
.
getStoreType
().
replace
(
"\\s+"
,
""
);
Optional
<
StoreDictDTO
>
typeTmpDTO
=
typeList
.
stream
().
filter
(
e
->
e
.
getKey
().
equals
(
typeTmp
)).
findFirst
();
storeDTO
.
setStoreType
(
Integer
.
parseInt
(
typeTmpDTO
.
get
().
getValue
()));
List
<
StoreDictDTO
>
typeList
=
storeTypeResponse
.
getResult
();
final
String
typeTmp
=
t
.
getStoreType
().
replace
(
"\\s+"
,
""
);
Optional
<
StoreDictDTO
>
typeTmpDTO
=
typeList
.
stream
().
filter
(
e
->
e
.
getKey
().
equals
(
typeTmp
)).
findFirst
();
storeDTO
.
setStoreType
(
Integer
.
parseInt
(
typeTmpDTO
.
get
().
getValue
()));
// 判断分组
if
(
Integer
.
valueOf
(
1
)
==
storeStrategyApiService
.
getStoreGroupStrategyWeight
(
t
.
getEnterpriseId
()).
getResult
())
{
// 不启用分组策略
if
(
StringUtils
.
isBlank
(
t
.
getStoreGroupName
()))
{
// 取 未分类 分组
TabStoreGroup
group
=
storeGroupService
.
selectUnGroupedStore
(
t
.
getEnterpriseId
());
storeDTO
.
setStoreGroupId
(
group
.
getStoreGroupId
());
}
else
{
// 判断分组是否存在
TabStoreGroup
group
=
storeGroupService
.
getStoreGroupByName
(
t
.
getStoreGroupName
(),
t
.
getEnterpriseId
());
if
(
group
!=
null
)
{
storeDTO
.
setStoreGroupId
(
group
.
getStoreGroupId
());
}
else
{
t
.
setErrorMessage
(
"分组不存在"
);
storeImportService
.
updateData
(
t
);
logger
.
info
(
"enterpriseId:{}, groupName:{}, 不存在该分组"
,
t
.
getEnterpriseId
(),
t
.
getStoreGroupName
());
return
;
}
}
}
else
{
logger
.
warn
(
"字典模块调用失败"
);
// 启用分组策略
String
groupId
=
storeStrategyService
.
isHitStrategy
(
storeDTO
,
StoreGroupConstant
.
STORE_GROUP_STRATEGY_TYPE
);
if
(
StringUtils
.
isNotBlank
(
groupId
))
{
// 命中
storeDTO
.
setStoreGroupId
(
Integer
.
valueOf
(
groupId
));
}
else
{
// 未命中
TabStoreGroup
group
=
storeGroupService
.
selectUnGroupedStore
(
t
.
getEnterpriseId
());
storeDTO
.
setStoreGroupId
(
group
.
getStoreGroupId
());
}
}
TabStoreGroup
group
=
storeGroupService
.
getStoreGroupByName
(
t
.
getStoreGroupName
(),
t
.
getEnterpriseId
());
storeDTO
.
setStoreGroupId
(
group
.
getStoreGroupId
());
// 启用策略
String
hitStrategy
=
storeStrategyService
.
isHitStrategy
(
storeDTO
,
StoreGroupConstant
.
STORE_STRATEGY_TYPE
);
storeDTO
.
setStatus
(
StringUtils
.
isNotBlank
(
hitStrategy
)
?
Integer
.
valueOf
(
hitStrategy
)
:
StoreEnableOrDisAbleEnum
.
DISABLE
.
getCode
());
storeDTO
.
setCreateTime
(
new
Date
());
storeDTO
.
setCreateType
(
CreateTypeEnum
.
BATCH_IMPORT
.
getCode
());
// todo 扩展信息
// 扩展信息
String
customField
=
t
.
getCustomField
();
List
<
StoreExtendDTO
>
extendList
=
JSON
.
parseArray
(
customField
,
StoreExtendDTO
.
class
);
for
(
StoreExtendDTO
storeExtendDTO
:
extendList
)
{
TabStoreField
field
=
storeFieldService
.
getStoreFieldById
(
storeExtendDTO
.
getStoreFieldId
());
if
(
StoreFieldTypeEnum
.
RADIO
.
getCode
()
==
field
.
getStoreFieldType
()
||
StoreFieldTypeEnum
.
CHECK
.
getCode
()
==
field
.
getStoreFieldType
())
{
String
[]
valueArr
=
storeExtendDTO
.
getValue
().
split
(
GlobalInfo
.
FLAG_COMMA
);
Page
<
TabStoreFieldSelect
>
fieldSelects
=
storeFieldSelectService
.
listStoreFieldSelect
(
storeExtendDTO
.
getStoreFieldId
(),
null
,
1
,
Integer
.
MAX_VALUE
);
String
newValue
=
fieldSelects
.
stream
()
.
filter
(
e
->
{
for
(
String
value
:
valueArr
)
{
if
(
e
.
getStoreFieldSelectName
().
equals
(
value
))
{
return
true
;
}
}
return
false
;
})
.
map
(
e
->
e
.
getStoreFieldSelectId
()
+
""
)
.
reduce
((
x
,
y
)
->
x
+
GlobalInfo
.
FLAG_COMMA
+
y
).
get
();
storeExtendDTO
.
setValue
(
newValue
);
}
}
storeDTO
.
setStoreExtendList
(
extendList
);
ServiceResponse
<
Integer
>
serviceResponse
=
storeApiService
.
saveOrUpdate
(
storeDTO
);
...
...
gic-store-service/src/main/resources/mapper/TabStoreMapper.xml
View file @
b1972726
...
...
@@ -61,6 +61,9 @@
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert
id=
"insertSelective"
parameterType=
"com.gic.store.entity.TabStore"
>
<selectKey
keyProperty=
"storeId"
order=
"AFTER"
resultType=
"java.lang.Integer"
>
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_store
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"storeId != null"
>
...
...
gic-store-web/src/main/java/com/gic/store/web/controller/StoreDictController.java
View file @
b1972726
...
...
@@ -102,19 +102,19 @@ public class StoreDictController {
}
}
@RequestMapping
(
"relevance-storefield"
)
@ResponseBody
public
RestResponse
setStoreField
(
String
value
,
int
type
){
Integer
enterpriseId
=
1111
;
if
(
StringUtils
.
isBlank
(
value
)){
return
EnterpriseRestResponse
.
failure
(
com
.
gic
.
enterprise
.
error
.
ErrorCode
.
ERR_2
);
}
ServiceResponse
serviceResponse
=
this
.
storeDictApiService
.
saveStoreField
(
enterpriseId
,
value
,
type
);
if
(
serviceResponse
.
isSuccess
()){
return
RestResponse
.
success
();
}
return
EnterpriseRestResponse
.
failure
(
serviceResponse
);
}
//
@RequestMapping("relevance-storefield")
//
@ResponseBody
//
public RestResponse setStoreField(String value, int type){
//
Integer enterpriseId = 1111;
//
if(StringUtils.isBlank(value)){
//
return EnterpriseRestResponse.failure(com.gic.enterprise.error.ErrorCode.ERR_2);
//
}
//
ServiceResponse serviceResponse = this.storeDictApiService.saveStoreField(enterpriseId, value, type);
//
if(serviceResponse.isSuccess()){
//
return RestResponse.success();
//
}
//
return EnterpriseRestResponse.failure(serviceResponse);
//
}
@RequestMapping
(
"list-storefield-relevance"
)
@ResponseBody
...
...
gic-store-web/src/main/java/com/gic/store/web/controller/StoreImportController.java
View file @
b1972726
...
...
@@ -57,6 +57,9 @@ public class StoreImportController {
@Autowired
private
StoreFieldApiService
storeFieldApiService
;
@Autowired
private
StoreStrategyApiService
storeStrategyApiService
;
/**
* 下载模板
* @param request
...
...
@@ -318,19 +321,22 @@ public class StoreImportController {
validate
=
false
;
}
}
// 验证门店所属分组
// 验证门店所属分组
,
String
storeGroupName
=
row
.
get
(
6
);
if
(
StringUtils
.
isBlank
(
storeGroupName
))
{
validate
=
false
;
bean
.
setErrorMessage
(
"门店分组不能为空"
);
}
if
(
validate
)
{
if
(
StringUtils
.
isBlank
(
storeImportApiService
.
isExistStoreGroup
(
enterpriseId
,
storeGroupName
).
getResult
()))
{
validate
=
false
;
bean
.
setErrorMessage
(
"门店分组不存在"
);
bean
.
setStoreGroupName
(
storeGroupName
);
if
(
Integer
.
valueOf
(
1
)
==
storeStrategyApiService
.
getStoreGroupStrategyWeight
(
enterpriseId
).
getResult
())
{
// 1:不启用门店分组策略, 以填写的为准; 0:填写了门店分组策略, 以门店分组策略为准
if
(
StringUtils
.
isNotBlank
(
storeGroupName
))
{
// 填写分组后需要判断分组是否存在,不填写分组就默认给未分组
if
(
validate
)
{
if
(
StringUtils
.
isBlank
(
storeImportApiService
.
isExistStoreGroup
(
enterpriseId
,
storeGroupName
).
getResult
()))
{
validate
=
false
;
bean
.
setErrorMessage
(
"门店分组不存在"
);
}
}
}
}
bean
.
setStoreGroupName
(
storeGroupName
);
// 验证品牌
String
brands
=
row
.
get
(
7
);
...
...
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