Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
soss
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
hooloo
ms
soss
Commits
5f528090
Commit
5f528090
authored
Feb 22, 2023
by
weijiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
..
parent
22665e2b
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
260 additions
and
22 deletions
+260
-22
soss-admin/src/main/java/com/soss/web/controller/system/BannerController.java
+4
-1
soss-system/src/main/java/com/soss/system/domain/SysBanner.java
+1
-1
soss-system/src/main/java/com/soss/system/domain/po/BannerPo.java
+1
-1
soss-system/src/main/java/com/soss/system/domain/vo/BannerVo.java
+67
-0
soss-system/src/main/java/com/soss/system/domain/vo/orderTaking/ImagesVo.java
+3
-2
soss-system/src/main/java/com/soss/system/service/ISysBannerService.java
+5
-0
soss-system/src/main/java/com/soss/system/service/impl/OrderTakingServiceImpl.java
+11
-8
soss-system/src/main/java/com/soss/system/service/impl/SysBannerServiceImpl.java
+168
-9
No files found.
soss-admin/src/main/java/com/soss/web/controller/system/BannerController.java
View file @
5f528090
...
...
@@ -7,6 +7,7 @@ import com.soss.common.core.page.TableDataInfo;
import
com.soss.common.exception.ServiceException
;
import
com.soss.system.domain.SysBanner
;
import
com.soss.system.domain.po.BannerPo
;
import
com.soss.system.domain.vo.BannerVo
;
import
com.soss.system.service.ISysBannerService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -29,7 +30,9 @@ public class BannerController extends BaseController {
public
TableDataInfo
list
(
@RequestBody
SysBanner
banner
)
{
startPage
();
List
<
SysBanner
>
list
=
bannerService
.
selectBanner
(
banner
);
return
getDataTable
(
list
);
List
<
BannerVo
>
bannerVos
=
bannerService
.
copyBanner
(
list
);
bannerService
.
translateArea
(
bannerVos
);
return
getDataTable
(
bannerVos
);
}
/**
...
...
soss-system/src/main/java/com/soss/system/domain/SysBanner.java
View file @
5f528090
...
...
@@ -31,7 +31,7 @@ public class SysBanner extends BaseEntity {
*/
private
Integer
type
;
/**
* 目标:1-小程序首页,2-小程序我的
* 目标:1-小程序首页,2-小程序我的
,0-其它
*/
private
Integer
target
;
/**
...
...
soss-system/src/main/java/com/soss/system/domain/po/BannerPo.java
View file @
5f528090
...
...
@@ -22,7 +22,7 @@ public class BannerPo {
*/
private
Integer
type
;
/**
* 目标:1-小程序首页,2-小程序我的
* 目标:1-小程序首页,2-小程序我的
,0-其它
*/
private
Integer
target
;
/**
...
...
soss-system/src/main/java/com/soss/system/domain/vo/BannerVo.java
0 → 100644
View file @
5f528090
package
com
.
soss
.
system
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@ApiModel
(
"轮播图请求类"
)
public
class
BannerVo
{
/** 主键 */
private
Long
id
;
/**
* 图片url
*/
private
String
image
;
/**
* 页面url
*/
private
String
page
;
/**
* 类型:1-小程序,2-KDS,3-点单屏
*/
private
Integer
type
;
/**
* 目标:1-小程序首页,2-小程序我的,0-其它
*/
private
Integer
target
;
/**
* 排序
*/
private
Integer
sort
;
@ApiModelProperty
(
"可用省份列表,全国通用传 [0]"
)
private
String
provinceStr
;
private
String
[]
province
;
@ApiModelProperty
(
"可用城市列表"
)
private
String
cityStr
;
private
String
[]
city
;
@ApiModelProperty
(
"可用区域列表"
)
private
String
areaStr
;
private
String
[]
area
;
@ApiModelProperty
(
"可用店铺ID列表"
)
private
String
shopIdsStr
;
private
Long
[]
shopIds
;
private
String
areaLimitDesc
;
/**
* 状态:0-在线,1-下线
*/
private
Integer
state
;
/**
* 创建时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createdAt
;
/**
* 更新时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updatedAt
;
}
soss-system/src/main/java/com/soss/system/domain/vo/orderTaking/ImagesVo.java
View file @
5f528090
package
com
.
soss
.
system
.
domain
.
vo
.
orderTaking
;
import
com.alibaba.fastjson.JSONArray
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ImagesVo
{
private
JSONArray
left
;
private
List
<
String
>
left
;
// private JSONObject right;
}
soss-system/src/main/java/com/soss/system/service/ISysBannerService.java
View file @
5f528090
...
...
@@ -2,6 +2,7 @@ package com.soss.system.service;
import
com.soss.system.domain.SysBanner
;
import
com.soss.system.domain.po.BannerPo
;
import
com.soss.system.domain.vo.BannerVo
;
import
java.util.List
;
...
...
@@ -22,5 +23,9 @@ public interface ISysBannerService {
Boolean
delete
(
Long
bannerId
);
List
<
BannerVo
>
copyBanner
(
List
<
SysBanner
>
banners
);
void
translateArea
(
List
<
BannerVo
>
bannerVos
);
List
<
SysBanner
>
getBannersByShopId
(
Long
shopId
,
Integer
type
,
Integer
target
);
List
<
String
>
getKDSBannerByShopId
(
Long
shopId
);
}
soss-system/src/main/java/com/soss/system/service/impl/OrderTakingServiceImpl.java
View file @
5f528090
...
...
@@ -34,6 +34,8 @@ public class OrderTakingServiceImpl {
private
GoodsCategoryMapper
goodsCategoryMapper
;
@Autowired
private
ShopMapper
shopMapper
;
@Autowired
private
SysBannerServiceImpl
bannerService
;
/**
...
...
@@ -65,15 +67,16 @@ public class OrderTakingServiceImpl {
}
orderTakingVo
.
setShopState
(
shop
.
getState
());
ImagesVo
imagesVo
=
new
ImagesVo
();
imagesVo
.
setLeft
(
bannerService
.
getKDSBannerByShopId
(
shopId
));
orderTakingVo
.
setImages
(
imagesVo
);
String
menuLeft
=
sysConfigService
.
selectConfigByKey
(
"menu.left"
);
if
(
StringUtils
.
isNotEmpty
(
menuLeft
))
{
if
(
menuLeft
.
startsWith
(
"["
))
{
imagesVo
.
setLeft
(
JSONArray
.
parseArray
(
menuLeft
));
}
else
{
imagesVo
.
setLeft
(
JSONArray
.
parseArray
(
JSONArray
.
toJSONString
(
Collections
.
singletonList
(
menuLeft
))));
}
}
//
String menuLeft = sysConfigService.selectConfigByKey("menu.left");
//
if (StringUtils.isNotEmpty(menuLeft)) {
//
if (menuLeft.startsWith("[")) {
//
imagesVo.setLeft(JSONArray.parseArray(menuLeft));
//
} else {
//
imagesVo.setLeft(JSONArray.parseArray(JSONArray.toJSONString(Collections.singletonList(menuLeft))));
//
}
//
}
// imagesVo.setRight(JSONObject.parseObject(sysConfigService.selectConfigByKey("menu.right")));
orderTakingVo
.
setCountOfOrder
(
sysConfigService
.
selectConfigByKey
(
"goods.limit"
));
orderTakingVo
.
setTips
(
sysConfigService
.
selectConfigByKey
(
"tips.address"
));
...
...
soss-system/src/main/java/com/soss/system/service/impl/SysBannerServiceImpl.java
View file @
5f528090
...
...
@@ -5,17 +5,19 @@ import com.soss.common.utils.StringUtils;
import
com.soss.system.domain.Shop
;
import
com.soss.system.domain.SysBanner
;
import
com.soss.system.domain.po.BannerPo
;
import
com.soss.system.domain.vo.BannerVo
;
import
com.soss.system.mapper.ShopMapper
;
import
com.soss.system.mapper.SysBannerMapper
;
import
com.soss.system.service.ISysBannerService
;
import
com.soss.system.utils.AreaUtil
;
import
com.soss.system.utils.ArrayUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -31,6 +33,10 @@ public class SysBannerServiceImpl implements ISysBannerService {
private
SysBannerMapper
sysBannerMapper
;
@Autowired
private
ShopServiceImpl
shopService
;
@Autowired
private
ShopMapper
shopMapper
;
@Autowired
private
AreaUtil
areaUtil
;
@Override
public
List
<
SysBanner
>
selectBanner
(
SysBanner
banner
)
{
...
...
@@ -49,8 +55,8 @@ public class SysBannerServiceImpl implements ISysBannerService {
if
(
banner
.
getType
()
==
null
||
banner
.
getType
()
<
1
||
banner
.
getType
()
>
3
)
{
throw
new
ServiceException
(
"类型不正确,1-小程序,2-KDS,3-点单屏"
);
}
if
(
banner
.
getTarget
()
==
null
||
banner
.
getTarget
()
<
1
||
banner
.
getTarget
()
>
2
)
{
throw
new
ServiceException
(
"轮播位置不正确,1-小程序首页,2-小程序我的"
);
if
(
banner
.
getTarget
()
==
null
||
banner
.
getTarget
()
<
0
||
banner
.
getTarget
()
>
2
)
{
throw
new
ServiceException
(
"轮播位置不正确,1-小程序首页,2-小程序我的
,0-其它
"
);
}
if
(
banner
.
getSort
()
==
null
)
{
throw
new
ServiceException
(
"轮播顺序不能为空"
);
...
...
@@ -81,8 +87,8 @@ public class SysBannerServiceImpl implements ISysBannerService {
if
(
banner
.
getType
()
==
null
||
banner
.
getType
()
<
1
||
banner
.
getType
()
>
3
)
{
throw
new
ServiceException
(
"类型不正确,1-小程序,2-KDS,3-点单屏"
);
}
if
(
banner
.
getTarget
()
==
null
||
banner
.
getTarget
()
<
1
||
banner
.
getTarget
()
>
2
)
{
throw
new
ServiceException
(
"轮播位置不正确,1-小程序首页,2-小程序我的"
);
if
(
banner
.
getTarget
()
==
null
||
banner
.
getTarget
()
<
0
||
banner
.
getTarget
()
>
2
)
{
throw
new
ServiceException
(
"轮播位置不正确,1-小程序首页,2-小程序我的
,0-其它
"
);
}
if
(
banner
.
getSort
()
==
null
)
{
throw
new
ServiceException
(
"轮播顺序不能为空"
);
...
...
@@ -117,10 +123,50 @@ public class SysBannerServiceImpl implements ISysBannerService {
if
(
bannerPo
.
getShopIds
()
!=
null
&&
bannerPo
.
getShopIds
().
length
>
0
)
{
banner
.
setShopIds
(
Arrays
.
asList
(
bannerPo
.
getShopIds
()).
stream
().
map
(
x
->
String
.
valueOf
(
x
)).
collect
(
Collectors
.
joining
(
","
)));
}
return
banner
;
}
public
List
<
BannerVo
>
copyBanner
(
List
<
SysBanner
>
banners
)
{
List
<
BannerVo
>
bannerVos
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isEmpty
(
banners
))
{
return
bannerVos
;
}
banners
.
forEach
(
banner
->
bannerVos
.
add
(
copyBanner
(
banner
)));
return
bannerVos
;
}
private
BannerVo
copyBanner
(
SysBanner
banner
)
{
BannerVo
bannerVo
=
new
BannerVo
();
bannerVo
.
setId
(
banner
.
getId
());
bannerVo
.
setImage
(
banner
.
getImage
());
bannerVo
.
setPage
(
banner
.
getPage
());
bannerVo
.
setType
(
banner
.
getType
());
bannerVo
.
setTarget
(
banner
.
getTarget
());
bannerVo
.
setSort
(
banner
.
getSort
());
bannerVo
.
setProvinceStr
(
banner
.
getProvince
());
bannerVo
.
setCityStr
(
banner
.
getCity
());
bannerVo
.
setAreaStr
(
banner
.
getArea
());
bannerVo
.
setShopIdsStr
(
banner
.
getShopIds
());
if
(!
StringUtils
.
isEmpty
(
banner
.
getProvince
()))
{
bannerVo
.
setProvince
(
banner
.
getProvince
().
split
(
","
));
}
if
(!
StringUtils
.
isEmpty
(
banner
.
getCity
()))
{
bannerVo
.
setCity
(
banner
.
getCity
().
split
(
","
));
}
if
(!
StringUtils
.
isEmpty
(
banner
.
getArea
()))
{
bannerVo
.
setArea
(
banner
.
getArea
().
split
(
","
));
}
if
(!
StringUtils
.
isEmpty
(
banner
.
getShopIds
()))
{
String
[]
shopIds
=
banner
.
getShopIds
().
split
(
","
);
Long
[]
ids
=
new
Long
[
shopIds
.
length
];
for
(
int
i
=
0
;
i
<
shopIds
.
length
;
i
++)
{
ids
[
i
]
=
Long
.
parseLong
(
shopIds
[
i
]);
}
bannerVo
.
setShopIds
(
ids
);
}
return
bannerVo
;
}
@Override
public
Boolean
updateState
(
Long
bannerId
,
Integer
state
)
{
SysBanner
banner
=
new
SysBanner
();
...
...
@@ -194,4 +240,117 @@ public class SysBannerServiceImpl implements ISysBannerService {
});
return
list
;
}
@Override
public
List
<
String
>
getKDSBannerByShopId
(
Long
shopId
)
{
List
<
SysBanner
>
banners
=
sysBannerMapper
.
selectBanners
(
2
,
0
);
if
(
CollectionUtils
.
isEmpty
(
banners
))
{
log
.
info
(
"banner list is empty"
);
return
null
;
}
Shop
shop
=
shopService
.
selectShopById
(
shopId
);
if
(
shop
==
null
)
{
log
.
info
(
"shop is null"
);
return
null
;
}
List
<
String
>
list
=
new
ArrayList
<>();
banners
.
forEach
(
banner
->
{
if
(!
StringUtils
.
isEmpty
(
banner
.
getProvince
()))
{
Arrays
.
stream
(
banner
.
getProvince
().
split
(
","
)).
forEach
(
p
->
{
if
(
p
.
equals
(
shop
.
getProvince
()))
{
list
.
add
(
banner
.
getImage
());
return
;
}
});
}
if
(!
StringUtils
.
isEmpty
(
banner
.
getCity
()))
{
Arrays
.
stream
(
banner
.
getCity
().
split
(
","
)).
forEach
(
p
->
{
if
(
p
.
equals
(
shop
.
getCity
()))
{
list
.
add
(
banner
.
getImage
());
return
;
}
});
}
if
(!
StringUtils
.
isEmpty
(
banner
.
getArea
()))
{
Arrays
.
stream
(
banner
.
getArea
().
split
(
","
)).
forEach
(
p
->
{
if
(
p
.
equals
(
shop
.
getZone
()))
{
list
.
add
(
banner
.
getImage
());
return
;
}
});
}
if
(!
StringUtils
.
isEmpty
(
banner
.
getShopIds
()))
{
Arrays
.
stream
(
banner
.
getShopIds
().
split
(
","
)).
forEach
(
p
->
{
if
(
p
.
equals
(
String
.
valueOf
(
shop
.
getId
())))
{
list
.
add
(
banner
.
getImage
());
return
;
}
});
}
});
return
list
;
}
public
void
translateArea
(
List
<
BannerVo
>
bannerVos
)
{
if
(
CollectionUtils
.
isEmpty
(
bannerVos
)){
return
;
}
List
<
String
>
province
=
new
ArrayList
<>(
16
);
List
<
String
>
city
=
new
ArrayList
<>(
16
);
List
<
String
>
area
=
new
ArrayList
<>(
16
);
List
<
Long
>
shopIds
=
new
ArrayList
<>(
16
);
for
(
BannerVo
bannerVo
:
bannerVos
)
{
if
(!
ArrayUtil
.
isAllAvailable
(
bannerVo
.
getProvince
()))
{
ArrayUtil
.
listAddArray
(
province
,
bannerVo
.
getProvince
());
}
ArrayUtil
.
listAddArray
(
city
,
bannerVo
.
getCity
());
ArrayUtil
.
listAddArray
(
area
,
bannerVo
.
getArea
());
ArrayUtil
.
listAddArray
(
shopIds
,
bannerVo
.
getShopIds
());
}
Map
<
Long
,
Shop
>
shopMapInit
;
if
(!
CollectionUtils
.
isEmpty
(
shopIds
))
{
List
<
Shop
>
shops
=
shopMapper
.
selectShopByIds
(
shopIds
);
shopMapInit
=
shops
.
stream
().
collect
(
Collectors
.
toMap
(
Shop:
:
getId
,
Function
.
identity
()));
}
else
{
shopMapInit
=
new
HashMap
<>(
0
);
}
Map
<
Long
,
Shop
>
shopMap
=
shopMapInit
;
for
(
BannerVo
bannerVo
:
bannerVos
)
{
if
(
ArrayUtil
.
isAllAvailable
(
bannerVo
.
getProvince
()))
{
bannerVo
.
setAreaLimitDesc
(
"全国通用"
);
continue
;
}
else
if
(
ArrayUtil
.
hasContents
(
bannerVo
.
getProvince
()))
{
String
provDesc
=
Arrays
.
stream
(
bannerVo
.
getProvince
()).
map
(
areaUtil:
:
getProvNameByCode
).
collect
(
Collectors
.
joining
(
","
));
bannerVo
.
setAreaLimitDesc
(
provDesc
);
continue
;
}
if
(
ArrayUtil
.
hasContents
(
bannerVo
.
getCity
()))
{
String
cityDesc
=
Arrays
.
stream
(
bannerVo
.
getCity
()).
map
(
areaUtil:
:
getCityOrAreaNameByCode
).
collect
(
Collectors
.
joining
(
","
));
bannerVo
.
setAreaLimitDesc
(
cityDesc
);
continue
;
}
if
(
ArrayUtil
.
hasContents
(
bannerVo
.
getArea
()))
{
String
areaDesc
=
Arrays
.
stream
(
bannerVo
.
getArea
()).
map
(
areaUtil:
:
getCityOrAreaNameByCode
).
collect
(
Collectors
.
joining
(
","
));
bannerVo
.
setAreaLimitDesc
(
areaDesc
);
continue
;
}
if
(!
ArrayUtil
.
hasContents
(
bannerVo
.
getShopIds
()))
{
continue
;
}
String
shopDesc
=
Arrays
.
stream
(
bannerVo
.
getShopIds
()).
map
(
shopId
->
{
Shop
shop
=
shopMap
.
get
(
shopId
);
if
(
shop
==
null
)
{
return
null
;
}
return
areaUtil
.
getCityOrAreaNameByCode
(
shop
.
getZone
())
+
shop
.
getName
();
}).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
joining
(
","
));
bannerVo
.
setAreaLimitDesc
(
shopDesc
);
}
}
}
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