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
1a7d2e01
Commit
1a7d2e01
authored
Jul 05, 2019
by
zhiwj
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/developer' into developer
parents
3d54513b
44df3407
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
206 additions
and
0 deletions
+206
-0
StoreStrategyApiService.java
...n/java/com/gic/store/service/StoreStrategyApiService.java
+10
-0
StoreStrategyService.java
...main/java/com/gic/store/service/StoreStrategyService.java
+19
-0
StoreStrategyServiceImpl.java
.../com/gic/store/service/impl/StoreStrategyServiceImpl.java
+109
-0
StoreFieldApiServiceImpl.java
...com/gic/store/service/outer/StoreFieldApiServiceImpl.java
+10
-0
StoreFieldSelectApiServiceImpl.java
...c/store/service/outer/StoreFieldSelectApiServiceImpl.java
+10
-0
StoreStrategyApiServiceImpl.java
.../gic/store/service/outer/StoreStrategyApiServiceImpl.java
+17
-0
StoreStrategyController.java
...com/gic/store/web/controller/StoreStrategyController.java
+31
-0
No files found.
gic-store-api/src/main/java/com/gic/store/service/StoreStrategyApiService.java
View file @
1a7d2e01
...
...
@@ -4,6 +4,8 @@ import com.gic.api.base.commons.Page;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.store.dto.StoreStrategyDTO
;
import
java.util.List
;
/**
* @author guojx
* @date 2019/7/4 9:44 AM
...
...
@@ -85,4 +87,12 @@ public interface StoreStrategyApiService {
ServiceResponse
getStoreGroupStrategyWeight
(
Integer
enterpriseId
);
/**
* 重置门店策略
* @param regionIdList
* @param storeStatusList
* @return
*/
ServiceResponse
resetStoreGroupStrategy
(
List
<
Integer
>
regionIdList
,
List
<
Integer
>
storeStatusList
);
}
gic-store-service/src/main/java/com/gic/store/service/StoreStrategyService.java
View file @
1a7d2e01
...
...
@@ -4,6 +4,8 @@ import com.gic.store.dto.StoreStrategyDTO;
import
com.gic.store.entity.TabStoreStrategy
;
import
com.github.pagehelper.Page
;
import
java.util.List
;
/**
* @author guojx
* @date 2019/7/4 9:46 AM
...
...
@@ -101,6 +103,23 @@ public interface StoreStrategyService {
*/
Page
<
TabStoreStrategy
>
listStoreStrategy
(
int
enterpriseId
,
String
search
,
int
strategyType
,
Integer
pageNum
,
Integer
pageSize
);
/**
* 查询策略列表数据
* @param enterpriseId
* @param strategyType
* @return
*/
List
<
TabStoreStrategy
>
listStoreStrategy
(
int
enterpriseId
,
int
strategyType
);
void
updateSortById
(
int
strategyId
,
double
sort
);
/**
* 验证是否命中,如果命中,返回的result值就是命中值,否则是空字符串
* @param storeId
* @param enterpriseId
* @param strategyType
* @return
*/
String
isHitStrategy
(
int
storeId
,
int
enterpriseId
,
int
strategyType
);
}
gic-store-service/src/main/java/com/gic/store/service/impl/StoreStrategyServiceImpl.java
View file @
1a7d2e01
package
com
.
gic
.
store
.
service
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.store.constant.StoreGroupConstant
;
import
com.gic.store.constant.StrategyStoreFieldEnum
;
import
com.gic.store.dao.mapper.TabStoreStrategyMapper
;
import
com.gic.store.dto.StoreStrategyDTO
;
import
com.gic.store.entity.TabStore
;
import
com.gic.store.entity.TabStoreExtend
;
import
com.gic.store.entity.TabStoreStrategy
;
import
com.gic.store.service.StoreExtendService
;
import
com.gic.store.service.StoreService
;
import
com.gic.store.service.StoreStrategyService
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
...
...
@@ -23,6 +31,11 @@ public class StoreStrategyServiceImpl implements StoreStrategyService{
@Autowired
private
TabStoreStrategyMapper
tabStoreStrategyMapper
;
@Autowired
private
StoreService
storeService
;
@Autowired
private
StoreExtendService
storeExtendService
;
@Override
public
int
saveStoreGroupStrategy
(
StoreStrategyDTO
storeStrategyDTO
)
{
TabStoreStrategy
storeStrategy
=
EntityUtil
.
changeEntityNew
(
TabStoreStrategy
.
class
,
storeStrategyDTO
);
...
...
@@ -118,6 +131,12 @@ public class StoreStrategyServiceImpl implements StoreStrategyService{
return
(
Page
<
TabStoreStrategy
>)
list
;
}
@Override
public
List
<
TabStoreStrategy
>
listStoreStrategy
(
int
enterpriseId
,
int
strategyType
)
{
List
<
TabStoreStrategy
>
list
=
tabStoreStrategyMapper
.
listStoreStrategy
(
enterpriseId
,
null
,
strategyType
);
return
list
;
}
public
double
getMaxSort
(
int
enterpriseId
,
int
strategyType
)
{
Double
sort
=
tabStoreStrategyMapper
.
getMaxSort
(
enterpriseId
,
strategyType
);
return
sort
==
null
?
1
d
:
sort
;
...
...
@@ -131,4 +150,94 @@ public class StoreStrategyServiceImpl implements StoreStrategyService{
tabStoreStrategyMapper
.
updateByPrimaryKeySelective
(
storeStrategy
);
}
@Override
public
String
isHitStrategy
(
int
storeId
,
int
enterpriseId
,
int
strategyType
)
{
List
<
TabStoreStrategy
>
strategyList
=
listStoreStrategy
(
enterpriseId
,
strategyType
);
//命中值
String
result
=
""
;
TabStore
store
=
storeService
.
getById
(
storeId
);
for
(
int
num
=
0
,
strategyLength
=
strategyList
.
size
();
num
<
strategyLength
;
num
++)
{
//如果数值对上,则说明命中
int
validSize
=
0
;
TabStoreStrategy
strategy
=
strategyList
.
get
(
num
);
String
targetValue
=
strategy
.
getTargetValue
();
String
conditions
=
strategy
.
getConditions
();
int
regionId
=
strategy
.
getStoreRegionId
();
String
storeCreateType
=
strategy
.
getStoreCreateType
();
//valid
if
(
store
.
getRegionId
().
intValue
()
!=
regionId
)
{
continue
;
}
validSize
++;
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
conditions
);
for
(
int
i
=
0
,
length
=
jsonArray
.
size
();
i
<
length
;
i
++)
{
JSONObject
object
=
jsonArray
.
getJSONObject
(
i
);
String
key
=
object
.
getString
(
"key"
);
String
value
=
object
.
getString
(
"value"
);
if
(
StrategyStoreFieldEnum
.
RelatedBrand
.
getCode
().
equals
(
key
))
{
if
(!
isBrandIdHitStrategy
(
store
.
getBrandIds
(),
value
))
{
continue
;
}
}
else
if
(
StrategyStoreFieldEnum
.
StoreCity
.
getCode
().
equals
(
key
))
{
if
(!
isBrandIdHitStrategy
(
store
.
getCityId
(),
value
))
{
continue
;
}
}
else
if
(
StrategyStoreFieldEnum
.
StoreProvince
.
getCode
().
equals
(
key
))
{
if
(!
isBrandIdHitStrategy
(
store
.
getProvinceId
(),
value
))
{
continue
;
}
}
else
if
(
StrategyStoreFieldEnum
.
StoreCountry
.
getCode
().
equals
(
key
))
{
if
(!
isBrandIdHitStrategy
(
store
.
getAreaId
(),
value
))
{
continue
;
}
}
else
{
//单选或者多选
TabStoreExtend
storeExtend
=
storeExtendService
.
getStoreExtendByStoreIdAndFieldId
(
storeId
,
Integer
.
parseInt
(
key
));
if
(!
isBrandIdHitStrategy
(
storeExtend
.
getValue
(),
value
))
{
continue
;
}
}
validSize
++;
}
if
(
strategyType
==
StoreGroupConstant
.
STORE_STRATEGY_TYPE
)
{
//如果是门店启用状态策略,需要验证门店创建方式
if
(!
isBrandIdHitStrategy
(
store
.
getCreateType
().
toString
(),
storeCreateType
))
{
continue
;
}
validSize
++;
}
int
hitSize
;
if
(
strategyType
==
StoreGroupConstant
.
STORE_STRATEGY_TYPE
)
{
hitSize
=
jsonArray
.
size
()
+
2
;
}
else
{
hitSize
=
jsonArray
.
size
()
+
1
;
}
//命中
if
(
validSize
==
hitSize
)
{
result
=
targetValue
;
break
;
}
}
return
result
;
}
private
boolean
isBrandIdHitStrategy
(
String
brandIds
,
String
value
)
{
String
[]
values
=
value
.
split
(
","
);
for
(
String
str
:
values
)
{
if
(
brandIds
.
contains
(
str
))
{
return
true
;
}
}
return
false
;
}
}
gic-store-service/src/main/java/com/gic/store/service/outer/StoreFieldApiServiceImpl.java
View file @
1a7d2e01
...
...
@@ -6,6 +6,7 @@ import com.gic.commons.util.EntityUtil;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.store.dto.StoreFieldDTO
;
import
com.gic.store.entity.TabStoreField
;
import
com.gic.store.service.StoreExtendService
;
import
com.gic.store.service.StoreFieldApiService
;
import
com.gic.store.service.StoreFieldService
;
import
com.gic.store.utils.ErrorCode
;
...
...
@@ -26,6 +27,8 @@ import java.util.List;
public
class
StoreFieldApiServiceImpl
implements
StoreFieldApiService
{
@Autowired
private
StoreFieldService
storeFieldService
;
@Autowired
private
StoreExtendService
storeExtendService
;
@Override
public
ServiceResponse
<
Integer
>
save
(
StoreFieldDTO
storeFieldDTO
)
{
...
...
@@ -96,6 +99,13 @@ public class StoreFieldApiServiceImpl implements StoreFieldApiService{
@Override
public
ServiceResponse
<
Integer
>
delete
(
int
storeFieldId
)
{
TabStoreField
storeField
=
storeFieldService
.
getStoreFieldById
(
storeFieldId
);
if
(
storeField
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
ERR_5
.
getCode
(),
"主键错误,查询不到数据"
);
}
if
(
storeExtendService
.
storeExtendHasStoreField
(
storeFieldId
))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
ERR_5
.
getCode
(),
"属性 "
+
storeField
.
getStoreFieldName
()
+
"在使用中,不允许删除"
);
}
return
ServiceResponse
.
success
(
storeFieldService
.
delete
(
storeFieldId
));
}
...
...
gic-store-service/src/main/java/com/gic/store/service/outer/StoreFieldSelectApiServiceImpl.java
View file @
1a7d2e01
...
...
@@ -6,6 +6,7 @@ import com.gic.commons.util.EntityUtil;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.store.dto.StoreFieldSelectDTO
;
import
com.gic.store.entity.TabStoreFieldSelect
;
import
com.gic.store.service.StoreExtendService
;
import
com.gic.store.service.StoreFieldSelectApiService
;
import
com.gic.store.service.StoreFieldSelectService
;
import
com.gic.store.utils.ErrorCode
;
...
...
@@ -24,6 +25,8 @@ import java.util.List;
public
class
StoreFieldSelectApiServiceImpl
implements
StoreFieldSelectApiService
{
@Autowired
private
StoreFieldSelectService
storeFieldSelectService
;
@Autowired
private
StoreExtendService
storeExtendService
;
@Override
public
ServiceResponse
<
Integer
>
save
(
StoreFieldSelectDTO
storeFieldSelectDTO
)
{
...
...
@@ -89,6 +92,13 @@ public class StoreFieldSelectApiServiceImpl implements StoreFieldSelectApiServic
@Override
public
ServiceResponse
<
Integer
>
delete
(
int
storeFieldSelectId
)
{
TabStoreFieldSelect
tabStoreFieldSelect
=
storeFieldSelectService
.
getStoreFieldSelectById
(
storeFieldSelectId
);
if
(
tabStoreFieldSelect
==
null
)
{
return
ServiceResponse
.
failure
(
ErrorCode
.
ERR_5
.
getCode
(),
"主键错误,查询不到数据"
);
}
if
(
storeExtendService
.
storeExtendHasStoreFieldSelect
(
tabStoreFieldSelect
.
getStoreFieldId
(),
storeFieldSelectId
))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
ERR_5
.
getCode
(),
"属性值 "
+
tabStoreFieldSelect
.
getStoreFieldSelectName
()
+
"在使用中,不允许删除"
);
}
return
ServiceResponse
.
success
(
storeFieldSelectService
.
delete
(
storeFieldSelectId
));
}
...
...
gic-store-service/src/main/java/com/gic/store/service/outer/StoreStrategyApiServiceImpl.java
View file @
1a7d2e01
...
...
@@ -9,7 +9,9 @@ import com.gic.commons.util.PageHelperUtils;
import
com.gic.redis.data.util.RedisUtil
;
import
com.gic.store.constant.StoreGroupConstant
;
import
com.gic.store.dto.StoreStrategyDTO
;
import
com.gic.store.entity.TabStore
;
import
com.gic.store.entity.TabStoreStrategy
;
import
com.gic.store.service.StoreService
;
import
com.gic.store.service.StoreStrategyApiService
;
import
com.gic.store.service.StoreStrategyService
;
import
com.gic.store.utils.ErrorCode
;
...
...
@@ -31,6 +33,8 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
@Autowired
private
StoreStrategyService
storeStrategyService
;
@Autowired
private
StoreService
storeService
;
@Override
public
ServiceResponse
<
Integer
>
saveStoreStrategy
(
StoreStrategyDTO
storeStrategyDTO
)
{
...
...
@@ -219,6 +223,19 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
return
ServiceResponse
.
success
(
Integer
.
valueOf
(
value
.
toString
()));
}
@Override
public
ServiceResponse
resetStoreGroupStrategy
(
List
<
Integer
>
regionIdList
,
List
<
Integer
>
storeStatusList
)
{
List
<
TabStore
>
storeList
=
storeService
.
listStoreByRegionAndStatus
(
regionIdList
,
storeStatusList
);
for
(
TabStore
store
:
storeList
)
{
String
result
=
storeStrategyService
.
isHitStrategy
(
store
.
getStoreId
(),
store
.
getEnterpriseId
(),
StoreGroupConstant
.
STORE_GROUP_STRATEGY_TYPE
);
if
(
StringUtils
.
isNotBlank
(
result
))
{
//todo 更新门店分组值
}
}
return
ServiceResponse
.
success
();
}
private
boolean
validConditionsIsRepeatKey
(
String
conditions
)
{
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
conditions
);
//每一种属性都不能一样
...
...
gic-store-web/src/main/java/com/gic/store/web/controller/StoreStrategyController.java
View file @
1a7d2e01
...
...
@@ -18,6 +18,7 @@ import com.gic.store.utils.ErrorCode;
import
com.gic.store.web.qo.PageQO
;
import
com.gic.store.web.qo.storestrategy.StoreStrategyQO
;
import
com.gic.store.web.vo.storestrategy.StoreGroupStrateVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -25,6 +26,7 @@ import org.springframework.validation.annotation.Validated;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -108,6 +110,25 @@ public class StoreStrategyController {
return
RestResponse
.
success
(
result
);
}
@RequestMapping
(
"/reset-store-group-strategy"
)
public
RestResponse
resetStoreGroupStrategy
(
String
regionIds
,
String
status
,
boolean
isDealWith
)
{
if
(
isDealWith
)
{
if
(
StringUtils
.
isBlank
(
regionIds
))
{
return
RestResponse
.
failure
(
ErrorCode
.
ERR_5
.
getCode
(),
"门店域不能为空"
);
}
if
(
StringUtils
.
isBlank
(
status
))
{
return
RestResponse
.
failure
(
ErrorCode
.
ERR_5
.
getCode
(),
"门店启用状态不能为空"
);
}
ServiceResponse
result
=
storeStrategyApiService
.
resetStoreGroupStrategy
(
transferStringArrToList
(
regionIds
),
transferStringArrToList
(
status
));
if
(!
result
.
isSuccess
())
{
return
RestResponse
.
failure
(
result
.
getCode
(),
result
.
getMessage
());
}
}
return
RestResponse
.
success
();
}
@RequestMapping
(
"/edit-store-strategy"
)
public
RestResponse
editStoreStrategy
(
@Validated
({
StoreStrategyQO
.
SaveValidView
.
class
,
StoreStrategyQO
.
RemoveValidView
.
class
})
...
...
@@ -210,4 +231,14 @@ public class StoreStrategyController {
storeStrategyDTO
.
setEnterpriseId
(
StoreGroupConstant
.
TEST_ENTERPRISE_ID
);
return
storeStrategyDTO
;
}
private
List
<
Integer
>
transferStringArrToList
(
String
arr
)
{
String
[]
strArr
=
arr
.
split
(
","
);
List
<
Integer
>
list
=
new
ArrayList
<>(
strArr
.
length
);
for
(
String
str
:
strArr
)
{
list
.
add
(
Integer
.
parseInt
(
str
));
}
return
list
;
}
}
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