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
a575b78a
Commit
a575b78a
authored
Sep 19, 2020
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'staging' into 'master'
Staging See merge request
!177
parents
81f09f4f
1942954b
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
249 additions
and
53 deletions
+249
-53
AdministratorServiceImpl.java
...ackend/account/service/impl/AdministratorServiceImpl.java
+7
-46
ShopController.java
...gec/browserbackend/browser/controller/ShopController.java
+46
-4
TempController.java
...gec/browserbackend/browser/controller/TempController.java
+69
-0
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
FavoriteUrlDto.java
.../com/edgec/browserbackend/browser/dto/FavoriteUrlDto.java
+37
-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
+25
-2
ShopServiceImpl.java
.../browserbackend/browser/service/Impl/ShopServiceImpl.java
+16
-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 @
a575b78a
...
...
@@ -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 @
a575b78a
...
...
@@ -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/controller/TempController.java
View file @
a575b78a
package
com
.
edgec
.
browserbackend
.
browser
.
controller
;
import
com.edgec.browserbackend.account.dto.ResultDto
;
import
com.edgec.browserbackend.browser.domain.UserCode
;
import
com.edgec.browserbackend.browser.dto.FavoriteUrl
;
import
com.edgec.browserbackend.browser.dto.FavoriteUrlDto
;
import
com.edgec.browserbackend.browser.service.ShopService
;
import
com.edgec.browserbackend.browser.service.TempService
;
import
com.edgec.browserbackend.common.commons.error.ClientRequestException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 一些临时执行的代码可以放在这里,方便删除
*/
...
...
@@ -15,6 +24,9 @@ public class TempController {
@Autowired
private
TempService
tempService
;
@Autowired
private
ShopService
shopService
;
/**
* 记住用户明文密码
*/
...
...
@@ -28,4 +40,61 @@ public class TempController {
return
tempService
.
getPassword
(
ip
);
}
/**
* 店铺收藏夹
*/
@GetMapping
(
"/favorites/{shopId}"
)
public
ResultDto
getFavoritesByShopId
(
@PathVariable
(
"shopId"
)
String
shopId
)
{
ResultDto
resultDto
=
new
ResultDto
();
try
{
List
<
FavoriteUrl
>
list
=
shopService
.
getFavoritesByShopId
(
shopId
);
resultDto
.
setData
(
list
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
dealClientRequestException
(
resultDto
,
e
);
}
return
resultDto
;
}
/**
* 店铺收藏夹 删除收藏
*/
@DeleteMapping
(
"/favorites"
)
public
ResultDto
deleteFavoritesByShopId
(
@RequestBody
FavoriteUrlDto
favoriteUrlDto
)
{
ResultDto
resultDto
=
new
ResultDto
();
try
{
FavoriteUrl
favoriteUrl
=
new
FavoriteUrl
(
favoriteUrlDto
.
getTitle
(),
favoriteUrlDto
.
getUrl
());
resultDto
.
setData
(
shopService
.
deleteFavoritesByShopId
(
favoriteUrlDto
.
getShopId
(),
favoriteUrl
));
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
dealClientRequestException
(
resultDto
,
e
);
}
return
resultDto
;
}
/**
* 店铺收藏夹 新增收藏
*/
@PostMapping
(
"/favorites"
)
public
ResultDto
saveFavoritesByShopId
(
@RequestBody
FavoriteUrlDto
favoriteUrlDto
)
{
ResultDto
resultDto
=
new
ResultDto
();
try
{
FavoriteUrl
favoriteUrl
=
new
FavoriteUrl
(
favoriteUrlDto
.
getTitle
(),
favoriteUrlDto
.
getUrl
());
shopService
.
saveFavoritesByShopId
(
favoriteUrlDto
.
getShopId
(),
favoriteUrl
);
resultDto
.
setData
(
true
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
dealClientRequestException
(
resultDto
,
e
);
}
return
resultDto
;
}
private
void
dealClientRequestException
(
ResultDto
resultDto
,
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
src/main/java/com/edgec/browserbackend/browser/domain/Shop.java
View file @
a575b78a
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 @
a575b78a
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/dto/FavoriteUrlDto.java
0 → 100644
View file @
a575b78a
package
com
.
edgec
.
browserbackend
.
browser
.
dto
;
/**
* @author 每天进步一点点
* @date 2020/9/19 20:13
* @description
*/
public
class
FavoriteUrlDto
{
private
String
title
;
private
String
url
;
private
String
shopId
;
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
;
}
public
String
getShopId
()
{
return
shopId
;
}
public
void
setShopId
(
String
shopId
)
{
this
.
shopId
=
shopId
;
}
}
src/main/java/com/edgec/browserbackend/browser/repository/ShopRepository.java
View file @
a575b78a
...
...
@@ -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 @
a575b78a
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 @
a575b78a
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,25 @@ 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 @
a575b78a
...
...
@@ -684,6 +684,22 @@ public class ShopServiceImpl implements ShopService {
return
i
;
}
@Override
public
List
<
FavoriteUrl
>
getFavoritesByShopId
(
String
shopId
)
{
Shop
shop
=
shopRepository
.
findById
(
shopId
).
orElseThrow
(()
->
new
ClientRequestException
(
BrowserErrorCode
.
SHOPNOTEXIST
));
return
shop
.
getFavoritesUrls
();
}
@Override
public
boolean
saveFavoritesByShopId
(
String
shopId
,
FavoriteUrl
favoriteUrl
)
{
return
shopRepository
.
saveFavoritesUrls
(
shopId
,
favoriteUrl
);
}
@Override
public
boolean
deleteFavoritesByShopId
(
String
shopId
,
FavoriteUrl
favoriteUrl
)
{
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 @
a575b78a
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
shopId
,
FavoriteUrl
favoriteUrl
);
boolean
deleteFavoritesByShopId
(
String
shopId
,
FavoriteUrl
favoriteUrl
);
List
<
FavoriteUrl
>
getFavoritesByShopId
(
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