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
1a06bd22
Commit
1a06bd22
authored
Sep 15, 2023
by
sdif
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户端代码提交
parent
ab48f67c
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
603 additions
and
18 deletions
+603
-18
pz-admin/src/main/java/com/pz/web/controller/system/StoreApplyController.java
+1
-0
pz-admin/src/main/resources/application.yml
+5
-0
pz-applet/src/main/java/com/pz/applet/AppletStoreApplyController.java
+4
-1
pz-applet/src/main/java/com/pz/applet/AppletTotalOrderController.java
+10
-0
pz-applet/src/main/java/com/pz/applet/AppletZqghOrderController.java
+1
-0
pz-common/src/main/java/com/pz/common/config/KbProperties.java
+22
-0
pz-common/src/main/java/com/pz/common/utils/HttpUtils.java
+310
-0
pz-system/src/main/java/com/pz/system/datastructure/OrderDelayQueue.java
+4
-3
pz-system/src/main/java/com/pz/system/domain/bo/TotalOrderBo.java
+7
-0
pz-system/src/main/java/com/pz/system/domain/vo/StoreApplyVo.java
+1
-0
pz-system/src/main/java/com/pz/system/domain/vo/StoreGoodsVo.java
+9
-0
pz-system/src/main/java/com/pz/system/domain/vo/TotalOrderVo.java
+23
-3
pz-system/src/main/java/com/pz/system/service/ITotalOrderService.java
+7
-0
pz-system/src/main/java/com/pz/system/service/IZqghOrderService.java
+11
-0
pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java
+163
-10
pz-system/src/main/java/com/pz/system/service/impl/ZqghOrderServiceImpl.java
+19
-0
pz-system/src/main/resources/mapper/merchant/EmployeesMapper.xml
+6
-1
No files found.
pz-admin/src/main/java/com/pz/web/controller/system/StoreApplyController.java
View file @
1a06bd22
...
...
@@ -3,6 +3,7 @@ package com.pz.web.controller.system;
import
java.util.List
;
import
java.util.Arrays
;
import
com.pz.common.helper.LoginHelper
;
import
lombok.RequiredArgsConstructor
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.*
;
...
...
pz-admin/src/main/resources/application.yml
View file @
1a06bd22
...
...
@@ -304,3 +304,8 @@ file:
#注意:响应路径必须加上file后缀
response-path
:
https://www.pz.com/file
---
#快宝设置 https://open.kuaidihelp.com
kb
:
appId
:
113444
appKey
:
d70e699e554e3193284f1cf97a1184454870c6b5
pz-applet/src/main/java/com/pz/applet/AppletStoreApplyController.java
View file @
1a06bd22
...
...
@@ -10,6 +10,7 @@ import com.pz.common.core.page.TableDataInfo;
import
com.pz.common.core.validate.AddGroup
;
import
com.pz.common.core.validate.EditGroup
;
import
com.pz.common.enums.BusinessType
;
import
com.pz.common.helper.LoginHelper
;
import
com.pz.common.utils.poi.ExcelUtil
;
import
com.pz.system.domain.bo.StoreApplyBo
;
import
com.pz.system.domain.vo.StoreApplyVo
;
...
...
@@ -43,7 +44,9 @@ public class AppletStoreApplyController extends BaseController {
*/
@RepeatSubmit
()
@PostMapping
()
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
StoreApplyBo
bo
)
{
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
StoreApplyBo
bo
)
{
bo
.
setUid
(
LoginHelper
.
getLoginUser
().
getUserId
().
intValue
());
return
toAjax
(
iStoreApplyService
.
insertByBo
(
bo
));
}
...
...
pz-applet/src/main/java/com/pz/applet/AppletTotalOrderController.java
View file @
1a06bd22
...
...
@@ -77,6 +77,16 @@ public class AppletTotalOrderController extends BaseController {
return
R
.
ok
(
iTotalOrderService
.
queryByAppId
(
id
));
}
/**
* 查询物流信息
*
*/
@GetMapping
(
"/selectLogisticsStatus"
)
public
R
<
Object
>
selectLogisticsStatus
(
TotalOrderBo
totalOrderBo
)
{
return
R
.
ok
(
iTotalOrderService
.
selectLogisticsStatus
(
totalOrderBo
));
}
/**
* 新增总订单
*/
...
...
pz-applet/src/main/java/com/pz/applet/AppletZqghOrderController.java
View file @
1a06bd22
...
...
@@ -47,4 +47,5 @@ public class AppletZqghOrderController extends BaseController {
return
R
.
ok
(
iZqghOrderService
.
queryAppList
(
bo
));
}
}
pz-common/src/main/java/com/pz/common/config/KbProperties.java
0 → 100644
View file @
1a06bd22
package
com
.
pz
.
common
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Configuration
;
/**
* 快宝物流参数
*/
@Data
@Configuration
@ConfigurationProperties
(
prefix
=
"kb"
)
public
class
KbProperties
{
/**
* 快宝appid
*/
private
String
appId
;
/**
* 快宝appKey
*/
private
String
appKey
;
}
pz-common/src/main/java/com/pz/common/utils/HttpUtils.java
0 → 100644
View file @
1a06bd22
package
com
.
pz
.
common
.
utils
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.security.KeyManagementException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.cert.X509Certificate
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.TrustManager
;
import
javax.net.ssl.X509TrustManager
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.HttpDelete
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.client.methods.HttpPut
;
import
org.apache.http.conn.ClientConnectionManager
;
import
org.apache.http.conn.scheme.Scheme
;
import
org.apache.http.conn.scheme.SchemeRegistry
;
import
org.apache.http.conn.ssl.SSLSocketFactory
;
import
org.apache.http.entity.ByteArrayEntity
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.DefaultHttpClient
;
import
org.apache.http.message.BasicNameValuePair
;
public
class
HttpUtils
{
/**
* get
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @return
* @throws Exception
*/
public
static
HttpResponse
doGet
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpGet
request
=
new
HttpGet
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
return
httpClient
.
execute
(
request
);
}
/**
* post form
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param bodys
* @return
* @throws Exception
*/
public
static
HttpResponse
doPost
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
Map
<
String
,
String
>
bodys
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPost
request
=
new
HttpPost
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
bodys
!=
null
)
{
List
<
NameValuePair
>
nameValuePairList
=
new
ArrayList
<
NameValuePair
>();
for
(
String
key
:
bodys
.
keySet
())
{
nameValuePairList
.
add
(
new
BasicNameValuePair
(
key
,
bodys
.
get
(
key
)));
}
UrlEncodedFormEntity
formEntity
=
new
UrlEncodedFormEntity
(
nameValuePairList
,
"utf-8"
);
formEntity
.
setContentType
(
"application/x-www-form-urlencoded; charset=UTF-8"
);
request
.
setEntity
(
formEntity
);
}
return
httpClient
.
execute
(
request
);
}
/**
* Post String
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPost
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
String
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPost
request
=
new
HttpPost
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
StringUtils
.
isNotBlank
(
body
))
{
request
.
setEntity
(
new
StringEntity
(
body
,
"utf-8"
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Post stream
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPost
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
byte
[]
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPost
request
=
new
HttpPost
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
body
!=
null
)
{
request
.
setEntity
(
new
ByteArrayEntity
(
body
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Put String
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPut
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
String
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPut
request
=
new
HttpPut
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
StringUtils
.
isNotBlank
(
body
))
{
request
.
setEntity
(
new
StringEntity
(
body
,
"utf-8"
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Put stream
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPut
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
byte
[]
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPut
request
=
new
HttpPut
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
body
!=
null
)
{
request
.
setEntity
(
new
ByteArrayEntity
(
body
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Delete
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @return
* @throws Exception
*/
public
static
HttpResponse
doDelete
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpDelete
request
=
new
HttpDelete
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
return
httpClient
.
execute
(
request
);
}
private
static
String
buildUrl
(
String
host
,
String
path
,
Map
<
String
,
String
>
querys
)
throws
UnsupportedEncodingException
{
StringBuilder
sbUrl
=
new
StringBuilder
();
sbUrl
.
append
(
host
);
if
(!
StringUtils
.
isBlank
(
path
))
{
sbUrl
.
append
(
path
);
}
if
(
null
!=
querys
)
{
StringBuilder
sbQuery
=
new
StringBuilder
();
for
(
Map
.
Entry
<
String
,
String
>
query
:
querys
.
entrySet
())
{
if
(
0
<
sbQuery
.
length
())
{
sbQuery
.
append
(
"&"
);
}
if
(
StringUtils
.
isBlank
(
query
.
getKey
())
&&
!
StringUtils
.
isBlank
(
query
.
getValue
()))
{
sbQuery
.
append
(
query
.
getValue
());
}
if
(!
StringUtils
.
isBlank
(
query
.
getKey
()))
{
sbQuery
.
append
(
query
.
getKey
());
if
(!
StringUtils
.
isBlank
(
query
.
getValue
()))
{
sbQuery
.
append
(
"="
);
sbQuery
.
append
(
URLEncoder
.
encode
(
query
.
getValue
(),
"utf-8"
));
}
}
}
if
(
0
<
sbQuery
.
length
())
{
sbUrl
.
append
(
"?"
).
append
(
sbQuery
);
}
}
return
sbUrl
.
toString
();
}
private
static
HttpClient
wrapClient
(
String
host
)
{
HttpClient
httpClient
=
new
DefaultHttpClient
();
if
(
host
.
startsWith
(
"https://"
))
{
sslClient
(
httpClient
);
}
return
httpClient
;
}
private
static
void
sslClient
(
HttpClient
httpClient
)
{
try
{
SSLContext
ctx
=
SSLContext
.
getInstance
(
"TLS"
);
X509TrustManager
tm
=
new
X509TrustManager
()
{
public
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
public
void
checkClientTrusted
(
X509Certificate
[]
xcs
,
String
str
)
{
}
public
void
checkServerTrusted
(
X509Certificate
[]
xcs
,
String
str
)
{
}
};
ctx
.
init
(
null
,
new
TrustManager
[]
{
tm
},
null
);
SSLSocketFactory
ssf
=
new
SSLSocketFactory
(
ctx
);
ssf
.
setHostnameVerifier
(
SSLSocketFactory
.
ALLOW_ALL_HOSTNAME_VERIFIER
);
ClientConnectionManager
ccm
=
httpClient
.
getConnectionManager
();
SchemeRegistry
registry
=
ccm
.
getSchemeRegistry
();
registry
.
register
(
new
Scheme
(
"https"
,
443
,
ssf
));
}
catch
(
KeyManagementException
ex
)
{
throw
new
RuntimeException
(
ex
);
}
catch
(
NoSuchAlgorithmException
ex
)
{
throw
new
RuntimeException
(
ex
);
}
}
}
pz-system/src/main/java/com/pz/system/datastructure/OrderDelayQueue.java
View file @
1a06bd22
...
...
@@ -4,6 +4,7 @@ import com.pz.system.domain.TotalOrder;
import
com.pz.system.domain.bo.TotalOrderBo
;
import
com.pz.system.mapper.TotalOrderMapper
;
import
com.pz.system.service.ITotalOrderService
;
import
com.pz.system.service.IZqghOrderService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
...
...
@@ -14,8 +15,8 @@ import java.util.concurrent.DelayQueue;
public
class
OrderDelayQueue
{
private
DelayQueue
<
TotalOrder
>
delayQueue
=
new
DelayQueue
<>();
/*
@Autowired
private
TotalOrderMapper iTotalOrderService;*/
@Autowired
private
IZqghOrderService
iZqghOrderService
;
// 添加订单到延时队列
public
void
addOrder
(
TotalOrder
order
)
{
...
...
@@ -44,6 +45,6 @@ public class OrderDelayQueue {
totalOrderBo
.
setId
(
order
.
getId
());
// 执行取消订单的相关操作
//iTotal
OrderService.cancelOrder(totalOrderBo);
iZqgh
OrderService
.
cancelOrder
(
totalOrderBo
);
}
}
pz-system/src/main/java/com/pz/system/domain/bo/TotalOrderBo.java
View file @
1a06bd22
...
...
@@ -90,4 +90,11 @@ public class TotalOrderBo extends BaseEntity {
private
String
orderTitle
;
private
String
openid
;
/**
* 流水单号
*/
private
String
logisticsCode
;
private
String
phone
;
}
pz-system/src/main/java/com/pz/system/domain/vo/StoreApplyVo.java
View file @
1a06bd22
...
...
@@ -119,6 +119,7 @@ public class StoreApplyVo extends BaseEntity {
@ExcelProperty
(
value
=
""
)
private
Integer
status
;
private
String
remark
;
/**
* 商品
*/
...
...
pz-system/src/main/java/com/pz/system/domain/vo/StoreGoodsVo.java
View file @
1a06bd22
...
...
@@ -108,6 +108,10 @@ public class StoreGoodsVo extends BaseEntity {
@ExcelProperty
(
value
=
""
)
private
Integer
saleNum
;
private
Integer
num
;
private
Integer
addressId
;
private
List
<
Carousel
>
carousel
;
private
List
<
Integer
>
ids
;
...
...
@@ -115,4 +119,9 @@ public class StoreGoodsVo extends BaseEntity {
private
List
<
StoreGoodsTagVo
>
list
;
private
String
typeName
;
/**
* 流水单号
*/
private
String
logisticsCode
;
}
pz-system/src/main/java/com/pz/system/domain/vo/TotalOrderVo.java
View file @
1a06bd22
...
...
@@ -170,7 +170,7 @@ public class TotalOrderVo {
/**
* 就诊时间
*/
private
String
visitTime
;
private
Date
visitTime
;
/**
* 手机号
...
...
@@ -261,7 +261,7 @@ public class TotalOrderVo {
/**
* 取药方式:0-邮寄到家,1-送货上门
*/
private
String
way
;
private
Integer
way
;
/**
* 收件人
...
...
@@ -271,7 +271,7 @@ public class TotalOrderVo {
/**
* 收货地址
*/
private
String
adress
;
private
String
ad
d
ress
;
/**
* 详细地址
...
...
@@ -287,4 +287,24 @@ public class TotalOrderVo {
* 预约时间
*/
private
String
timeOfAppointment
;
/**
* 上次就医情况
*/
private
String
lastMedicalTreatmentSituation
;
/**
* 商品实体
*/
private
StoreGoodsVo
storeGoodsVo
;
/**
* 发货实体
*/
private
UserAddressVo
userAddressVo
;
/**
* 发货状态
*/
private
Object
object
;
}
pz-system/src/main/java/com/pz/system/service/ITotalOrderService.java
View file @
1a06bd22
...
...
@@ -139,4 +139,11 @@ public interface ITotalOrderService {
*/
AccompanyDemandVo
queryTotalOrderById
(
Long
id
);
/**
* 查询物流状态
* @return
*/
Object
selectLogisticsStatus
(
TotalOrderBo
totalOrderBo
);
}
pz-system/src/main/java/com/pz/system/service/IZqghOrderService.java
View file @
1a06bd22
package
com
.
pz
.
system
.
service
;
import
com.pz.common.enums.TotalOrderStatus
;
import
com.pz.common.exception.ServiceException
;
import
com.pz.system.domain.TotalOrder
;
import
com.pz.system.domain.ZqghOrder
;
import
com.pz.system.domain.bo.TotalOrderBo
;
import
com.pz.system.domain.vo.ZqghOrderVo
;
import
com.pz.system.domain.bo.ZqghOrderBo
;
import
com.pz.common.core.page.TableDataInfo
;
...
...
@@ -51,6 +55,13 @@ public interface IZqghOrderService {
Boolean
updateByBo
(
ZqghOrderBo
bo
);
/**
* 取消订单
* @param bo
* @return
*/
Boolean
cancelOrder
(
TotalOrderBo
bo
);
/**
* 校验并批量删除诊前挂号订单信息
*/
Boolean
deleteWithValidByIds
(
Collection
<
Integer
>
ids
,
Boolean
isValid
);
...
...
pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java
View file @
1a06bd22
...
...
@@ -5,9 +5,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult
;
import
com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult
;
import
com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest
;
import
com.pz.common.config.KbProperties
;
import
com.pz.common.core.domain.model.LoginUser
;
import
com.pz.common.core.page.TableDataInfo
;
import
com.pz.common.core.domain.PageQuery
;
...
...
@@ -18,6 +21,7 @@ import com.pz.common.enums.DBMYOrderStatus;
import
com.pz.common.enums.ShopOrderStatus
;
import
com.pz.common.enums.TotalOrderStatus
;
import
com.pz.common.exception.ServiceException
;
import
com.pz.common.utils.HttpUtils
;
import
com.pz.merchant.domain.vo.SonOrderVo
;
import
com.pz.merchant.mapper.EmployeesMapper
;
import
com.pz.merchant.service.ISonOrderService
;
...
...
@@ -27,15 +31,24 @@ import com.pz.system.datastructure.OrderDelayQueue;
import
com.pz.system.domain.*
;
import
com.pz.system.domain.bo.CreateOrderBo
;
import
com.pz.system.domain.vo.AccompanyDemandVo
;
import
com.pz.system.domain.vo.StoreGoodsVo
;
import
com.pz.system.domain.vo.UserAddressVo
;
import
com.pz.system.mapper.*
;
import
com.pz.system.service.IPayService
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.util.EntityUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.pz.system.domain.bo.TotalOrderBo
;
import
com.pz.system.domain.vo.TotalOrderVo
;
import
com.pz.system.service.ITotalOrderService
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.Map
;
import
java.util.HashMap
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
java.util.*
;
...
...
@@ -94,6 +107,10 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
private
final
OrderDelayQueue
delayQueue
;
private
final
KbProperties
kbProperties
;
private
final
UserAddressMapper
userAddressMapper
;
@Override
public
TotalOrderVo
queryById
(
Long
id
)
{
return
baseMapper
.
selectVoById
(
id
);
...
...
@@ -112,11 +129,14 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo
.
setServiceStatus
(
yypzOrder
.
getStatus
()
);
//totalOrderVo = BeanUtil.toBean(yypzOrder, TotalOrderVo.class);
totalOrderVo
.
setHospital
(
hospitalMapper
.
selectById
(
yypzOrder
.
getHid
()).
getName
());
totalOrderVo
.
setVisitor
(
userVsitorMapper
.
selectById
(
yypzOrder
.
getVisitor
()).
getName
());
totalOrderVo
.
setDepartment
(
departmentMapper
.
selectById
(
yypzOrder
.
getDid
()).
getTitle
());
totalOrderVo
.
setPhone
(
yypzOrder
.
getPhone
());
totalOrderVo
=
BeanUtil
.
toBean
(
yypzOrder
,
TotalOrderVo
.
class
);
totalOrderVo
.
setVisitTime
(
yypzOrder
.
getVisitTime
());
totalOrderVo
.
setOverTime
(
yypzOrder
.
getOverTime
());
totalOrderVo
.
setVoucher
(
yypzOrder
.
getVoucher
());
}
else
if
(
totalOrderVo
.
getBusinessId
()
==
2
)
{
// 代办挂号
...
...
@@ -125,9 +145,14 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo
.
setServiceStatus
(
dbghOrder
.
getStatus
()
);
//totalOrderVo = BeanUtil.toBean(dbghOrder, TotalOrderVo.class);
totalOrderVo
.
setHospital
(
hospitalMapper
.
selectById
(
dbghOrder
.
getHid
()).
getName
());
totalOrderVo
.
setDepartment
(
departmentMapper
.
selectById
(
dbghOrder
.
getDid
()).
getTitle
());
totalOrderVo
=
BeanUtil
.
toBean
(
dbghOrder
,
TotalOrderVo
.
class
);
totalOrderVo
.
setVisitor
(
userVsitorMapper
.
selectById
(
dbghOrder
.
getVisitor
()).
getName
());
totalOrderVo
.
setVisitTime
(
dbghOrder
.
getVisitTime
());
totalOrderVo
.
setOverTime
(
dbghOrder
.
getOverTime
());
totalOrderVo
.
setVoucher
(
dbghOrder
.
getVoucher
());
}
else
if
(
totalOrderVo
.
getBusinessId
()
==
3
)
{
// 代办问诊
...
...
@@ -136,9 +161,20 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo
.
setServiceStatus
(
dbwzOrder
.
getStatus
()
);
//totalOrderVo = BeanUtil.toBean(dbwzOrder, TotalOrderVo.class);
totalOrderVo
.
setDepartment
(
departmentMapper
.
selectById
(
dbwzOrder
.
getDid
()).
getTitle
());
totalOrderVo
.
setVisitor
(
userVsitorMapper
.
selectById
(
dbwzOrder
.
getVisitor
()).
getName
());
totalOrderVo
=
BeanUtil
.
toBean
(
dbwzOrder
,
TotalOrderVo
.
class
);
totalOrderVo
.
setVisitTime
(
dbwzOrder
.
getVisitTime
());
totalOrderVo
.
setChiefComplaint
(
dbwzOrder
.
getChiefComplaint
());
totalOrderVo
.
setHistoryOfPresentIllness
(
dbwzOrder
.
getHistoryOfPresentIllness
());
totalOrderVo
.
setPastHistory
(
dbwzOrder
.
getPastHistory
());
totalOrderVo
.
setLastMedicalTreatmentSituation
(
dbwzOrder
.
getLastMedicalTreatmentSituation
());
totalOrderVo
.
setPostTreatmentCondition
(
dbwzOrder
.
getPostTreatmentCondition
());
totalOrderVo
.
setRelatedReports
(
dbwzOrder
.
getRelatedReports
());
totalOrderVo
.
setServiceRequirements
(
dbwzOrder
.
getServiceRequirements
());
totalOrderVo
.
setOverTime
(
dbwzOrder
.
getOverTime
());
totalOrderVo
.
setVoucher
(
dbwzOrder
.
getVoucher
());
}
else
if
(
totalOrderVo
.
getBusinessId
()
==
4
)
{
// 住院陪护
...
...
@@ -146,12 +182,14 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo
.
setServiceStatus
(
zyphOrder
.
getStatus
()
);
//totalOrderVo = BeanUtil.toBean(zyphOrder, TotalOrderVo.class);
totalOrderVo
.
setHospital
(
hospitalMapper
.
selectById
(
zyphOrder
.
getHid
()).
getName
());
totalOrderVo
.
setVisitor
(
userVsitorMapper
.
selectById
(
zyphOrder
.
getVisitor
()).
getName
());
totalOrderVo
.
setDepartment
(
departmentMapper
.
selectById
(
zyphOrder
.
getDid
()).
getTitle
());
totalOrderVo
.
setPhrq
(
zyphOrder
.
getStartDay
()+
"-"
+
zyphOrder
.
getEndDay
());
totalOrderVo
.
setPhsj
(
zyphOrder
.
getStartTime
()+
"-"
+
zyphOrder
.
getEndTime
());
totalOrderVo
=
BeanUtil
.
toBean
(
zyphOrder
,
TotalOrderVo
.
class
);
totalOrderVo
.
setOverTime
(
zyphOrder
.
getOverTime
());
totalOrderVo
.
setVoucher
(
zyphOrder
.
getVoucher
());
}
else
if
(
totalOrderVo
.
getBusinessId
()
==
5
)
{
// 代办买药
...
...
@@ -159,6 +197,18 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo
.
setServiceStatus
(
dbmyOrder
.
getStatus
()
);
totalOrderVo
.
setYpName
(
dbmyOrder
.
getYpName
());
totalOrderVo
.
setYdAddress
(
dbmyOrder
.
getYdAddress
());
totalOrderVo
.
setIsCf
(
dbmyOrder
.
getIsCf
());
totalOrderVo
.
setPrescriptionAttachment
(
dbmyOrder
.
getPrescriptionAttachment
());
totalOrderVo
.
setWay
(
dbmyOrder
.
getWay
());
totalOrderVo
.
setRecipient
(
dbmyOrder
.
getRecipient
());
totalOrderVo
.
setAddress
(
dbmyOrder
.
getAddress
());
totalOrderVo
.
setAddressInfo
(
dbmyOrder
.
getAddressInfo
());
totalOrderVo
.
setPhone
(
dbmyOrder
.
getPhone
());
totalOrderVo
.
setIsRefrigerate
(
dbmyOrder
.
getIsRefrigerate
());
totalOrderVo
.
setOverTime
(
dbmyOrder
.
getOverTime
());
totalOrderVo
.
setVoucher
(
dbmyOrder
.
getVoucher
());
}
else
if
(
totalOrderVo
.
getBusinessId
()
==
6
)
{
// 诊前挂号
...
...
@@ -171,6 +221,8 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo
.
setDepartment
(
departmentMapper
.
selectById
(
zqghOrder
.
getDid
()).
getTitle
());
totalOrderVo
.
setHospital
(
hospitalMapper
.
selectById
(
zqghOrder
.
getHid
()).
getName
());
totalOrderVo
.
setTimeOfAppointment
(
zqghOrder
.
getTimeOfAppointment
());
totalOrderVo
.
setOverTime
(
zqghOrder
.
getOverTime
());
totalOrderVo
.
setVoucher
(
zqghOrder
.
getVoucher
());
}
else
if
(
totalOrderVo
.
getBusinessId
()
==
0
)
{
// 商城订单
...
...
@@ -179,10 +231,16 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
storeOrder
.
getStatus
()
);
StoreGoods
storeGoods
=
storeGoodsMapper
.
select
ById
(
storeOrder
.
getOrderId
());
StoreGoods
Vo
storeGoods
=
storeGoodsMapper
.
selectVo
ById
(
storeOrder
.
getOrderId
());
List
<
StoreGoodsTag
>
storeGoodsTags
=
storeGoodsTagMapper
.
selectList
(
new
LambdaQueryWrapper
<
StoreGoodsTag
>().
in
(
StoreGoodsTag:
:
getId
,
getTages
(
storeGoods
.
getTags
())).
select
(
StoreGoodsTag:
:
getTitle
));
totalOrderVo
.
setTags
(
storeGoodsTags
);
totalOrderVo
.
setStoreGoodsVo
(
storeGoods
);
UserAddressVo
userAddressVo
=
userAddressMapper
.
selectVoById
(
storeGoods
.
getAddressId
());
totalOrderVo
.
setUserAddressVo
(
userAddressVo
);
TotalOrderBo
totalOrderBo
=
new
TotalOrderBo
();
totalOrderBo
.
setId
(
totalOrderVo
.
getId
());
totalOrderBo
.
setPhone
(
userAddressVo
.
getPhone
());
totalOrderVo
.
setObject
(
selectLogisticsStatus
(
totalOrderBo
));
}
return
totalOrderVo
;
}
...
...
@@ -263,6 +321,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
List
<
StoreGoodsTag
>
storeGoodsTags
=
storeGoodsTagMapper
.
selectList
(
new
LambdaQueryWrapper
<
StoreGoodsTag
>().
in
(
StoreGoodsTag:
:
getId
,
getTages
(
storeGoods
.
getTags
())).
select
(
StoreGoodsTag:
:
getTitle
));
totalOrderVo
.
setTags
(
storeGoodsTags
);
totalOrderVo
.
setName
(
storeGoods
.
getTitle
());
}
});
...
...
@@ -330,8 +389,8 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo
.
setOrderSn
(
totalOrder
.
getId
()
+
""
);
totalOrderVo
.
setPayMoney
(
bo
.
getPayMoney
());
// 计算订单过期时间(当前时间加上
24小时
)
long
expirationTime
=
System
.
currentTimeMillis
()
+
TimeUnit
.
HOUR
S
.
toMillis
(
24
);
// 计算订单过期时间(当前时间加上
30分钟
)
long
expirationTime
=
System
.
currentTimeMillis
()
+
TimeUnit
.
MINUTE
S
.
toMillis
(
24
);
totalOrder
.
setExpirationTime
(
expirationTime
);
// 未付款的订单延迟24小时自动取消
delayQueue
.
addOrder
(
totalOrder
);
...
...
@@ -343,6 +402,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
YypzOrder
yypzOrder
=
BeanUtil
.
toBean
(
bo
,
YypzOrder
.
class
);
yypzOrder
.
setHid
(
bo
.
getHospitalId
());
yypzOrder
.
setDid
(
bo
.
getDepartmentId
());
yypzOrder
.
setVisitor
(
bo
.
getVisitorId
());
yypzOrderMapper
.
insert
(
yypzOrder
);
}
else
if
(
bo
.
getBusinessId
()
==
2
)
{
// 代办挂号
...
...
@@ -406,8 +466,8 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
@Override
public
Boolean
cancelOrder
(
TotalOrderBo
bo
)
{
TotalOrder
totalOrder
=
baseMapper
.
selectById
(
bo
.
getId
());
if
(
null
!=
totalOrder
.
getEmId
()
&&
totalOrder
.
getEmId
()
!=
0
)
{
//
预约陪诊
//
yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId,totalOrder));
if
(
totalOrder
.
getEmId
()
==
0
){
//
预约陪诊
//yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId,totalOrder));
totalOrder
.
setStatus
(
TotalOrderStatus
.
CANCEL
.
getCode
());
return
baseMapper
.
updateById
(
totalOrder
)
>
0
;
}
else
{
...
...
@@ -732,6 +792,69 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
return
order
;
}
@Override
public
Object
selectLogisticsStatus
(
TotalOrderBo
totalOrderBo
)
{
String
host
=
"http://kop.kuaidihelp.com"
;
String
path
=
"/api"
;
String
requestMethod
=
"POST"
;
Map
<
String
,
String
>
headers
=
new
HashMap
<
String
,
String
>();
//根据API的要求,定义相对应的Content-Type
headers
.
put
(
"Content-Type"
,
"application/x-www-form-urlencoded; charset=UTF-8"
);
Map
<
String
,
String
>
querys
=
new
HashMap
<
String
,
String
>();
Map
<
String
,
String
>
bodys
=
new
HashMap
<
String
,
String
>();
String
appId
=
kbProperties
.
getAppId
();
String
method
=
"express.info.get"
;
// 当前时间戳
String
ts
=
new
Date
().
getTime
()
+
""
;
String
appKey
=
kbProperties
.
getAppKey
();
// 计算签名
String
signStr
=
appId
+
method
+
ts
+
appKey
;
String
sign
=
getMD5
(
signStr
,
32
);
bodys
.
put
(
"app_id"
,
appId
);
bodys
.
put
(
"method"
,
method
);
bodys
.
put
(
"ts"
,
ts
);
bodys
.
put
(
"sign"
,
sign
);
ObjectMapper
objectMapper
=
new
ObjectMapper
();
Map
<
String
,
String
>
data
=
new
HashMap
<
String
,
String
>();
data
.
put
(
"waybill_codes"
,
totalOrderBo
.
getLogisticsCode
());
data
.
put
(
"result_sort"
,
"0"
);
if
(
null
!=
totalOrderBo
.
getPhone
()
&&
!
totalOrderBo
.
getPhone
().
equals
(
""
)){
data
.
put
(
"phone"
,
"1"
);
}
String
jsonStr
=
null
;
try
{
jsonStr
=
objectMapper
.
writeValueAsString
(
data
);
}
catch
(
JsonProcessingException
e
)
{
e
.
printStackTrace
();
}
// data参数是个json格式的字符串 建议使用函数或方法去生成
bodys
.
put
(
"data"
,
jsonStr
);
try
{
/**
* 重要提示如下:
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse
response
=
HttpUtils
.
doPost
(
host
,
path
,
requestMethod
,
headers
,
querys
,
bodys
);
System
.
out
.
println
(
response
.
toString
());
return
EntityUtils
.
toString
(
response
.
getEntity
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
ServiceException
();
}
}
public
String
getOrderSn
()
{
long
timestamp
=
System
.
currentTimeMillis
();
String
timestampStr
=
Long
.
toString
(
timestamp
);
...
...
@@ -756,4 +879,34 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
}
return
numberList
;
}
// 计算md5
public
static
String
getMD5
(
String
plainText
,
int
length
)
{
try
{
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
//获取MD5实例
md
.
update
(
plainText
.
getBytes
());
//此处传入要加密的byte类型值
byte
[]
digest
=
md
.
digest
();
//此处得到的是md5加密后的byte类型值
/*
下边的运算就是自己添加的一些二次小加密,记住这个千万不能弄错乱,
否则在解密的时候,你会发现值不对的(举例:在注册的时候加密方式是一种,
在我们登录的时候是不是还需要加密它的密码然后和数据库的进行比对,但是
最后我们发现,明明密码对啊,就是打不到预期效果,这时候你就要想一下,你是否
有改动前后的加密方式)
*/
int
i
;
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
offset
=
0
;
offset
<
digest
.
length
;
offset
++)
{
i
=
digest
[
offset
];
if
(
i
<
0
)
i
+=
256
;
if
(
i
<
16
)
sb
.
append
(
0
);
sb
.
append
(
Integer
.
toHexString
(
i
));
//通过Integer.toHexString方法把值变为16进制
}
return
sb
.
toString
().
substring
(
0
,
length
);
//从下标0开始,length目的是截取多少长度的值
}
catch
(
NoSuchAlgorithmException
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
}
pz-system/src/main/java/com/pz/system/service/impl/ZqghOrderServiceImpl.java
View file @
1a06bd22
...
...
@@ -7,9 +7,14 @@ import com.pz.common.core.domain.PageQuery;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.pz.common.enums.TotalOrderStatus
;
import
com.pz.common.exception.ServiceException
;
import
com.pz.merchant.domain.vo.SonOrderVo
;
import
com.pz.merchant.service.ISonOrderService
;
import
com.pz.system.domain.DbwzOrder
;
import
com.pz.system.domain.TotalOrder
;
import
com.pz.system.domain.bo.TotalOrderBo
;
import
com.pz.system.mapper.TotalOrderMapper
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
com.pz.system.domain.bo.ZqghOrderBo
;
...
...
@@ -33,6 +38,8 @@ public class ZqghOrderServiceImpl implements IZqghOrderService, ISonOrderService
private
final
ZqghOrderMapper
baseMapper
;
private
final
TotalOrderMapper
totalOrderMapper
;
/**
* 查询诊前挂号订单
*/
...
...
@@ -132,6 +139,18 @@ public class ZqghOrderServiceImpl implements IZqghOrderService, ISonOrderService
return
baseMapper
.
updateById
(
update
)
>
0
;
}
@Override
public
Boolean
cancelOrder
(
TotalOrderBo
bo
)
{
TotalOrder
totalOrder
=
totalOrderMapper
.
selectById
(
bo
.
getId
());
if
(
totalOrder
.
getEmId
()
==
0
){
//预约陪诊
//yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId,totalOrder));
totalOrder
.
setStatus
(
TotalOrderStatus
.
CANCEL
.
getCode
());
return
totalOrderMapper
.
updateById
(
totalOrder
)
>
0
;
}
else
{
throw
new
ServiceException
(
"该订单已分配给陪诊员,不允许取消订单!"
);
}
}
/**
* 保存前的数据校验
*/
...
...
pz-system/src/main/resources/mapper/merchant/EmployeesMapper.xml
View file @
1a06bd22
...
...
@@ -64,7 +64,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select
id=
"selectEmployees"
resultType=
"com.pz.merchant.domain.vo.EmployeesVo"
>
SELECT e.id, s.avatar as avatar,e.name,e.working_hours,(SUM(CASE WHEN o.is_satisfaction = 1 THEN 1 ELSE 0 END) / NULLIF(COUNT(o.is_satisfaction), 0)) * 100 AS satisfaction_rate
SELECT e.id,
s.avatar as avatar,
e.name,
e.start_year,
e.working_hours,
(SUM(CASE WHEN o.is_satisfaction = 1 THEN 1 ELSE 0 END) / NULLIF(COUNT(o.is_satisfaction), 0)) * 100 AS satisfaction_rate
FROM employees e
left join total_order o on o.em_id = e.id
left join company c on c.id = e.company_id
...
...
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