Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
peizhen-java
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PeiZhen-Java
peizhen-java
Commits
61fc5763
Commit
61fc5763
authored
Oct 18, 2023
by
sdif
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
39d549a5
d5226b50
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
94 additions
and
41 deletions
+94
-41
pz-admin/src/main/java/com/pz/web/controller/system/DataViewController.java
+16
-3
pz-admin/src/main/java/com/pz/web/task/InsertTestOrderTask.java
+40
-17
pz-system/src/main/java/com/pz/merchant/service/impl/CompanyServiceImpl.java
+1
-0
pz-system/src/main/java/com/pz/system/domain/bo/OrderColumnarBo.java
+10
-0
pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java
+27
-21
No files found.
pz-admin/src/main/java/com/pz/web/controller/system/DataViewController.java
View file @
61fc5763
...
...
@@ -10,6 +10,8 @@ import com.pz.common.core.domain.R;
import
com.pz.common.core.domain.dto.RoleDTO
;
import
com.pz.common.core.domain.model.LoginUser
;
import
com.pz.common.core.page.TableDataInfo
;
import
com.pz.merchant.domain.bo.CompanyBo
;
import
com.pz.merchant.domain.vo.CompanyVo
;
import
com.pz.system.domain.bo.DbghOrderBo
;
import
com.pz.system.domain.bo.OrderColumnarBo
;
import
com.pz.system.domain.vo.DbghOrderVo
;
...
...
@@ -61,6 +63,7 @@ public class DataViewController extends BaseController {
private
final
IStoreApplyService
iStoreApplyService
;
/**
* 新增用户统计
*/
...
...
@@ -75,7 +78,7 @@ public class DataViewController extends BaseController {
@GetMapping
(
"/dataEmployees"
)
public
R
<
DataViewVo
>
dataEmployees
(
DataViewBo
dataViewBo
)
{
Long
roleId
=
getLoginUser
().
getRoleId
();
if
(
null
!=
roleId
&&
roleId
==
3
)
{
if
(
null
!=
roleId
&&
roleId
==
3
)
{
dataViewBo
.
setUserId
(
getUserId
());
}
return
R
.
ok
(
iEmployeesService
.
dataEmployees
(
dataViewBo
));
...
...
@@ -111,7 +114,7 @@ public class DataViewController extends BaseController {
@GetMapping
(
"/platformRevenue"
)
public
R
<
DataOrderVo
>
platformRevenue
(
DataViewBo
dataViewBo
)
{
Long
roleId
=
getLoginUser
().
getRoleId
();
if
(
null
!=
roleId
&&
roleId
==
3
)
{
if
(
null
!=
roleId
&&
roleId
==
3
)
{
dataViewBo
.
setUserId
(
getUserId
());
}
return
R
.
ok
(
iTotalOrderService
.
platformRevenue
(
dataViewBo
));
...
...
@@ -123,7 +126,7 @@ public class DataViewController extends BaseController {
@GetMapping
(
"/orderQuantity"
)
public
R
<
DataViewVo
>
orderQuantity
(
DataViewBo
dataViewBo
)
{
Long
roleId
=
getLoginUser
().
getRoleId
();
if
(
null
!=
roleId
&&
roleId
==
3
)
{
if
(
null
!=
roleId
&&
roleId
==
3
)
{
dataViewBo
.
setUserId
(
getUserId
());
}
DataOrderVo
dataOrderVo
=
iTotalOrderService
.
orderQuantity
(
dataViewBo
);
...
...
@@ -140,4 +143,14 @@ public class DataViewController extends BaseController {
OrderColumnarBo
bo
)
{
return
R
.
ok
(
iTotalOrderService
.
findOrderColumnarVoList
(
bo
));
}
/**
* 机构列表
*/
@GetMapping
(
"/companyList"
)
public
R
<
List
<
CompanyVo
>>
companyList
(
CompanyBo
bo
)
{
return
R
.
ok
(
iCompanyService
.
queryList
(
bo
));
}
}
pz-admin/src/main/java/com/pz/web/task/InsertTestOrderTask.java
View file @
61fc5763
...
...
@@ -66,25 +66,30 @@ public class InsertTestOrderTask {
private
final
EmployeesDivideMapper
employeesDivideMapper
;
public
static
List
<
Integer
>
businessIds
=
Arrays
.
asList
(
0
,
1
,
2
,
3
,
4
,
5
,
6
);
@Scheduled
(
cron
=
"0 0 0 * * ?"
)
// 凌晨12点执行
public
void
insertOrder
()
throws
InterruptedException
{
// 就诊人员
List
<
UserVsitor
>
userVsitors
=
userVsitorMapper
.
selectList
(
Wrappers
.<
UserVsitor
>
lambdaQuery
().
last
(
"limit 20"
));
UserVsitor
randomElement
=
getRandomElement
(
userVsitors
);
// 查询固定机构
List
<
Company
>
companies
=
companyMapper
.
selectList
(
Wrappers
.<
Company
>
lambdaQuery
().
in
(
Company:
:
getId
,
5
,
14
,
15
,
16
,
17
,
18
,
19
));
List
<
Company
>
companies
=
companyMapper
.
selectList
(
Wrappers
.<
Company
>
lambdaQuery
().
in
(
Company:
:
getId
,
5
,
14
,
15
,
16
,
17
,
18
,
19
));
// 加入线程池并发执行
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
10
);
for
(
Company
company
:
companies
)
{
Employees
employees
=
employeesMapper
.
selectOne
(
Wrappers
.<
Employees
>
lambdaQuery
().
eq
(
Employees:
:
getCompanyId
,
company
.
getId
()).
last
(
"limit 1"
));
executorService
.
submit
(()
->
{
List
<
Hospital
>
hospitals
=
hospitalMapper
.
selectList
(
Wrappers
.<
Hospital
>
lambdaQuery
().
eq
(
Hospital:
:
getCityId
,
employees
.
getCityId
()).
last
(
"limit 10"
));
List
<
Hospital
>
hospitals
=
hospitalMapper
.
selectList
(
Wrappers
.<
Hospital
>
lambdaQuery
().
eq
(
Hospital:
:
getCityId
,
company
.
getCityId
()).
last
(
"limit 10"
));
Hospital
hospital
=
getRandomElement
(
hospitals
);
for
(
Integer
businessId
:
businessIds
)
{
//获取服务价格
List
<
Services
>
services
=
servicesMapper
.
selectList
(
Wrappers
.<
Services
>
lambdaQuery
().
eq
(
Services:
:
getBid
,
businessId
).
eq
(
Services:
:
getCityId
,
company
.
getCityId
()));
// 每日单量
Integer
num
=
RandomUtil
.
randomInt
(
30
,
5
0
);
Integer
num
=
RandomUtil
.
randomInt
(
4
,
1
0
);
for
(
int
i
=
0
;
i
<=
num
;
i
++)
{
Long
orderId
=
saveTotalOrder
(
businessId
,
employees
.
getId
(),
employees
.
getCityId
().
intValue
(),
company
.
getId
());
//接单人员
UserVsitor
randomElement
=
getRandomElement
(
userVsitors
);
for
(
Services
service
:
services
)
{
Long
orderId
=
saveTotalOrder
(
businessId
,
employees
.
getId
(),
company
.
getCityId
().
intValue
(),
company
.
getId
(),
service
);
switch
(
businessId
)
{
case
0
:
StoreOrder
storeOrder
=
new
StoreOrder
();
...
...
@@ -103,7 +108,7 @@ public class InsertTestOrderTask {
yypzOrder
.
setOrderId
(
orderId
.
intValue
());
yypzOrder
.
setPhone
(
generateRandomPhoneNumber
());
yypzOrder
.
setStatus
(
2
);
yypzOrder
.
setVisitTime
(
new
Dat
e
());
yypzOrder
.
setVisitTime
(
randomTim
e
());
yypzOrder
.
setHid
(
hospital
.
getId
());
yypzOrder
.
setVisitor
(
randomElement
.
getId
());
yypzOrderMapper
.
insert
(
yypzOrder
);
...
...
@@ -113,7 +118,7 @@ public class InsertTestOrderTask {
dbghOrder
.
setOrderId
(
orderId
.
intValue
());
dbghOrder
.
setHid
(
hospital
.
getId
());
dbghOrder
.
setStatus
(
2
);
dbghOrder
.
setVisitTime
(
new
Dat
e
());
dbghOrder
.
setVisitTime
(
randomTim
e
());
dbghOrder
.
setVisitor
(
randomElement
.
getId
());
dbghOrderMapper
.
insert
(
dbghOrder
);
break
;
...
...
@@ -121,7 +126,7 @@ public class InsertTestOrderTask {
DbwzOrder
dbwzOrder
=
new
DbwzOrder
();
dbwzOrder
.
setOrderId
(
orderId
.
intValue
());
dbwzOrder
.
setStatus
(
2
);
dbwzOrder
.
setVisitTime
(
new
Dat
e
());
dbwzOrder
.
setVisitTime
(
randomTim
e
());
dbwzOrder
.
setChiefComplaint
(
"电话沟通"
);
dbwzOrder
.
setHistoryOfPresentIllness
(
"电话沟通"
);
dbwzOrder
.
setLastMedicalTreatmentSituation
(
"电话沟通"
);
...
...
@@ -138,7 +143,7 @@ public class InsertTestOrderTask {
zyphOrder
.
setHid
(
hospital
.
getId
());
zyphOrder
.
setStatus
(
2
);
zyphOrder
.
setVisitor
(
randomElement
.
getId
());
zyphOrder
.
setOverTime
(
new
Dat
e
());
zyphOrder
.
setOverTime
(
randomTim
e
());
zyphOrderMapper
.
insert
(
zyphOrder
);
break
;
case
5
:
...
...
@@ -156,7 +161,7 @@ public class InsertTestOrderTask {
zqghOrder
.
setOrderId
(
orderId
.
intValue
());
zqghOrder
.
setHid
(
hospital
.
getId
());
zqghOrder
.
setStatus
(
2
);
zqghOrder
.
setOverTime
(
new
Dat
e
());
zqghOrder
.
setOverTime
(
randomTim
e
());
zqghOrder
.
setDoctorId
(
1
);
zqghOrderMapper
.
insert
(
zqghOrder
);
break
;
...
...
@@ -165,19 +170,37 @@ public class InsertTestOrderTask {
}
}
}
}
});
}
executorService
.
shutdown
();
executorService
.
awaitTermination
(
Long
.
MAX_VALUE
,
TimeUnit
.
NANOSECONDS
);
}
public
Long
saveTotalOrder
(
Integer
businessId
,
Integer
emId
,
Integer
cityId
,
Integer
companyId
)
{
//随机服务id
Integer
serviceId
=
RandomUtil
.
randomInt
(
1
,
12
);
public
Date
randomTime
()
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
9
);
// 设置小时为9点
calendar
.
set
(
Calendar
.
MINUTE
,
0
);
// 设置分钟为0分
calendar
.
set
(
Calendar
.
SECOND
,
0
);
// 设置秒钟为0秒
long
startTimeInMillis
=
calendar
.
getTimeInMillis
();
// 获取当天9点的时间戳
// 计算10点与9点之间的毫秒数范围
long
range
=
60
*
60
*
1000
;
// 1小时的毫秒数
long
randomOffset
=
(
long
)
(
Math
.
random
()
*
range
);
// 在范围内生成随机偏移量
// 计算随机时间的时间戳
long
randomTimeInMillis
=
startTimeInMillis
+
randomOffset
;
// 将时间戳转换为Date类型
Date
randomTime
=
new
Date
(
randomTimeInMillis
);
return
randomTime
;
}
public
Long
saveTotalOrder
(
Integer
businessId
,
Integer
emId
,
Integer
cityId
,
Integer
companyId
,
Services
services
)
{
//随机评价
Integer
i
=
RandomUtil
.
randomInt
(
0
,
1
);
//获取服务价格
Services
services
=
servicesMapper
.
selectById
(
serviceId
);
//创建主订单
TotalOrder
totalOrder
=
new
TotalOrder
();
totalOrder
.
setStatus
(
2
);
...
...
@@ -185,8 +208,8 @@ public class InsertTestOrderTask {
totalOrder
.
setPayMoney
(
services
.
getPrice
().
doubleValue
());
totalOrder
.
setIsSatisfaction
(
i
);
totalOrder
.
setBusinessId
(
businessId
);
totalOrder
.
setFinishTime
(
new
Dat
e
());
totalOrder
.
setServiceId
(
service
Id
);
totalOrder
.
setFinishTime
(
randomTim
e
());
totalOrder
.
setServiceId
(
service
s
.
getId
()
);
totalOrder
.
setCityId
(
cityId
);
totalOrder
.
setOrderSn
(
RandomUtil
.
randomNumbers
(
21
));
totalOrder
.
setEmId
(
emId
);
...
...
pz-system/src/main/java/com/pz/merchant/service/impl/CompanyServiceImpl.java
View file @
61fc5763
...
...
@@ -119,6 +119,7 @@ public class CompanyServiceImpl implements ICompanyService {
LambdaQueryWrapper
<
Company
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
null
!=
bo
.
getStatus
(),
Company:
:
getStatus
,
1
);
lqw
.
eq
(
null
!=
bo
.
getUid
(),
Company:
:
getUid
,
bo
.
getUid
());
lqw
.
eq
(
null
!=
bo
.
getCityId
(),
Company:
:
getCityId
,
bo
.
getCityId
());
lqw
.
like
(
StringUtils
.
isNotBlank
(
bo
.
getName
()),
Company:
:
getName
,
bo
.
getName
());
return
lqw
;
}
...
...
pz-system/src/main/java/com/pz/system/domain/bo/OrderColumnarBo.java
View file @
61fc5763
...
...
@@ -28,4 +28,14 @@ public class OrderColumnarBo implements Serializable {
* 陪诊员ids
*/
private
List
<
Integer
>
emIds
;
/**
* 城市id
*/
private
Long
cityId
;
/**
* 机构id
*/
private
Long
companyId
;
}
pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java
View file @
61fc5763
...
...
@@ -1248,20 +1248,6 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
public
List
<
OrderLineVo
>
findOrderColumnarVoList
(
OrderColumnarBo
bo
)
{
Long
roleId
=
LoginHelper
.
getLoginUser
().
getRoleId
();
Long
userId
=
LoginHelper
.
getUserId
();
//商户
if
(
roleId
==
3L
)
{
//查找该商户
Optional
.
ofNullable
(
companyMapper
.
selectOne
(
Wrappers
.<
Company
>
lambdaQuery
().
eq
(
Company:
:
getUid
,
userId
).
eq
(
Company:
:
getStatus
,
1
)))
.
ifPresent
(
company
->
{
//获取该商户下所有陪诊员
List
<
Employees
>
employees
=
employeesMapper
.
selectList
(
Wrappers
.<
Employees
>
lambdaQuery
().
eq
(
Employees:
:
getCompanyId
,
company
.
getId
()));
if
(
CollectionUtils
.
isNotEmpty
(
employees
))
{
bo
.
setEmIds
(
employees
.
stream
().
map
(
Employees:
:
getId
).
collect
(
Collectors
.
toList
()));
}
else
{
bo
.
setEmIds
(
Arrays
.
asList
(
999999
));
}
});
}
List
<
OrderLineVo
>
list
=
new
ArrayList
<>();
List
<
String
>
recentDates
;
switch
(
bo
.
getType
())
{
...
...
@@ -1277,16 +1263,36 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
default
:
return
list
;
}
// 获取商户和陪诊员信息
if
(
roleId
==
3L
)
{
Optional
.
ofNullable
(
companyMapper
.
selectOne
(
Wrappers
.<
Company
>
lambdaQuery
().
eq
(
Company:
:
getUid
,
userId
).
eq
(
Company:
:
getStatus
,
1
)))
.
ifPresent
(
company
->
{
List
<
Employees
>
employees
=
employeesMapper
.
selectList
(
Wrappers
.<
Employees
>
lambdaQuery
().
eq
(
Employees:
:
getCompanyId
,
company
.
getId
()));
bo
.
setEmIds
(
CollectionUtils
.
isNotEmpty
(
employees
)
?
employees
.
stream
().
map
(
Employees:
:
getId
).
collect
(
Collectors
.
toList
())
:
Arrays
.
asList
(
999999
));
});
}
// 获取该城市下所有陪诊员信息
if
(
bo
.
getCityId
()
!=
null
)
{
List
<
Company
>
companies
=
companyMapper
.
selectList
(
Wrappers
.<
Company
>
lambdaQuery
().
eq
(
Company:
:
getCityId
,
bo
.
getCityId
()).
eq
(
null
!=
bo
.
getCompanyId
(),
Company:
:
getId
,
bo
.
getCompanyId
()).
eq
(
Company:
:
getStatus
,
1
));
if
(
CollectionUtils
.
isNotEmpty
(
companies
))
{
List
<
Employees
>
employees
=
employeesMapper
.
selectList
(
Wrappers
.<
Employees
>
lambdaQuery
().
in
(
Employees:
:
getCompanyId
,
companies
.
stream
().
map
(
Company:
:
getId
).
collect
(
Collectors
.
toList
())));
bo
.
setEmIds
(
CollectionUtils
.
isNotEmpty
(
employees
)
?
employees
.
stream
().
map
(
Employees:
:
getId
).
collect
(
Collectors
.
toList
())
:
Arrays
.
asList
(
999999
));
}
else
{
bo
.
setEmIds
(
Arrays
.
asList
(
999999
));
}
}
// 使用一个 Map 来缓存已经查询过的订单列列表
Map
<
String
,
List
<
OrderColumnarVo
>>
orderMap
=
new
HashMap
<>();
for
(
String
time
:
recentDates
)
{
List
<
OrderColumnarVo
>
orderColumnarVoList
=
orderMap
.
get
(
time
);
if
(
orderColumnarVoList
==
null
)
{
orderColumnarVoList
=
baseMapper
.
findOrderColumnarVoList
(
time
,
bo
.
getEmIds
());
List
<
OrderColumnarVo
>
orderColumnarVoList
=
orderMap
.
computeIfAbsent
(
time
,
k
->
{
List
<
OrderColumnarVo
>
columnarVoList
=
baseMapper
.
findOrderColumnarVoList
(
time
,
bo
.
getEmIds
());
OrderColumnarVo
orderColumnarVo
=
baseMapper
.
findStoreOrderVoList
(
time
,
bo
.
getEmIds
());
orderColumnarVoList
.
add
(
orderColumnarVo
);
orderMap
.
put
(
time
,
orderColumnarVoList
);
}
columnarVoList
.
add
(
orderColumnarVo
);
return
columnarVoList
;
});
OrderLineVo
orderLineVo
=
new
OrderLineVo
();
orderLineVo
.
setKey
(
time
);
orderLineVo
.
setList
(
orderColumnarVoList
);
...
...
@@ -1437,7 +1443,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
@Override
public
DataOrderVo
platformRevenue
(
DataViewBo
dataViewBo
)
{
if
(
null
!=
dataViewBo
.
getUserId
())
{
if
(
null
!=
dataViewBo
.
getUserId
())
{
Company
company
=
companyMapper
.
selectOne
(
new
LambdaQueryWrapper
<
Company
>().
eq
(
Company:
:
getUid
,
dataViewBo
.
getUserId
()));
dataViewBo
.
setUserId
(
company
.
getId
().
longValue
());
return
baseMapper
.
selectPlatformCom
(
dataViewBo
);
...
...
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