Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
browser-backend
Project
Project
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
Administrator
browser-backend
Commits
70e2b755
Commit
70e2b755
authored
Sep 19, 2020
by
xuxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
店铺收藏夹功能
parent
9f8dca7f
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
157 additions
and
53 deletions
+157
-53
AdministratorServiceImpl.java
...ackend/account/service/impl/AdministratorServiceImpl.java
+7
-46
ShopController.java
...gec/browserbackend/browser/controller/ShopController.java
+46
-4
Shop.java
...in/java/com/edgec/browserbackend/browser/domain/Shop.java
+5
-0
FavoriteUrl.java
...ava/com/edgec/browserbackend/browser/dto/FavoriteUrl.java
+32
-0
ShopRepository.java
...gec/browserbackend/browser/repository/ShopRepository.java
+1
-1
ShopRepositoryCustom.java
...owserbackend/browser/repository/ShopRepositoryCustom.java
+4
-0
ShopRepositoryCustomImpl.java
...rbackend/browser/repository/ShopRepositoryCustomImpl.java
+26
-2
ShopServiceImpl.java
.../browserbackend/browser/service/Impl/ShopServiceImpl.java
+29
-0
ShopService.java
...com/edgec/browserbackend/browser/service/ShopService.java
+7
-0
No files found.
src/main/java/com/edgec/browserbackend/account/service/impl/AdministratorServiceImpl.java
View file @
70e2b755
...
...
@@ -510,88 +510,49 @@ public class AdministratorServiceImpl implements AdministratorService {
@Override
public
PromotionInfoDto
countPromotionInfos
(
String
username
,
String
promotionCode
,
String
beginDate
,
String
endDate
)
{
// 1. 根据传入的 username 或者 推荐码 获取用户信息
long
start
=
System
.
currentTimeMillis
();
// 1. 根据传入的 username 或者 推荐码 获取用户信息
Account
account
=
getAccount
(
username
,
promotionCode
);
log
.
info
(
"===>countPromotionInfos step-1 consume time {}"
,
System
.
currentTimeMillis
()
-
start
);
// 2. 获取 该推荐码下所有的用户
start
=
System
.
currentTimeMillis
();
List
<
Account
>
accounts
=
accountRepository
.
findAllByPromotionCodeAndParentIsNull
(
account
.
getPromotion
().
getCode
());
log
.
info
(
"===>countPromotionInfos step-2 consume time {}"
,
System
.
currentTimeMillis
()
-
start
);
// promotion 用来存储所有用户的消费信息
PromotionInfoDto
promotionInfoDto
=
new
PromotionInfoDto
();
/*promotionInfoDto.setFirstLevelCommission(0);
promotionInfoDto.setFirstLevelIps(0);
promotionInfoDto.setSecondLevelCommission(0);
promotionInfoDto.setSecondLevelIps(0);*/
Account
finalAccount
=
account
;
try
{
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
beginTime
=
formatter
.
parse
(
beginDate
);
Date
endTime
=
formatter
.
parse
(
endDate
);
start
=
System
.
currentTimeMillis
();
if
(
accounts
!=
null
&&
accounts
.
size
()
>
0
)
{
// 邀请的一级用户数
promotionInfoDto
.
setFirstLevelInvitedUsers
(
accounts
.
size
());
/*accounts.forEach(x -> {
long start2 = System.currentTimeMillis();
int[] arr1 = getCommissionAndIps(beginTime, endTime, x);
log.info("===>countPromotionInfos step-3-{} consume time {}", accounts.indexOf(x) + 1, (System.currentTimeMillis() - start2));
promotionInfoDto.setFirstLevelCommission(promotionInfoDto.getFirstLevelCommission() + arr1[0]);
promotionInfoDto.setFirstLevelIps(promotionInfoDto.getFirstLevelIps() + arr1[1]);
// 如果当前账户的推荐码是公司销售的推荐码,且当前账户是父账户
if (finalAccount.getPromotion().isSale() && x.getParent() == null) {
// 获取当前账户的下级账户
List<Account> secondPromotes = accountRepository.findByPromotionCodeAndParentIsNull(x.getPromotion().getCode());
if (secondPromotes != null && secondPromotes.size() > 0) {
*//*for (Account secondPromote : secondPromotes) {
// 将下级账户及下级账户的子账户中未过期的ip统计到 ipCount中
long start3 = System.currentTimeMillis();
int[] arr2 = getCommissionAndIps(beginTime, endTime, secondPromote);
log.info("===>countPromotionInfos step-3-{}-{} consume time {}", accounts.indexOf(x) + 1, secondPromotes.indexOf(secondPromote) + 1, (System.currentTimeMillis() - start3));
promotionInfoDto.setSecondLevelCommission(promotionInfoDto.getSecondLevelCommission() + arr2[0]);
promotionInfoDto.setSecondLevelIps(promotionInfoDto.getSecondLevelIps() + arr2[1]);
}*//*
long start3 = System.currentTimeMillis();
int[] arr2 = getCommissionAndIps(beginTime, endTime, secondPromotes.stream().map(Account::getName).collect(Collectors.toList()));
log.info("===>countPromotionInfos step-3-{}-{} consume time {}", accounts.indexOf(x) + 1, "1", (System.currentTimeMillis() - start3));
promotionInfoDto.setSecondLevelCommission(promotionInfoDto.getSecondLevelCommission() + arr2[0]);
promotionInfoDto.setSecondLevelIps(promotionInfoDto.getSecondLevelIps() + arr2[1]);
}
}
});*/
long
start2
=
System
.
currentTimeMillis
();
int
[]
arr1
=
getCommissionAndIps
(
beginTime
,
endTime
,
accounts
.
stream
().
map
(
Account:
:
getName
).
collect
(
Collectors
.
toList
()));
log
.
info
(
"===>countPromotionInfos step-3-1 consume time {}"
,
(
System
.
currentTimeMillis
()
-
start2
));
promotionInfoDto
.
setFirstLevelCommission
(
arr1
[
0
]);
promotionInfoDto
.
setFirstLevelIps
(
arr1
[
1
]);
List
<
String
>
codeList
=
accounts
.
stream
().
filter
(
x
->
x
.
getParent
()
==
null
).
map
(
x
->
x
.
getPromotion
().
getCode
()).
collect
(
Collectors
.
toList
());
if
(
finalA
ccount
.
getPromotion
().
isSale
())
{
if
(
a
ccount
.
getPromotion
().
isSale
())
{
List
<
Account
>
secondPromotes
=
accountRepository
.
findByPromotionCodeInAndParentIsNull
(
codeList
);
if
(
secondPromotes
!=
null
&&
secondPromotes
.
size
()
>
0
)
{
long
start3
=
System
.
currentTimeMillis
();
int
[]
arr2
=
getCommissionAndIps
(
beginTime
,
endTime
,
secondPromotes
.
stream
().
map
(
Account:
:
getName
).
collect
(
Collectors
.
toList
()));
log
.
info
(
"===>countPromotionInfos step-3-2 consume time {}"
,
(
System
.
currentTimeMillis
()
-
start3
));
promotionInfoDto
.
setSecondLevelCommission
(
arr2
[
0
]);
promotionInfoDto
.
setSecondLevelIps
(
arr2
[
1
]);
}
}
}
log
.
info
(
"===>countPromotionInfos step-4 consume time {}"
,
System
.
currentTimeMillis
()
-
start
);
// 设置总ip
promotionInfoDto
.
setAllLevelIps
(
promotionInfoDto
.
getFirstLevelIps
()
+
promotionInfoDto
.
getSecondLevelIps
());
// 设置应当提现的礼物金额
if
(
finalA
ccount
.
getPromotion
().
isSale
())
{
if
(
a
ccount
.
getPromotion
().
isSale
())
{
promotionInfoDto
.
setGift
(
promotionInfoDto
.
getFirstLevelCommission
()
*
0.1
+
promotionInfoDto
.
getSecondLevelCommission
()
*
0.02
);
}
else
{
promotionInfoDto
.
setGift
(
promotionInfoDto
.
getFirstLevelCommission
()
*
0.08
);
}
log
.
info
(
"===>countPromotionInfos consume time {}"
,
System
.
currentTimeMillis
()
-
start
);
return
promotionInfoDto
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
...
...
src/main/java/com/edgec/browserbackend/browser/controller/ShopController.java
View file @
70e2b755
...
...
@@ -3,10 +3,7 @@ package com.edgec.browserbackend.browser.controller;
import
com.alibaba.fastjson.JSONObject
;
import
com.edgec.browserbackend.account.dto.ResultDto
;
import
com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode
;
import
com.edgec.browserbackend.browser.dto.ShopPageResultDto
;
import
com.edgec.browserbackend.browser.dto.ShopRequestDto
;
import
com.edgec.browserbackend.browser.dto.ShopResultDto
;
import
com.edgec.browserbackend.browser.dto.ShopStringResultDto
;
import
com.edgec.browserbackend.browser.dto.*
;
import
com.edgec.browserbackend.browser.service.IpAndShopService
;
import
com.edgec.browserbackend.browser.service.ShopService
;
import
com.edgec.browserbackend.common.commons.error.ClientRequestException
;
...
...
@@ -278,6 +275,51 @@ public class ShopController {
}
/**
* 店铺收藏夹
*/
@GetMapping
(
"/favorites/{shopId}"
)
public
ResultDto
getFavoritesByShopId
(
Principal
principal
,
@PathVariable
(
"shopId"
)
String
shopId
)
{
ResultDto
resultDto
=
new
ResultDto
();
try
{
List
<
FavoriteUrl
>
list
=
shopService
.
getFavoritesByShopId
(
principal
.
getName
(),
shopId
);
resultDto
.
setData
(
list
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
dealClientRequestException
(
resultDto
,
e
);
}
return
resultDto
;
}
/**
* 店铺收藏夹 删除收藏
*/
@DeleteMapping
(
"/favorites/{shopId}"
)
public
ResultDto
deleteFavoritesByShopId
(
Principal
principal
,
@PathVariable
(
"shopId"
)
String
shopId
,
@RequestBody
FavoriteUrl
favoriteUrl
)
{
ResultDto
resultDto
=
new
ResultDto
();
try
{
resultDto
.
setData
(
shopService
.
deleteFavoritesByShopId
(
principal
.
getName
(),
shopId
,
favoriteUrl
));
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
dealClientRequestException
(
resultDto
,
e
);
}
return
resultDto
;
}
/**
* 店铺收藏夹 新增收藏
*/
@PostMapping
(
"/favorites/{shopId}"
)
public
ResultDto
saveFavoritesByShopId
(
Principal
principal
,
@PathVariable
(
"shopId"
)
String
shopId
,
@RequestBody
FavoriteUrl
favoriteUrl
)
{
ResultDto
resultDto
=
new
ResultDto
();
try
{
resultDto
.
setData
(
shopService
.
saveFavoritesByShopId
(
principal
.
getName
(),
shopId
,
favoriteUrl
));
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
dealClientRequestException
(
resultDto
,
e
);
}
return
resultDto
;
}
private
void
dealClientRequestException
(
ResultDto
resultDto
,
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
...
...
src/main/java/com/edgec/browserbackend/browser/domain/Shop.java
View file @
70e2b755
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
com.edgec.browserbackend.browser.dto.FavoriteUrl
;
import
com.edgec.browserbackend.browser.dto.ShopResultDto
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Getter
;
...
...
@@ -8,6 +9,8 @@ import lombok.Setter;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.util.List
;
@Getter
@Setter
@NoArgsConstructor
...
...
@@ -71,6 +74,8 @@ public class Shop {
*/
private
long
createTime
;
private
List
<
FavoriteUrl
>
favoritesUrls
;
/**
* 创建店铺使用
*/
...
...
src/main/java/com/edgec/browserbackend/browser/dto/FavoriteUrl.java
0 → 100644
View file @
70e2b755
package
com
.
edgec
.
browserbackend
.
browser
.
dto
;
/**
* @author xuxin
* @date 2020/9/19 15:54
* @description
*/
public
class
FavoriteUrl
{
private
String
title
;
private
String
url
;
public
FavoriteUrl
(
String
title
,
String
url
)
{
this
.
title
=
title
;
this
.
url
=
url
;
}
public
String
getTitle
()
{
return
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
String
getUrl
()
{
return
url
;
}
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
}
src/main/java/com/edgec/browserbackend/browser/repository/ShopRepository.java
View file @
70e2b755
...
...
@@ -7,7 +7,7 @@ import org.springframework.data.mongodb.repository.MongoRepository;
import
java.util.List
;
public
interface
ShopRepository
extends
MongoRepository
<
Shop
,
String
>
{
public
interface
ShopRepository
extends
MongoRepository
<
Shop
,
String
>
,
ShopRepositoryCustom
{
Page
<
Shop
>
findByShopIdInAndShopAccountLikeOrderByCreateTimeDesc
(
List
<
String
>
shopIds
,
String
shopAccount
,
Pageable
pageable
);
Page
<
Shop
>
findByShopIdInAndShopNameLikeOrderByCreateTimeDesc
(
List
<
String
>
shopIds
,
String
shopName
,
Pageable
pageable
);
...
...
src/main/java/com/edgec/browserbackend/browser/repository/ShopRepositoryCustom.java
View file @
70e2b755
package
com
.
edgec
.
browserbackend
.
browser
.
repository
;
import
com.edgec.browserbackend.browser.dto.FavoriteUrl
;
public
interface
ShopRepositoryCustom
{
boolean
saveFavoritesUrls
(
String
shopId
,
FavoriteUrl
favoriteUrl
);
boolean
deleteFavoritesByShopId
(
String
shopId
,
FavoriteUrl
favoriteUrl
);
}
src/main/java/com/edgec/browserbackend/browser/repository/ShopRepositoryCustomImpl.java
View file @
70e2b755
package
com
.
edgec
.
browserbackend
.
browser
.
repository
;
import
com.edgec.browserbackend.browser.domain.UserShop
;
import
com.mongodb.client.result.DeleteResult
;
import
com.edgec.browserbackend.browser.domain.Shop
;
import
com.edgec.browserbackend.browser.dto.FavoriteUrl
;
import
com.mongodb.client.result.UpdateResult
;
import
org.bson.Document
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.BasicQuery
;
import
org.springframework.data.mongodb.core.query.Update
;
import
static
org
.
springframework
.
data
.
mongodb
.
core
.
query
.
Criteria
.
where
;
...
...
@@ -14,4 +16,26 @@ public class ShopRepositoryCustomImpl implements ShopRepositoryCustom {
@Autowired
private
MongoTemplate
mongoTemplate
;
@Override
public
boolean
saveFavoritesUrls
(
String
shopId
,
FavoriteUrl
favoriteUrl
)
{
Document
doc
=
new
Document
();
BasicQuery
basicQuery
=
new
BasicQuery
(
doc
);
basicQuery
.
addCriteria
(
where
(
"_id"
).
is
(
shopId
));
Update
update
=
new
Update
();
update
.
addToSet
(
"favoritesUrls"
,
favoriteUrl
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
basicQuery
,
update
,
Shop
.
class
);
return
result
.
getModifiedCount
()
>=
1
;
}
@Override
public
boolean
deleteFavoritesByShopId
(
String
shopId
,
FavoriteUrl
favoriteUrl
)
{
Document
doc
=
new
Document
();
BasicQuery
basicQuery
=
new
BasicQuery
(
doc
);
basicQuery
.
addCriteria
(
where
(
"_id"
).
is
(
shopId
));
Update
update
=
new
Update
();
update
.
pull
(
"favoritesUrls"
,
favoriteUrl
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
basicQuery
,
update
,
Shop
.
class
);
return
result
.
getModifiedCount
()
>=
1
;
}
}
src/main/java/com/edgec/browserbackend/browser/service/Impl/ShopServiceImpl.java
View file @
70e2b755
...
...
@@ -684,6 +684,35 @@ public class ShopServiceImpl implements ShopService {
return
i
;
}
@Override
public
List
<
FavoriteUrl
>
getFavoritesByShopId
(
String
name
,
String
shopId
)
{
UserShop
userShop
=
userShopRepository
.
findByUsernameAndShopId
(
name
,
shopId
);
if
(
userShop
==
null
)
{
throw
new
ClientRequestException
(
BrowserErrorCode
.
SHOPNOTEXIST
);
}
Shop
shop
=
shopRepository
.
findById
(
shopId
).
orElseThrow
(()
->
new
ClientRequestException
(
BrowserErrorCode
.
SHOPNOTEXIST
));
return
shop
.
getFavoritesUrls
();
}
@Override
public
boolean
saveFavoritesByShopId
(
String
name
,
String
shopId
,
FavoriteUrl
favoriteUrl
)
{
UserShop
userShop
=
userShopRepository
.
findByUsernameAndShopId
(
name
,
shopId
);
if
(
userShop
==
null
)
{
throw
new
ClientRequestException
(
BrowserErrorCode
.
SHOPNOTEXIST
);
}
return
shopRepository
.
saveFavoritesUrls
(
shopId
,
favoriteUrl
);
}
@Override
public
boolean
deleteFavoritesByShopId
(
String
name
,
String
shopId
,
FavoriteUrl
favoriteUrl
)
{
UserShop
userShop
=
userShopRepository
.
findByUsernameAndShopId
(
name
,
shopId
);
if
(
userShop
==
null
)
{
throw
new
ClientRequestException
(
BrowserErrorCode
.
SHOPNOTEXIST
);
}
return
shopRepository
.
deleteFavoritesByShopId
(
shopId
,
favoriteUrl
);
}
private
String
getShopId
(
String
username
,
ShopResultDto
shopResultDto
)
{
Shop
shop
=
new
Shop
();
shopResultDto
.
setOwner
(
username
);
...
...
src/main/java/com/edgec/browserbackend/browser/service/ShopService.java
View file @
70e2b755
package
com
.
edgec
.
browserbackend
.
browser
.
service
;
import
com.edgec.browserbackend.browser.domain.ShopSummary
;
import
com.edgec.browserbackend.browser.dto.FavoriteUrl
;
import
com.edgec.browserbackend.browser.dto.ShopFilterDto
;
import
com.edgec.browserbackend.browser.dto.ShopPageResultDto
;
import
com.edgec.browserbackend.browser.dto.ShopResultDto
;
...
...
@@ -38,4 +39,10 @@ public interface ShopService {
String
queryShopCookieById
(
String
id
);
Integer
deleteShopCookieById
(
String
id
);
boolean
saveFavoritesByShopId
(
String
name
,
String
shopId
,
FavoriteUrl
favoriteUrl
);
boolean
deleteFavoritesByShopId
(
String
name
,
String
shopId
,
FavoriteUrl
favoriteUrl
);
List
<
FavoriteUrl
>
getFavoritesByShopId
(
String
name
,
String
shopId
);
}
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