Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
ims-ci-test
Commits
8e645976
提交
8e645976
authored
8月 24, 2023
作者:
张小凤
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
AppletMsg(update)
上级
da73b547
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
678 行增加
和
36 行删除
+678
-36
pom.xml
csf-common/csf-common-model/pom.xml
+17
-0
AppletMsgVOS.java
...src/main/java/com/mmc/csf/infomation/vo/AppletMsgVOS.java
+38
-0
ApplyRefundVO.java
...rc/main/java/com/mmc/csf/infomation/vo/ApplyRefundVO.java
+28
-0
LoginSuccessDTO.java
...in/java/com/mmc/csf/release/auth/dto/LoginSuccessDTO.java
+16
-13
HttpsOpenUtil.java
...main/java/com/mmc/csf/release/constant/HttpsOpenUtil.java
+124
-0
WxApiUtilS.java
...rc/main/java/com/mmc/csf/release/constant/WxApiUtilS.java
+97
-0
WxMsgTemplete.java
...main/java/com/mmc/csf/release/constant/WxMsgTemplete.java
+12
-0
RequirementsController.java
...om/mmc/csf/release/controller/RequirementsController.java
+2
-2
RequirementsInfoDO.java
...c/csf/release/entity/requirements/RequirementsInfoDO.java
+13
-0
RequirementsServiceDO.java
...sf/release/entity/requirements/RequirementsServiceDO.java
+14
-0
ServiceRequirementsDO.java
...sf/release/entity/requirements/ServiceRequirementsDO.java
+2
-0
RequirementsService.java
...java/com/mmc/csf/release/service/RequirementsService.java
+2
-2
RequirementsServiceImpl.java
...mmc/csf/release/service/impl/RequirementsServiceImpl.java
+280
-4
application-dev.yml
release-service/src/main/resources/application-dev.yml
+2
-0
application-prod.yml
release-service/src/main/resources/application-prod.yml
+2
-0
RequirementsDao.xml
...rc/main/resources/mapper/requirements/RequirementsDao.xml
+29
-15
没有找到文件。
csf-common/csf-common-model/pom.xml
浏览文件 @
8e645976
...
@@ -13,6 +13,23 @@
...
@@ -13,6 +13,23 @@
<dependencies>
<dependencies>
<!-- 微信支付相关 -->
<dependency>
<groupId>
com.github.wechatpay-apiv3
</groupId>
<artifactId>
wechatpay-apache-httpclient
</artifactId>
<version>
0.4.9
</version>
</dependency>
<dependency>
<groupId>
com.github.wxpay
</groupId>
<artifactId>
wxpay-sdk
</artifactId>
<version>
0.0.3
</version>
</dependency>
<dependency>
<groupId>
com.github.wechatpay-apiv3
</groupId>
<artifactId>
wechatpay-java
</artifactId>
<version>
0.2.10
</version>
</dependency>
<!-- apache 提供的一些工具类 -->
<!-- apache 提供的一些工具类 -->
<dependency>
<dependency>
<groupId>
commons-codec
</groupId>
<groupId>
commons-codec
</groupId>
...
...
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/AppletMsgVOS.java
0 → 100644
浏览文件 @
8e645976
package
com
.
mmc
.
csf
.
infomation
.
vo
;
import
com.alibaba.fastjson.JSONObject
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
/**
* @Author small
* @Date 2023/8/24 10:49
* @Version 1.0
*/
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
AppletMsgVOS
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2124104608303700492L
;
@ApiModelProperty
(
value
=
"openid"
)
@NotBlank
private
String
touser
;
@ApiModelProperty
(
value
=
"模板ID"
)
@NotBlank
private
String
template_id
;
@ApiModelProperty
(
value
=
"点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。"
)
private
String
page
;
@ApiModelProperty
(
value
=
"模板内容"
)
private
JSONObject
data
;
@ApiModelProperty
(
value
=
"跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版"
)
private
String
miniprogram_state
;
@ApiModelProperty
(
value
=
"默认为zh_CN"
)
private
String
lang
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/ApplyRefundVO.java
0 → 100644
浏览文件 @
8e645976
package
com
.
mmc
.
csf
.
infomation
.
vo
;
import
com.wechat.pay.java.service.refund.model.GoodsDetail
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @Author small
* @Date 2023/8/24 14:09
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ApplyRefundVO
{
@ApiModelProperty
(
value
=
"商户订单号"
,
required
=
true
)
private
String
outTradeNo
;
@ApiModelProperty
(
value
=
"退款原因"
)
private
String
reason
;
@ApiModelProperty
(
value
=
"退款金额"
,
required
=
true
)
private
Long
refund
;
@ApiModelProperty
(
value
=
"商品信息(可填可不填)"
)
private
List
<
GoodsDetail
>
goodsDetail
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/release/auth/dto/LoginSuccessDTO.java
浏览文件 @
8e645976
package
com
.
mmc
.
csf
.
release
.
auth
.
dto
;
package
com
.
mmc
.
csf
.
release
.
auth
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -7,23 +8,25 @@ import lombok.NoArgsConstructor;
...
@@ -7,23 +8,25 @@ import lombok.NoArgsConstructor;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* @author 作者 geDuo
* @author 作者 geDuo
* @version 创建时间:2021年8月31日 下午8:06:14
* @version 创建时间:2021年8月31日 下午8:06:14
* @explain 类说明
* @explain 类说明
*/
*/
@Builder
@Builder
@Data
@Data
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
public
class
LoginSuccessDTO
implements
Serializable
{
public
class
LoginSuccessDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1200834589953161925L
;
private
static
final
long
serialVersionUID
=
-
1200834589953161925L
;
private
String
token
;
private
String
token
;
private
Integer
userAccountId
;
private
Integer
userAccountId
;
private
String
accountNo
;
private
String
accountNo
;
private
String
uid
;
private
String
uid
;
private
String
phoneNum
;
private
String
phoneNum
;
private
String
userName
;
private
String
userName
;
private
String
nickName
;
private
String
nickName
;
@ApiModelProperty
(
value
=
"openid"
)
private
String
openid
;
// private RoleInfoDTO roleInfo;
// private RoleInfoDTO roleInfo;
}
}
release-service/src/main/java/com/mmc/csf/release/constant/HttpsOpenUtil.java
0 → 100644
浏览文件 @
8e645976
package
com
.
mmc
.
csf
.
release
.
constant
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.PrintWriter
;
import
java.net.URL
;
import
java.net.URLConnection
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Author small
* @Date 2023/8/24 13:28
* @Version 1.0
*/
public
class
HttpsOpenUtil
{
/**
* http请求
*
* @param url 发送请求的URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return URL 所代表远程资源的响应结果
* @category 向指定URL发送GET方法的请求
*/
public
static
String
httpSendGet
(
String
url
,
String
param
)
{
String
result
=
""
;
BufferedReader
in
=
null
;
try
{
String
urlNameString
=
url
+
"?"
+
param
;
URL
realUrl
=
new
URL
(
urlNameString
);
// 打开和URL之间的连接
URLConnection
connection
=
realUrl
.
openConnection
();
// 设置通用的请求属性
connection
.
setRequestProperty
(
"accept"
,
"*/*"
);
connection
.
setRequestProperty
(
"connection"
,
"Keep-Alive"
);
connection
.
setRequestProperty
(
"user-agent"
,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"
);
// 建立实际的连接
connection
.
connect
();
// 获取所有响应头字段
Map
<
String
,
List
<
String
>>
map
=
connection
.
getHeaderFields
();
// 遍历所有的响应头字段
// for (String key : map.keySet()) {
// System.out.println(key + "--->" + map.get(key));
// }
// 定义 BufferedReader输入流来读取URL的响应
in
=
new
BufferedReader
(
new
InputStreamReader
(
connection
.
getInputStream
()));
String
line
;
while
((
line
=
in
.
readLine
())
!=
null
)
{
result
+=
line
;
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"发送GET请求出现异常!"
+
e
);
e
.
printStackTrace
();
}
// 使用finally块来关闭输入流
finally
{
try
{
if
(
in
!=
null
)
{
in
.
close
();
}
}
catch
(
Exception
e2
)
{
e2
.
printStackTrace
();
}
}
return
result
;
}
/**
* http请求
*
* @param url 发送请求的 URL
* @return 所代表远程资源的响应结果
* @category 向指定URL 发送POST方法的请求
*/
public
static
String
httpSendPost
(
String
url
,
String
param
)
{
PrintWriter
out
=
null
;
BufferedReader
in
=
null
;
String
result
=
""
;
try
{
URL
realUrl
=
new
URL
(
url
);
// 打开和URL之间的连接
URLConnection
conn
=
realUrl
.
openConnection
();
// 设置通用的请求属性
conn
.
setRequestProperty
(
"accept"
,
"*/*"
);
conn
.
setRequestProperty
(
"connection"
,
"Keep-Alive"
);
conn
.
setRequestProperty
(
"user-agent"
,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"
);
// 发送POST请求必须设置如下两行
conn
.
setDoOutput
(
true
);
conn
.
setDoInput
(
true
);
// 获取URLConnection对象对应的输出流
out
=
new
PrintWriter
(
conn
.
getOutputStream
());
// 发送请求参数
out
.
print
(
param
);
// flush输出流的缓冲
out
.
flush
();
// 定义BufferedReader输入流来读取URL的响应
in
=
new
BufferedReader
(
new
InputStreamReader
(
conn
.
getInputStream
()));
String
line
;
while
((
line
=
in
.
readLine
())
!=
null
)
{
result
+=
line
;
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"发送 POST 请求出现异常!"
+
e
);
e
.
printStackTrace
();
}
// 使用finally块来关闭输出流、输入流
finally
{
try
{
if
(
out
!=
null
)
{
out
.
close
();
}
if
(
in
!=
null
)
{
in
.
close
();
}
}
catch
(
IOException
ex
)
{
ex
.
printStackTrace
();
}
}
return
result
;
}
}
release-service/src/main/java/com/mmc/csf/release/constant/WxApiUtilS.java
0 → 100644
浏览文件 @
8e645976
package
com
.
mmc
.
csf
.
release
.
constant
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mmc.csf.common.util.json.JsonUtil
;
import
java.security.MessageDigest
;
import
java.util.Arrays
;
import
java.util.Map
;
/**
* @Author small
* @Date 2023/8/24 13:27
* @Version 1.0
*/
public
class
WxApiUtilS
{
// 与接口配置信息中的Token要一致
private
static
final
String
token
=
"MMCDingYueHaoToken2020"
;
public
static
boolean
checkSignature
(
String
signature
,
String
timestrap
,
String
nonce
)
{
String
[]
arr
=
new
String
[]{
token
,
timestrap
,
nonce
};
// 将token、timestamp、nonce三个参数进行字典序排序
Arrays
.
sort
(
arr
);
StringBuffer
buf
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
buf
.
append
(
arr
[
i
]);
}
String
temp
=
getSha1
(
buf
.
toString
());
return
temp
.
equals
(
signature
);
}
public
static
String
getSha1
(
String
str
)
{
if
(
null
==
str
||
str
.
length
()
==
0
)
{
return
null
;
}
char
hexDigits
[]
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
};
try
{
MessageDigest
mdTemp
=
MessageDigest
.
getInstance
(
"SHA1"
);
mdTemp
.
update
(
str
.
getBytes
(
"UTF-8"
));
byte
[]
md
=
mdTemp
.
digest
();
int
j
=
md
.
length
;
char
[]
buf
=
new
char
[
j
*
2
];
int
k
=
0
;
for
(
int
i
=
0
;
i
<
j
;
i
++)
{
byte
byTemp
=
md
[
i
];
buf
[
k
++]
=
hexDigits
[
byTemp
>>>
4
&
0xf
];
buf
[
k
++]
=
hexDigits
[
byTemp
&
0xf
];
}
return
new
String
(
buf
);
}
catch
(
Exception
e
)
{
return
null
;
}
}
/**
* 截取模板长度
*/
public
static
JSONObject
buildMsgJson
(
JSONObject
jsonObject
)
{
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
jsonObject
.
entrySet
())
{
if
(
entry
.
getKey
().
startsWith
(
"thing"
)
&&
entry
.
getValue
()
!=
null
)
{
String
json
=
JsonUtil
.
parseObjToJson
(
entry
.
getValue
());
JSONObject
obj
=
JSONObject
.
parseObject
(
json
);
String
str
=
obj
.
getString
(
"value"
);
if
(
str
.
length
()
>
20
)
{
obj
.
put
(
"value"
,
str
.
substring
(
0
,
17
)
+
"..."
);
entry
.
setValue
(
obj
);
}
}
if
(
entry
.
getKey
().
startsWith
(
"phrase"
)
&&
entry
.
getValue
()
!=
null
)
{
String
json
=
JsonUtil
.
parseObjToJson
(
entry
.
getValue
());
JSONObject
obj
=
JSONObject
.
parseObject
(
json
);
String
str
=
obj
.
getString
(
"value"
);
if
(
str
.
length
()
>
5
)
{
obj
.
put
(
"value"
,
str
.
substring
(
0
,
5
));
entry
.
setValue
(
obj
);
}
}
if
(
entry
.
getKey
().
startsWith
(
"character_string"
)
&&
entry
.
getValue
()
!=
null
)
{
String
json
=
JsonUtil
.
parseObjToJson
(
entry
.
getValue
());
JSONObject
obj
=
JSONObject
.
parseObject
(
json
);
String
str
=
obj
.
getString
(
"value"
);
if
(
str
.
length
()
>
32
)
{
obj
.
put
(
"value"
,
str
.
substring
(
0
,
29
)
+
"..."
);
entry
.
setValue
(
obj
);
}
}
}
return
jsonObject
;
}
}
release-service/src/main/java/com/mmc/csf/release/constant/WxMsgTemplete.java
0 → 100644
浏览文件 @
8e645976
package
com
.
mmc
.
csf
.
release
.
constant
;
/**
* @Author small
* @Date 2023/8/24 13:29
* @Version 1.0
*/
public
class
WxMsgTemplete
{
public
static
final
String
INDEMNIFY_FOR_PUBLICATION
=
"0C9uqQymP4k4qiYRA4r-sEHXti_yd3PjHjGMezuGOtc"
;
}
release-service/src/main/java/com/mmc/csf/release/controller/RequirementsController.java
浏览文件 @
8e645976
...
@@ -215,7 +215,7 @@ public class RequirementsController extends BaseController {
...
@@ -215,7 +215,7 @@ public class RequirementsController extends BaseController {
@PostMapping
(
"droneFlyerCancel"
)
@PostMapping
(
"droneFlyerCancel"
)
public
ResultBody
droneFlyerCancel
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"发布服务需求id"
,
required
=
true
)
@RequestParam
Integer
requirementsInfoId
)
{
public
ResultBody
droneFlyerCancel
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"发布服务需求id"
,
required
=
true
)
@RequestParam
Integer
requirementsInfoId
)
{
Integer
userAccountId
=
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
();
Integer
userAccountId
=
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
();
return
requirementsService
.
droneFlyerCancel
(
requirementsInfoId
,
userAccountId
);
return
requirementsService
.
droneFlyerCancel
(
requirementsInfoId
,
userAccountId
,
request
);
}
}
@ApiOperation
(
value
=
"new——小程序-—发布者单方便取消订单"
)
@ApiOperation
(
value
=
"new——小程序-—发布者单方便取消订单"
)
...
@@ -223,7 +223,7 @@ public class RequirementsController extends BaseController {
...
@@ -223,7 +223,7 @@ public class RequirementsController extends BaseController {
@PostMapping
(
"publisherCancel"
)
@PostMapping
(
"publisherCancel"
)
public
ResultBody
publisherCancel
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"发布服务需求id"
,
required
=
true
)
@RequestParam
Integer
requirementsInfoId
)
{
public
ResultBody
publisherCancel
(
HttpServletRequest
request
,
@ApiParam
(
value
=
"发布服务需求id"
,
required
=
true
)
@RequestParam
Integer
requirementsInfoId
)
{
Integer
userAccountId
=
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
();
Integer
userAccountId
=
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
();
return
requirementsService
.
publisherCancel
(
requirementsInfoId
,
userAccountId
);
return
requirementsService
.
publisherCancel
(
requirementsInfoId
,
userAccountId
,
request
);
}
}
@ApiOperation
(
value
=
"new——小程序-—结算:发布者修改任务佣金"
)
@ApiOperation
(
value
=
"new——小程序-—结算:发布者修改任务佣金"
)
...
...
release-service/src/main/java/com/mmc/csf/release/entity/requirements/RequirementsInfoDO.java
浏览文件 @
8e645976
...
@@ -119,6 +119,19 @@ public class RequirementsInfoDO implements Serializable {
...
@@ -119,6 +119,19 @@ public class RequirementsInfoDO implements Serializable {
@ApiModelProperty
(
value
=
"原因url"
)
@ApiModelProperty
(
value
=
"原因url"
)
private
String
url
;
private
String
url
;
@ApiModelProperty
(
value
=
"微信支付订单编号"
)
private
String
wechatPayOrderNumber
;
@ApiModelProperty
(
value
=
"发布者支付任务佣金 佣金金额"
)
private
BigDecimal
cashAmount
;
private
BigDecimal
weChat
;
private
BigDecimal
salaryAmount
;
public
RequirementsInfoVO
buildRequirementsInfoVO
()
{
public
RequirementsInfoVO
buildRequirementsInfoVO
()
{
return
RequirementsInfoVO
.
builder
().
id
(
this
.
id
).
requirementTypeId
(
this
.
requirementTypeId
).
userAccountId
(
this
.
userAccountId
).
publishName
(
this
.
publishName
)
return
RequirementsInfoVO
.
builder
().
id
(
this
.
id
).
requirementTypeId
(
this
.
requirementTypeId
).
userAccountId
(
this
.
userAccountId
).
publishName
(
this
.
publishName
)
...
...
release-service/src/main/java/com/mmc/csf/release/entity/requirements/RequirementsServiceDO.java
浏览文件 @
8e645976
package
com
.
mmc
.
csf
.
release
.
entity
.
requirements
;
package
com
.
mmc
.
csf
.
release
.
entity
.
requirements
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.mmc.csf.config.IsNullConvertZero
;
import
com.mmc.csf.config.IsNullConvertZero
;
import
com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO
;
import
com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -9,6 +10,7 @@ import lombok.NoArgsConstructor;
...
@@ -9,6 +10,7 @@ import lombok.NoArgsConstructor;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
/**
* @Author small
* @Author small
...
@@ -59,6 +61,18 @@ public class RequirementsServiceDO implements Serializable {
...
@@ -59,6 +61,18 @@ public class RequirementsServiceDO implements Serializable {
@ApiModelProperty
(
value
=
"任务流程id"
,
example
=
"任务流程id"
)
@ApiModelProperty
(
value
=
"任务流程id"
,
example
=
"任务流程id"
)
private
Integer
serviceFlowId
;
private
Integer
serviceFlowId
;
@ApiModelProperty
(
value
=
"发布者用户id"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"订单编号"
)
private
String
publisherNumber
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"任务佣金"
)
private
BigDecimal
percentagePenaltyOfOrder
;
@ApiModelProperty
(
value
=
"发布者订单的任务佣金"
)
private
BigDecimal
orderAmount
;
@ApiModelProperty
(
value
=
"抢单者openid"
)
private
String
openid
;
public
RequirementsServiceDO
(
PilotCertificationInteriorDTO
pilot
,
ServiceRequirementsDO
requirementsInfoDO
)
{
public
RequirementsServiceDO
(
PilotCertificationInteriorDTO
pilot
,
ServiceRequirementsDO
requirementsInfoDO
)
{
this
.
pilotCertificationId
=
pilot
.
getId
();
this
.
pilotCertificationId
=
pilot
.
getId
();
...
...
release-service/src/main/java/com/mmc/csf/release/entity/requirements/ServiceRequirementsDO.java
浏览文件 @
8e645976
...
@@ -134,6 +134,8 @@ public class ServiceRequirementsDO {
...
@@ -134,6 +134,8 @@ public class ServiceRequirementsDO {
@ApiModelProperty
(
value
=
"置顶/加急 云享金支付多少"
,
example
=
"100"
)
@ApiModelProperty
(
value
=
"置顶/加急 云享金支付多少"
,
example
=
"100"
)
@IsNullConvertZero
@IsNullConvertZero
private
BigDecimal
levelCashAmount
;
private
BigDecimal
levelCashAmount
;
@ApiModelProperty
(
value
=
"openid"
)
private
String
openid
;
public
ServiceRequirementsDO
(
ServiceRequirementsVO
serviceRequirementsVO
)
{
public
ServiceRequirementsDO
(
ServiceRequirementsVO
serviceRequirementsVO
)
{
...
...
release-service/src/main/java/com/mmc/csf/release/service/RequirementsService.java
浏览文件 @
8e645976
...
@@ -95,9 +95,9 @@ public interface RequirementsService {
...
@@ -95,9 +95,9 @@ public interface RequirementsService {
PageResult
myPreempt
(
Integer
userAccountId
,
MyPreemptQO
param
);
PageResult
myPreempt
(
Integer
userAccountId
,
MyPreemptQO
param
);
ResultBody
droneFlyerCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
);
ResultBody
droneFlyerCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
);
ResultBody
publisherCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
);
ResultBody
publisherCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
);
ResultBody
cancelAll
(
Integer
requirementsInfoId
,
Integer
userAccountId
);
ResultBody
cancelAll
(
Integer
requirementsInfoId
,
Integer
userAccountId
);
...
...
release-service/src/main/java/com/mmc/csf/release/service/impl/RequirementsServiceImpl.java
浏览文件 @
8e645976
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mmc.csf.common.util.json.JsonUtil
;
import
com.mmc.csf.common.util.json.JsonUtil
;
import
com.mmc.csf.common.util.page.PageResult
;
import
com.mmc.csf.common.util.page.PageResult
;
import
com.mmc.csf.common.util.web.HttpsRequestUtil
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.common.util.web.ResultEnum
;
import
com.mmc.csf.common.util.web.ResultEnum
;
import
com.mmc.csf.config.IsNullConvertZeroUtil
;
import
com.mmc.csf.config.IsNullConvertZeroUtil
;
...
@@ -12,6 +13,7 @@ import com.mmc.csf.infomation.qo.IndustryCaseQO;
...
@@ -12,6 +13,7 @@ import com.mmc.csf.infomation.qo.IndustryCaseQO;
import
com.mmc.csf.infomation.qo.MyPreemptQO
;
import
com.mmc.csf.infomation.qo.MyPreemptQO
;
import
com.mmc.csf.infomation.qo.MyPublishQO
;
import
com.mmc.csf.infomation.qo.MyPublishQO
;
import
com.mmc.csf.infomation.vo.*
;
import
com.mmc.csf.infomation.vo.*
;
import
com.mmc.csf.release.constant.*
;
import
com.mmc.csf.release.dao.RequirementsDao
;
import
com.mmc.csf.release.dao.RequirementsDao
;
import
com.mmc.csf.release.entity.requirements.*
;
import
com.mmc.csf.release.entity.requirements.*
;
import
com.mmc.csf.release.feign.PmsAppApi
;
import
com.mmc.csf.release.feign.PmsAppApi
;
...
@@ -37,8 +39,11 @@ import javax.servlet.http.HttpServletRequest;
...
@@ -37,8 +39,11 @@ import javax.servlet.http.HttpServletRequest;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
com
.
mmc
.
csf
.
common
.
util
.
redis
.
RedisConstant
.
createWxToken
;
/**
/**
* @author: zj
* @author: zj
* @Date: 2023/5/18 14:29
* @Date: 2023/5/18 14:29
...
@@ -69,10 +74,15 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -69,10 +74,15 @@ public class RequirementsServiceImpl implements RequirementsService {
@Value
(
"${iuav.pmsapp.url}"
)
@Value
(
"${iuav.pmsapp.url}"
)
private
String
pmsApp
;
private
String
pmsApp
;
@Value
(
"${iuav.payment.url}"
)
private
String
paymentApp
;
@Autowired
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
private
StringRedisTemplate
stringRedisTemplate
;
@Autowired
private
UserSystemConstant
userSystemConstant
;
@Override
@Override
public
ResultBody
listType
(
Integer
id
)
{
public
ResultBody
listType
(
Integer
id
)
{
List
<
RequirementsTypeDO
>
requirementsTypeDOList
=
requirementsDao
.
listTypeReq
(
id
);
List
<
RequirementsTypeDO
>
requirementsTypeDOList
=
requirementsDao
.
listTypeReq
(
id
);
...
@@ -491,20 +501,198 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -491,20 +501,198 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
@Override
@Override
public
ResultBody
droneFlyerCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
)
{
public
ResultBody
droneFlyerCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
RequirementsServiceDO
requirementsServiceDO
=
requirementsDao
.
droneFlyerCancel
(
requirementsInfoId
,
userAccountId
);
RequirementsServiceDO
requirementsServiceDO
=
requirementsDao
.
droneFlyerCancel
(
requirementsInfoId
,
userAccountId
);
Integer
serviceFlowId
=
requirementsServiceDO
.
getServiceFlowId
();
Integer
serviceFlowId
=
requirementsServiceDO
.
getServiceFlowId
();
if
(
serviceFlowId
!=
2
)
{
if
(
serviceFlowId
!=
2
)
{
return
ResultBody
.
error
(
ResultEnum
.
YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME
.
getResultMsg
());
return
ResultBody
.
error
(
ResultEnum
.
YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME
.
getResultMsg
());
}
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.9
);
BigDecimal
preemptTotalAmount
=
requirementsServiceDO
.
getPreemptTotalAmount
();
BigDecimal
percentagePenaltyOfOrder
=
preemptTotalAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
WalletFlowVO
walletFlowVO
=
new
WalletFlowVO
();
FlyerWalletFlowVO
flyerWalletFlowVO
=
new
FlyerWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
flyerWalletFlowVO
);
IsNullConvertZeroUtil
.
checkIsNull
(
walletFlowVO
);
PublisherWalletFlowVO
publisherWalletFlowVO
=
new
PublisherWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
walletFlowVO
);
flyerWalletFlowVO
.
setModeOfPayment
(
600
);
flyerWalletFlowVO
.
setPercentagePenaltyOfOrder
(
percentagePenaltyOfOrder
);
flyerWalletFlowVO
.
setUserAccountId
(
userAccountId
);
flyerWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
publisherWalletFlowVO
.
setUserAccountId
(
requirementsServiceDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setModeOfPayment
(
600
);
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
//任务佣金
requirementsServiceDO
.
setPercentagePenaltyOfOrder
(
percentagePenaltyOfOrder
);
//飞手单方面取消将20之二十退回到发布者佣金里面
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
requirementsDao
.
updateScene
(
requirementsInfoId
,
7
);
requirementsDao
.
updateInfo
(
requirementsInfoId
,
7
);
this
.
sendMsgFlyerInfoAuth
(
requirementsServiceDO
);
return
ResultBody
.
success
(
ResultEnum
.
PAYMENT_SUCCESS
.
getResultMsg
());
return
ResultBody
.
success
(
ResultEnum
.
PAYMENT_SUCCESS
.
getResultMsg
());
}
}
private
void
sendMsgFlyerInfoAuth
(
RequirementsServiceDO
requirementsServiceDO
)
{
//订单编号
JSONObject
value1
=
new
JSONObject
();
value1
.
put
(
"value"
,
requirementsServiceDO
.
getPublisherNumber
());
//订单金额
JSONObject
value2
=
new
JSONObject
();
value2
.
put
(
"value"
,
requirementsServiceDO
.
getOrderAmount
());
//下单时间
JSONObject
value3
=
new
JSONObject
();
value3
.
put
(
"value"
,
requirementsServiceDO
.
getCreateTime
());
//取消时间
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
// 设置日期格式
String
date
=
df
.
format
(
new
Date
());
JSONObject
value4
=
new
JSONObject
();
value4
.
put
(
"value"
,
date
);
/* //不通过原因
String reason = null;
if (param.getAuditStatus() == 1) {
reason = userAccountDO.getUserName() + match.getMessage();
}
if (param.getAuditStatus() == 2) {
PilotReasonDO pilotReasonDO = certificationDao.selectPilotReason(param.getReasonId());
reason = pilotReasonDO.getReason();
}
value4.put("value", reason);*/
JSONObject
value5
=
new
JSONObject
();
value5
.
put
(
"value"
,
""
);
JSONObject
datad
=
new
JSONObject
();
//订单编号
datad
.
put
(
"character_string2"
,
value1
);
//订单金额
datad
.
put
(
"amount3"
,
value2
);
//下单时间
datad
.
put
(
"date5"
,
value3
);
//取消时间
datad
.
put
(
"time7"
,
value4
);
//备注
datad
.
put
(
"thing4"
,
value5
);
AppletMsgVOS
appletMsgVO
=
new
AppletMsgVOS
();
appletMsgVO
.
setTouser
(
requirementsServiceDO
.
getOpenid
());
appletMsgVO
.
setTemplate_id
(
WxMsgTemplete
.
INDEMNIFY_FOR_PUBLICATION
);
appletMsgVO
.
setPage
(
"pages/welcome/index"
);
appletMsgVO
.
setData
(
datad
);
appletMsgVO
.
setMiniprogram_state
(
userSystemConstant
.
getMiniProgramState
());
appletMsgVO
.
setLang
(
"zh_CN"
);
sendUserAppletMsg
(
appletMsgVO
);
}
/**
* 小程序-用户端-发送消息
*/
public
ResultBody
sendUserAppletMsg
(
AppletMsgVOS
aMsg
)
{
System
.
out
.
println
(
"###########开始发送-小程序-用户端消息##########"
);
String
accessToken
=
null
;
try
{
accessToken
=
getStableAccessToken
();
System
.
out
.
println
(
"accesstoken:"
+
accessToken
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"accessToken获取失败:"
+
e
.
getMessage
());
return
ResultBody
.
error
(
ResultEnum
.
WX_ACCESS_TOKEN_ERROR
.
getResultCode
(),
ResultEnum
.
WX_ACCESS_TOKEN_ERROR
.
getResultMsg
()
+
e
.
getMessage
());
}
try
{
String
url
=
"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="
+
accessToken
;
aMsg
.
setData
(
WxApiUtilS
.
buildMsgJson
(
aMsg
.
getData
()));
System
.
out
.
println
(
aMsg
);
String
param
=
JsonUtil
.
parseObjToJson
(
aMsg
);
System
.
out
.
println
(
"参数:"
+
param
);
String
result
=
HttpsOpenUtil
.
httpSendPost
(
url
,
param
);
JSONObject
resJson
=
JSONObject
.
parseObject
(
result
);
if
(
"40001"
.
equals
(
resJson
.
getString
(
"errcode"
)))
{
UserSystemConstant
userSystemConstant
=
new
UserSystemConstant
();
stringRedisTemplate
.
delete
(
createWxToken
(
userSystemConstant
.
getWxAppId
()));
System
.
out
.
println
(
"accessToken二次获取失败:"
+
resJson
);
return
ResultBody
.
error
(
ResultEnum
.
WX_ACCESS_TOKEN_ERROR
.
getResultCode
(),
ResultEnum
.
WX_ACCESS_TOKEN_ERROR
.
getResultMsg
()
+
resJson
);
}
System
.
out
.
println
(
result
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"系统异常:"
+
e
.
getMessage
());
}
System
.
out
.
println
(
"###########结束发送-小程序-消息##########"
);
return
ResultBody
.
success
();
}
public
String
getStableAccessToken
()
{
//token有效期为7200s,需要保存起来,先从redis中获取accessToken,没有则请求获取
String
accessToken
=
stringRedisTemplate
.
opsForValue
().
get
(
WxConstant
.
IUAV_MINI_PROGRAM_STABLE_ACCESS_TOKEN
);
if
(
org
.
apache
.
commons
.
lang
.
StringUtils
.
isBlank
(
accessToken
))
{
Map
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
params
.
put
(
"grant_type"
,
"client_credential"
);
params
.
put
(
"appid"
,
userSystemConstant
.
getWxAppId
());
params
.
put
(
"secret"
,
userSystemConstant
.
getWxAppSecret
());
String
stableAccessTokenUrl
=
"https://api.weixin.qq.com/cgi-bin/stable_token"
;
String
res
=
null
;
try
{
res
=
HttpsRequestUtil
.
httpsRequest
(
stableAccessTokenUrl
,
"POST"
,
null
,
JSONObject
.
toJSONString
(
params
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
JSONObject
tokenResult
=
JSONObject
.
parseObject
(
res
);
if
(
res
.
indexOf
(
"access_token"
)
==
-
1
)
{
return
null
;
}
accessToken
=
tokenResult
.
getString
(
"access_token"
);
long
expiresIn
=
tokenResult
.
getLong
(
"expires_in"
);
//保存进redis
stringRedisTemplate
.
opsForValue
().
set
(
WxConstant
.
IUAV_MINI_PROGRAM_STABLE_ACCESS_TOKEN
,
accessToken
,
expiresIn
,
TimeUnit
.
SECONDS
);
return
accessToken
;
}
return
accessToken
;
}
@Override
@Override
public
ResultBody
publisherCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
)
{
public
ResultBody
publisherCancel
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
RequirementsInfoDO
requirementsInfoDO
=
requirementsDao
.
publisherCancel
(
requirementsInfoId
,
userAccountId
);
RequirementsInfoDO
requirementsInfoDO
=
requirementsDao
.
publisherCancel
(
requirementsInfoId
,
userAccountId
);
Integer
serviceFlowId
=
requirementsInfoDO
.
getServiceFlowId
();
Integer
serviceFlowId
=
requirementsInfoDO
.
getServiceFlowId
();
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
WalletFlowVO
walletFlowVO
=
new
WalletFlowVO
();
PublisherWalletFlowVO
publisherWalletFlowVO
=
new
PublisherWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
publisherWalletFlowVO
);
if
(
serviceFlowId
==
1
)
{
if
(
serviceFlowId
==
1
)
{
//飞手无责取消 将全部退回 不包含加急或者置顶
//支付
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsInfoDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
publisherWalletFlowVO
.
setModeOfPayment
(
200
);
publisherWalletFlowVO
.
setUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
}
if
(
requirementsInfoDO
.
getWechatPayOrderNumber
()
!=
null
&&
requirementsInfoDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
weChat
=
requirementsInfoDO
.
getWeChat
();
BigDecimal
multiply
=
weChat
.
multiply
(
new
BigDecimal
(
100
));
Long
longWeChat
=
multiply
.
longValue
();
applyRefundVO
.
setRefund
(
longWeChat
);
applyRefundVO
.
setOutTradeNo
(
requirementsInfoDO
.
getWechatPayOrderNumber
());
applyRefundVO
.
setReason
(
"退发布者微信支付的任务佣金"
);
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
return
ResultBody
.
success
(
ResultEnum
.
THE_AMOUNT_OF_THE_MISSION_WILL_BE_RETURNED
.
getResultMsg
());
return
ResultBody
.
success
(
ResultEnum
.
THE_AMOUNT_OF_THE_MISSION_WILL_BE_RETURNED
.
getResultMsg
());
}
}
if
(
serviceFlowId
!=
2
&&
serviceFlowId
!=
1
)
{
if
(
serviceFlowId
!=
2
&&
serviceFlowId
!=
1
)
{
...
@@ -512,6 +700,33 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -512,6 +700,33 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
//单方面取消订单并且飞手已经抢单
//单方面取消订单并且飞手已经抢单
if
(
serviceFlowId
==
2
)
{
if
(
serviceFlowId
==
2
)
{
BigDecimal
orderAmount
=
requirementsInfoDO
.
getOrderAmount
();
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.7
);
//剩余金额
BigDecimal
residueOrderAmount
=
orderAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
//先退微信 再退任务佣金 最后退云享金
BigDecimal
weChat
=
requirementsInfoDO
.
getWeChat
();
//微信需要退款多少金额
//微信金额大于扣除之后的金额
BigDecimal
refundCashAmount
=
new
BigDecimal
(
0
);
BigDecimal
refundSalaryAmount
=
new
BigDecimal
(
0
);
BigDecimal
refundWeChat
=
new
BigDecimal
(
0
);
if
(
weChat
.
compareTo
(
residueOrderAmount
)
==
1
)
{
refundWeChat
=
refundCashAmount
;
BigDecimal
multiply
=
weChat
.
multiply
(
new
BigDecimal
(
100
));
Long
longWeChat
=
multiply
.
longValue
();
applyRefundVO
.
setRefund
(
longWeChat
);
applyRefundVO
.
setReason
(
"扣除飞手百分之三十的费用"
);
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
return
ResultBody
.
success
(
ResultEnum
.
REFUND_PERCENTAGE
.
getResultMsg
());
return
ResultBody
.
success
(
ResultEnum
.
REFUND_PERCENTAGE
.
getResultMsg
());
}
}
return
ResultBody
.
success
();
return
ResultBody
.
success
();
...
@@ -563,6 +778,9 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -563,6 +778,9 @@ public class RequirementsServiceImpl implements RequirementsService {
@Override
@Override
public
ResultBody
publishService
(
ServiceRequirementsVO
serviceRequirementsVO
,
HttpServletRequest
request
)
{
public
ResultBody
publishService
(
ServiceRequirementsVO
serviceRequirementsVO
,
HttpServletRequest
request
)
{
//获取用户基本信息
UserAccountSimpleDTO
userAccountSimpleDTO
=
feignGetUserSimpleInfo
(
serviceRequirementsVO
.
getUserAccountId
(),
request
);
String
openid
=
userAccountSimpleDTO
.
getOpenid
();
//需要冻结的金额
//需要冻结的金额
WalletFlowVO
walletFlowVO
=
new
WalletFlowVO
();
WalletFlowVO
walletFlowVO
=
new
WalletFlowVO
();
// PublisherWalletFlowVO publisherWalletFlowVO = walletFlowVO.getPublisherWalletFlowVO();
// PublisherWalletFlowVO publisherWalletFlowVO = walletFlowVO.getPublisherWalletFlowVO();
...
@@ -706,10 +924,12 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -706,10 +924,12 @@ public class RequirementsServiceImpl implements RequirementsService {
if
(
userCashAmt
.
compareTo
(
tempTotalAmount
)
==
1
||
userCashAmt
.
compareTo
(
tempTotalAmount
)
==
0
)
{
if
(
userCashAmt
.
compareTo
(
tempTotalAmount
)
==
1
||
userCashAmt
.
compareTo
(
tempTotalAmount
)
==
0
)
{
// walletFlowVO.setCashAmount(tempTotalAmount);
// walletFlowVO.setCashAmount(tempTotalAmount);
publisherWalletFlowVO
.
setCashAmount
(
tempTotalAmount
);
publisherWalletFlowVO
.
setCashAmount
(
tempTotalAmount
);
requirementsInfoDO
.
setCashAmount
(
tempTotalAmount
);
tempTotalAmount
=
BigDecimal
.
ZERO
;
tempTotalAmount
=
BigDecimal
.
ZERO
;
}
else
{
}
else
{
tempTotalAmount
=
tempTotalAmount
.
subtract
(
userCashAmt
);
tempTotalAmount
=
tempTotalAmount
.
subtract
(
userCashAmt
);
publisherWalletFlowVO
.
setCashAmount
(
userCashAmt
);
publisherWalletFlowVO
.
setCashAmount
(
userCashAmt
);
requirementsInfoDO
.
setCashAmount
(
userCashAmt
);
}
}
}
}
break
;
break
;
...
@@ -717,10 +937,12 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -717,10 +937,12 @@ public class RequirementsServiceImpl implements RequirementsService {
if
(!(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
))
{
if
(!(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
))
{
if
(
userSalaryAmt
.
compareTo
(
tempTotalAmount
)
==
1
||
userSalaryAmt
.
compareTo
(
tempTotalAmount
)
==
0
)
{
if
(
userSalaryAmt
.
compareTo
(
tempTotalAmount
)
==
1
||
userSalaryAmt
.
compareTo
(
tempTotalAmount
)
==
0
)
{
publisherWalletFlowVO
.
setSalaryAmount
(
tempTotalAmount
);
publisherWalletFlowVO
.
setSalaryAmount
(
tempTotalAmount
);
requirementsInfoDO
.
setSalaryAmount
(
tempTotalAmount
);
tempTotalAmount
=
BigDecimal
.
ZERO
;
tempTotalAmount
=
BigDecimal
.
ZERO
;
}
else
{
}
else
{
tempTotalAmount
=
tempTotalAmount
.
subtract
(
userSalaryAmt
);
tempTotalAmount
=
tempTotalAmount
.
subtract
(
userSalaryAmt
);
publisherWalletFlowVO
.
setSalaryAmount
(
userSalaryAmt
);
publisherWalletFlowVO
.
setSalaryAmount
(
userSalaryAmt
);
requirementsInfoDO
.
setSalaryAmount
(
userSalaryAmt
);
}
}
}
}
...
@@ -808,11 +1030,10 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -808,11 +1030,10 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
}
}
}
}
requirementsInfoDO
.
setOpenid
(
openid
);
requirementsDao
.
addPublishService
(
requirementsInfoDO
);
requirementsDao
.
addPublishService
(
requirementsInfoDO
);
RequirementsAmountDO
requirementsAmountDO
=
new
RequirementsAmountDO
(
requirementsInfoDO
);
RequirementsAmountDO
requirementsAmountDO
=
new
RequirementsAmountDO
(
requirementsInfoDO
);
requirementsDao
.
addAmount
(
requirementsAmountDO
);
requirementsDao
.
addAmount
(
requirementsAmountDO
);
System
.
out
.
println
(
requirementsAmountDO
);
if
(
requirementsAmountDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
if
(
requirementsAmountDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountDO
.
getLevelCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountDO
.
getLevelCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
...
@@ -870,6 +1091,9 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -870,6 +1091,9 @@ public class RequirementsServiceImpl implements RequirementsService {
@Override
@Override
public
ResultBody
grabTheOrder
(
GrabTheOrderVO
grabTheOrderVO
,
HttpServletRequest
request
)
{
public
ResultBody
grabTheOrder
(
GrabTheOrderVO
grabTheOrderVO
,
HttpServletRequest
request
)
{
UserAccountSimpleDTO
userAccountSimpleDTO
=
feignGetUserSimpleInfo
(
grabTheOrderVO
.
getUserAccountId
(),
request
);
String
openid
=
userAccountSimpleDTO
.
getOpenid
();
ServiceRequirementsDO
requirementsInfoDO
=
requirementsDao
.
grabTheOrder
(
grabTheOrderVO
.
getRequirementsInfoId
());
ServiceRequirementsDO
requirementsInfoDO
=
requirementsDao
.
grabTheOrder
(
grabTheOrderVO
.
getRequirementsInfoId
());
if
(
grabTheOrderVO
.
getRequirementsInfoId
().
equals
(
requirementsInfoDO
.
getId
())
&&
grabTheOrderVO
.
getUserAccountId
().
equals
(
requirementsInfoDO
.
getUserAccountId
()))
{
if
(
grabTheOrderVO
.
getRequirementsInfoId
().
equals
(
requirementsInfoDO
.
getId
())
&&
grabTheOrderVO
.
getUserAccountId
().
equals
(
requirementsInfoDO
.
getUserAccountId
()))
{
return
ResultBody
.
error
(
"自己不能抢自己发布的需求"
);
return
ResultBody
.
error
(
"自己不能抢自己发布的需求"
);
...
@@ -904,6 +1128,7 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -904,6 +1128,7 @@ public class RequirementsServiceImpl implements RequirementsService {
totalAmount
=
totalAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
totalAmount
=
totalAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
grabTheOrderVO
.
getWechatPayOrderNumber
()
+
grabTheOrderVO
.
getUserAccountId
());
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
grabTheOrderVO
.
getWechatPayOrderNumber
()
+
grabTheOrderVO
.
getUserAccountId
());
GetOrderNumberDTO
orderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
GetOrderNumberDTO
orderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
IsNullConvertZeroUtil
.
checkIsNull
(
orderNumberDTO
);
//需要冻结的金额
//需要冻结的金额
FlyerWalletFlowVO
flyerWalletFlowVO
=
new
FlyerWalletFlowVO
();
FlyerWalletFlowVO
flyerWalletFlowVO
=
new
FlyerWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
flyerWalletFlowVO
);
IsNullConvertZeroUtil
.
checkIsNull
(
flyerWalletFlowVO
);
...
@@ -1073,6 +1298,18 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -1073,6 +1298,18 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
public
UserAccountSimpleDTO
feignGetUserSimpleInfo
(
Integer
userAccountId
,
HttpServletRequest
request
)
{
String
token
=
request
.
getHeader
(
"token"
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
add
(
"token"
,
token
);
HttpEntity
<
String
>
entity
=
new
HttpEntity
<>(
JSONObject
.
toJSONString
(
userAccountId
),
headers
);
ResponseEntity
<
UserAccountSimpleDTO
>
exchange1
=
restTemplate
.
exchange
(
userApp
+
"/userapp/user-account/feignGetUserSimpleInfo?userAccountId="
+
userAccountId
,
HttpMethod
.
GET
,
entity
,
UserAccountSimpleDTO
.
class
);
UserAccountSimpleDTO
body
=
exchange1
.
getBody
();
return
body
;
}
public
PilotCertificationInteriorDTO
feignInteriorDetailPilot
(
Integer
userAccountId
,
HttpServletRequest
request
)
{
public
PilotCertificationInteriorDTO
feignInteriorDetailPilot
(
Integer
userAccountId
,
HttpServletRequest
request
)
{
String
token
=
request
.
getHeader
(
"token"
);
String
token
=
request
.
getHeader
(
"token"
);
HttpHeaders
headers
=
new
HttpHeaders
();
HttpHeaders
headers
=
new
HttpHeaders
();
...
@@ -1085,6 +1322,45 @@ public class RequirementsServiceImpl implements RequirementsService {
...
@@ -1085,6 +1322,45 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
/**
* 退款
*/
public
ResultBody
applyRefund
(
ApplyRefundVO
applyRefundVO
,
String
token
)
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
add
(
"token"
,
token
);
HttpEntity
<
String
>
entity
=
new
HttpEntity
<>(
JSONObject
.
toJSONString
(
applyRefundVO
),
headers
);
ResponseEntity
<
Object
>
exchange
=
null
;
try
{
exchange
=
restTemplate
.
exchange
(
paymentApp
+
"/payment/wechat/applyRefund"
,
HttpMethod
.
POST
,
entity
,
Object
.
class
);
}
catch
(
RestClientException
e
)
{
return
ResultBody
.
error
(
ResultEnum
.
THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED
);
}
return
ResultBody
.
success
();
}
/**
* 公共调用
*
* @param walletFlowVO
* @param token
* @return
*/
public
ResultBody
flyerCancel
(
WalletFlowVO
walletFlowVO
,
String
token
)
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
add
(
"token"
,
token
);
HttpEntity
<
String
>
entity
=
new
HttpEntity
<>(
JSONObject
.
toJSONString
(
walletFlowVO
),
headers
);
ResponseEntity
<
Object
>
exchange
=
null
;
try
{
exchange
=
restTemplate
.
exchange
(
userApp
+
"/userapp/pay/feignWalletFlow"
,
HttpMethod
.
POST
,
entity
,
Object
.
class
);
}
catch
(
RestClientException
e
)
{
return
ResultBody
.
error
(
ResultEnum
.
THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED
);
}
return
ResultBody
.
success
();
}
public
ResultBody
walletFlow
(
FlyerWalletFlowVO
flyerWalletFlowVO
,
String
token
)
{
public
ResultBody
walletFlow
(
FlyerWalletFlowVO
flyerWalletFlowVO
,
String
token
)
{
HttpHeaders
headers
=
new
HttpHeaders
();
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
...
...
release-service/src/main/resources/application-dev.yml
浏览文件 @
8e645976
...
@@ -149,6 +149,8 @@ iuav:
...
@@ -149,6 +149,8 @@ iuav:
url
:
http://pms-svc:8099
url
:
http://pms-svc:8099
omsapp
:
omsapp
:
url
:
https://test.iuav.shop/oms/
url
:
https://test.iuav.shop/oms/
payment
:
url
:
https://test.iuav.shop
#mmc:
#mmc:
...
...
release-service/src/main/resources/application-prod.yml
浏览文件 @
8e645976
...
@@ -147,6 +147,8 @@ iuav:
...
@@ -147,6 +147,8 @@ iuav:
url
:
http://pms-svc:8099
url
:
http://pms-svc:8099
omsapp
:
omsapp
:
url
:
https://www.iuav.shop/oms/
url
:
https://www.iuav.shop/oms/
payment
:
url
:
https://www.iuav.shop
#mmc:
#mmc:
# appid: 80001
# appid: 80001
...
...
release-service/src/main/resources/mapper/requirements/RequirementsDao.xml
浏览文件 @
8e645976
...
@@ -293,11 +293,11 @@
...
@@ -293,11 +293,11 @@
require_description, create_time,
require_description, create_time,
update_time, task_start_time, task_end_time, task_address, longitude,
update_time, task_start_time, task_end_time, task_address, longitude,
latitude, publisher_number, insurance, publish,
latitude, publisher_number, insurance, publish,
service_flow_id, adcode, order_level_amount)
service_flow_id, adcode, order_level_amount
, openid
)
VALUES (#{serviceId}, #{userAccountId}, #{publishName}, #{publishPhone},
VALUES (#{serviceId}, #{userAccountId}, #{publishName}, #{publishPhone},
#{requireDescription}, NOW(),
#{requireDescription}, NOW(),
NOW(), #{taskStartTime}, #{taskEndTime}, #{taskAddress}, #{longitude},
NOW(), #{taskStartTime}, #{taskEndTime}, #{taskAddress}, #{longitude},
#{latitude}, #{publisherNumber}, #{insurance}, 1, 1, #{adcode}, #{orderLevelAmount});
#{latitude}, #{publisherNumber}, #{insurance}, 1, 1, #{adcode}, #{orderLevelAmount}
, #{openid}
);
</insert>
</insert>
<insert
id=
"addAmount"
parameterType=
"com.mmc.csf.release.entity.requirements.RequirementsAmountDO"
<insert
id=
"addAmount"
parameterType=
"com.mmc.csf.release.entity.requirements.RequirementsAmountDO"
...
@@ -355,10 +355,10 @@
...
@@ -355,10 +355,10 @@
INSERT INTO requirements_service(requirements_info_id, pilot_certification_id,
INSERT INTO requirements_service(requirements_info_id, pilot_certification_id,
pilot_certification_user_id, team_id, team_user_id, cash_amount, we_chat,
pilot_certification_user_id, team_id, team_user_id, cash_amount, we_chat,
salary_amount,
salary_amount,
wechat_pay_order_number, service_flow_id, preempt_total_amount)
wechat_pay_order_number, service_flow_id, preempt_total_amount
, openid
)
VALUES (#{requirementsInfoId}, #{pilotCertificationId}, #{pilotCertificationUserId},
VALUES (#{requirementsInfoId}, #{pilotCertificationId}, #{pilotCertificationUserId},
#{teamId}, #{teamUserId}, #{cashAmount}, #{weChat}, #{salaryAmount}, #{wechatPayOrderNumber}, 2,
#{teamId}, #{teamUserId}, #{cashAmount}, #{weChat}, #{salaryAmount}, #{wechatPayOrderNumber}, 2,
#{preemptTotalAmount});
#{preemptTotalAmount}
, #{openid}
);
</insert>
</insert>
<insert
id=
"arriveAtTheScene"
parameterType=
"com.mmc.csf.release.entity.requirements.ServiceArriveSceneDO"
<insert
id=
"arriveAtTheScene"
parameterType=
"com.mmc.csf.release.entity.requirements.ServiceArriveSceneDO"
...
@@ -379,7 +379,7 @@
...
@@ -379,7 +379,7 @@
UPDATE requirements_info
UPDATE requirements_info
set service_flow_id=#{serviceFlowId},
set service_flow_id=#{serviceFlowId},
update_time=NOW()
update_time=NOW()
where
requirements_info_
id = #{requirementsInfoId}
where id = #{requirementsInfoId}
</update>
</update>
<select
id=
"arriveAtTheSceneDetails"
resultType=
"com.mmc.csf.release.entity.requirements.ServiceArriveSceneDO"
>
<select
id=
"arriveAtTheSceneDetails"
resultType=
"com.mmc.csf.release.entity.requirements.ServiceArriveSceneDO"
>
...
@@ -560,8 +560,9 @@
...
@@ -560,8 +560,9 @@
ri.publish_phone,
ri.publish_phone,
ri.publisher_number,
ri.publisher_number,
ri.service_id,
ri.service_id,
r
i
.total_amount,
r
a
.total_amount,
ri.insurance,
ri.insurance,
rs.create_time,
sf.doing,
sf.doing,
sf.waiting,
sf.waiting,
sf.user_port,
sf.user_port,
...
@@ -569,19 +570,22 @@
...
@@ -569,19 +570,22 @@
sf.order_status,
sf.order_status,
ri.publish,
ri.publish,
rs.preempt_total_amount,
rs.preempt_total_amount,
r
s
.cash_amount,
r
a
.cash_amount,
r
s
.we_chat,
r
a
.we_chat,
r
s
.salary_amount,
r
a
.salary_amount,
rs.wechat_pay_order_number,
rs.wechat_pay_order_number,
rs.preempt_total_amount,
rs.preempt_total_amount,
rs.service_flow_id
rs.service_flow_id,
ra.order_amount,
ri.openid
FROM requirements_info ri
FROM requirements_info ri
LEFT JOIN requirements_type rt
LEFT JOIN requirements_type rt
ON rt.id = ri.requirement_type_id
ON rt.id = ri.requirement_type_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
INNER JOIN requirements_service rs ON ri.id = rs.requirements_info_id
INNER JOIN requirements_service rs ON ri.id = rs.requirements_info_id
WHERE rs.pilot_certification_user_id = #{userAccountId}
WHERE rs.pilot_certification_user_id = #{userAccountId}
and
rs.requirements_info_id = #{requirementsInfoId}
AND
rs.requirements_info_id = #{requirementsInfoId}
</select>
</select>
<select
id=
"publisherCancel"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
>
<select
id=
"publisherCancel"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
>
...
@@ -600,19 +604,29 @@
...
@@ -600,19 +604,29 @@
ri.publish_phone,
ri.publish_phone,
ri.publisher_number,
ri.publisher_number,
ri.service_id,
ri.service_id,
r
i
.total_amount,
r
a
.total_amount,
ri.insurance,
ri.insurance,
r
i
.order_level,
r
a
.order_level,
r
i
.order_amount,
r
a
.order_amount,
sf.doing,
sf.doing,
sf.waiting,
sf.waiting,
sf.user_port,
sf.user_port,
sf.flyer_port,
sf.flyer_port,
sf.order_status,
sf.order_status,
ri.publish
ri.publish,
ra.order_amount,
ra.we_chat,
ra.salary_amount,
ra.cash_amount,
ra.level_cash_amount,
ra.level_salary_amount,
ra.level_we_chat_amount,
ra.wechat_pay_order_number,
ri.service_flow_id
FROM requirements_info ri
FROM requirements_info ri
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
WHERE ri.user_account_id = #{userAccountId}
WHERE ri.user_account_id = #{userAccountId}
AND ri.id = #{requirementsInfoId}
AND ri.id = #{requirementsInfoId}
</select>
</select>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论