Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
ims-ci-test
Commits
408e1895
提交
408e1895
authored
11月 10, 2023
作者:
恶龙咆哮
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
d9b06cd4
64a44a71
显示空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
1205 行增加
和
478 行删除
+1205
-478
AgreePilotOrderDTO.java
...n/java/com/mmc/csf/infomation/dto/AgreePilotOrderDTO.java
+30
-0
FlowDictionaryAndTimeDTO.java
.../com/mmc/csf/infomation/dto/FlowDictionaryAndTimeDTO.java
+2
-0
AgreeOrRefusePilotQO.java
.../java/com/mmc/csf/infomation/qo/AgreeOrRefusePilotQO.java
+24
-0
GrabTheOrderVO.java
...c/main/java/com/mmc/csf/infomation/vo/GrabTheOrderVO.java
+2
-0
OnlyRequirementsInfoId.java
...ava/com/mmc/csf/infomation/vo/OnlyRequirementsInfoId.java
+18
-0
RequirementsInfoVO.java
...in/java/com/mmc/csf/infomation/vo/RequirementsInfoVO.java
+8
-0
ServiceRequirementsVO.java
...java/com/mmc/csf/infomation/vo/ServiceRequirementsVO.java
+4
-0
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
RequirementsController.java
...om/mmc/csf/release/controller/RequirementsController.java
+16
-0
RequirementsDao.java
...rc/main/java/com/mmc/csf/release/dao/RequirementsDao.java
+104
-0
RequirementsAmountDO.java
...csf/release/entity/requirements/RequirementsAmountDO.java
+16
-0
RequirementsInfoDO.java
...c/csf/release/entity/requirements/RequirementsInfoDO.java
+8
-0
ServiceRequirementsDO.java
...sf/release/entity/requirements/ServiceRequirementsDO.java
+5
-0
ServiceRequirementsSonDO.java
...release/entity/requirements/ServiceRequirementsSonDO.java
+188
-0
RequirementsService.java
...java/com/mmc/csf/release/service/RequirementsService.java
+17
-0
RequirementsServiceImpl.java
...mmc/csf/release/service/impl/RequirementsServiceImpl.java
+600
-455
RequirementsDao.xml
...rc/main/resources/mapper/requirements/RequirementsDao.xml
+162
-22
没有找到文件。
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/dto/AgreePilotOrderDTO.java
0 → 100644
浏览文件 @
408e1895
package
com
.
mmc
.
csf
.
infomation
.
dto
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @author 张培
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
AgreePilotOrderDTO
{
@ApiModelProperty
(
value
=
"订单id"
)
private
Integer
requirementsInfoId
;
@ApiModelProperty
(
value
=
"状态"
)
private
Integer
serviceFlowId
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
private
FlowDictionaryDTO
flowDictionaryDTO
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/dto/FlowDictionaryAndTimeDTO.java
浏览文件 @
408e1895
...
...
@@ -27,6 +27,8 @@ public class FlowDictionaryAndTimeDTO implements Serializable {
@ApiModelProperty
(
value
=
"抢单"
,
example
=
"抢单"
)
private
RequirementsServiceDTO
requirementsServiceDTO
;
@ApiModelProperty
(
value
=
"需求方同意"
,
example
=
"需求方同意"
)
private
AgreePilotOrderDTO
agreePilotOrderDTO
;
//抵达现场地址
// service_arrive_scene
@ApiModelProperty
(
value
=
"抵达现场"
,
example
=
"抵达现场"
)
...
...
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/qo/AgreeOrRefusePilotQO.java
0 → 100644
浏览文件 @
408e1895
package
com
.
mmc
.
csf
.
infomation
.
qo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author 张培
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
AgreeOrRefusePilotQO
{
@ApiModelProperty
(
value
=
"订单id"
)
private
Integer
requireInfoId
;
@ApiModelProperty
(
value
=
"同意传2 进入飞手到达现场 拒绝传 11"
)
private
Integer
serviceFlowId
;
@ApiModelProperty
(
value
=
"接单飞手的user_id"
)
private
Integer
pilotCertificationUserId
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/GrabTheOrderVO.java
浏览文件 @
408e1895
...
...
@@ -51,5 +51,7 @@ public class GrabTheOrderVO {
@ApiModelProperty
(
value
=
"手机号"
,
hidden
=
true
)
private
String
phoneNum
;
@ApiModelProperty
(
value
=
"订单需求总人数"
)
private
Integer
requireNum
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/OnlyRequirementsInfoId.java
0 → 100644
浏览文件 @
408e1895
package
com
.
mmc
.
csf
.
infomation
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author 张培
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
OnlyRequirementsInfoId
{
@ApiModelProperty
(
value
=
"订单id"
)
private
Integer
requirementsInfoId
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/RequirementsInfoVO.java
浏览文件 @
408e1895
...
...
@@ -64,6 +64,8 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty
(
value
=
"任务纬度"
,
example
=
"44.344324"
)
private
Double
latitude
;
@ApiModelProperty
(
value
=
"订单的父订单id"
)
private
Integer
fatherRequireId
;
@ApiModelProperty
(
value
=
"需求描述"
,
example
=
"描述一下"
,
required
=
true
)
@NotNull
(
message
=
"需求描述不能为空"
,
groups
=
{
Insert
.
class
})
...
...
@@ -183,4 +185,10 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"还剩多少人可以抢单"
)
private
Integer
repertory
;
@ApiModelProperty
(
value
=
"订单共需多少人"
)
private
Integer
requireNum
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/ServiceRequirementsVO.java
浏览文件 @
408e1895
...
...
@@ -113,4 +113,8 @@ public class ServiceRequirementsVO implements Serializable {
@ApiModelProperty
(
value
=
"区编码"
,
required
=
false
)
private
Integer
districtCode
;
@ApiModelProperty
(
value
=
"订单总共需要多少人"
)
private
Integer
requireNum
;
}
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
408e1895
...
...
@@ -18,4 +18,4 @@ patches:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims
newTag
:
5b768dd050a69db88baacd372d9ebf0fb137f30a
newTag
:
97386bd54f4c23cce1e94e1ed1602aaa7512b695
release-service/src/main/java/com/mmc/csf/release/controller/RequirementsController.java
浏览文件 @
408e1895
...
...
@@ -2,6 +2,7 @@ package com.mmc.csf.release.controller;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.infomation.dto.*
;
import
com.mmc.csf.infomation.qo.AgreeOrRefusePilotQO
;
import
com.mmc.csf.infomation.qo.IndustryCaseQO
;
import
com.mmc.csf.infomation.qo.MyPreemptQO
;
import
com.mmc.csf.infomation.qo.MyPublishQO
;
...
...
@@ -13,6 +14,7 @@ import com.mmc.csf.release.model.group.Page;
import
com.mmc.csf.release.model.group.Update
;
import
com.mmc.csf.release.service.RequirementsService
;
import
io.swagger.annotations.*
;
import
io.swagger.models.auth.In
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -358,5 +360,19 @@ public class RequirementsController extends BaseController {
return
requirementsService
.
deleteRequire
(
requirementsInfoId
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
@ApiOperation
(
value
=
"小程序—获取子订单详细信息"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"selectRequireSonInfo"
)
public
ResultBody
<
RequirementsInfoVO
>
selectRequireSonInfo
(
HttpServletRequest
request
,
@Validated
(
value
=
{
Page
.
class
})
@ApiParam
(
value
=
"查询所有子订单信息"
,
required
=
true
)
@RequestBody
MyPublishQO
param
){
return
ResultBody
.
success
(
requirementsService
.
selectRequireSonInfo
(
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
param
));
}
@ApiOperation
(
value
=
"小程序—发单方(同意/拒绝)该飞手"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"agreeOrRefusePilot"
)
public
ResultBody
agreeOrRefusePilot
(
@RequestBody
AgreeOrRefusePilotQO
param
)
{
return
requirementsService
.
agreeOrRefusePilot
(
param
);
}
}
release-service/src/main/java/com/mmc/csf/release/dao/RequirementsDao.java
浏览文件 @
408e1895
package
com
.
mmc
.
csf
.
release
.
dao
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.infomation.dto.*
;
import
com.mmc.csf.infomation.qo.AgreeOrRefusePilotQO
;
import
com.mmc.csf.infomation.qo.IndustryCaseQO
;
import
com.mmc.csf.infomation.qo.MyPreemptQO
;
import
com.mmc.csf.infomation.qo.MyPublishQO
;
...
...
@@ -85,6 +87,9 @@ public interface RequirementsDao {
void
addPublishService
(
ServiceRequirementsDO
requirementsInfoDO
);
void
addPublishServiceSon
(
ServiceRequirementsSonDO
serviceRequirementsSonDO
);
ServiceRequirementsDO
grabTheOrder
(
Integer
requirementsInfoId
);
void
updateGrabTheOrder
(
Integer
requirementsInfoId
,
Integer
repertory
);
...
...
@@ -158,6 +163,8 @@ public interface RequirementsDao {
ServiceArriveSceneDTO
serviceArriveSceneDTO
(
Integer
requirementsInfoId
);
AgreePilotOrderDTO
serviceAgreePilotOrderDTO
(
Integer
requirementsInfoId
);
ServiceFulfilATaskDTO
serviceFulfilATaskDTO
(
Integer
requirementsInfoId
);
ServiceSettleAccountsDTO
settleAccountsDTO
(
Integer
requirementsInfoId
);
...
...
@@ -217,4 +224,101 @@ public interface RequirementsDao {
BigDecimal
getServiceOrderAmount
();
/**
* 根据父订单获取子订单中没被抢的id
* @param fatherRequireId 父订单id
* @return {@link Integer} 没被抢的子订单id 只返回一个
*/
Integer
getRequirementsSonInfoId
(
Integer
fatherRequireId
);
/**
* 修改父订单中还需多少人字段
* @param fatherRequireId 父订单id
* @param fatherRepertory 还需多少人
* @return {@link Integer}
*/
Integer
updateRequirementsInfoRepertory
(
Integer
fatherRequireId
,
Integer
fatherRepertory
);
/**
* 查找用户有没有已经抢过这个多人订单了
* @param fatherRequireId 父订单id
* @param userId 抢单用户id
* @return {@link Integer}1 就是已经抢过这个订单了 0 就是没抢过
*/
Integer
selectBooleanByFatherIdAndUserId
(
Integer
fatherRequireId
,
Integer
userId
);
/**
* 根据父订单id 查找所有子订单信息
* @param param 父订单id
* @return {@link List}<{@link RequirementsInfoDO}>
*/
List
<
RequirementsInfoDO
>
selectRequireSonInfo
(
MyPublishQO
param
);
/**
* 保存飞手被同意或拒绝接单信息
* @param param 是否同意飞手信息
*/
void
insertAgreePilotOrder
(
AgreeOrRefusePilotQO
param
);
/**
* 根据订单id修改所需人数以及该订单的状态
* @param requireInfoId 订单id
*/
void
updateRequirementsInfoByRefusePilot
(
Integer
requireInfoId
);
/**
* 根据订单查找父订单id
* @param requireInfoId 订单id
* @return {@link Integer}
*/
Integer
selectFatherRequireIdBySonId
(
Integer
requireInfoId
);
/**
* 根据订单id查找该订单还需人数
* @param requireInfoId 订单id
* @return {@link Integer}
*/
Integer
selectRepertoryByRequireId
(
Integer
requireInfoId
);
/**
* 根据订单id和飞手用户id删除接单的信息
* @param requireInfoId 订单id
* @param pilotUserId 飞手id
* @return {@link Integer}
*/
Integer
updateRequirementsService
(
Integer
requireInfoId
,
Integer
pilotUserId
);
/**
* 根据订单id和飞手用户id查询该飞手是被拒绝还是同意
* @param requirementsId 订单id 对应requirement_info表的id
* @param userAccountId 用户的id
* @return {@link Integer} 2 就是同意 11 是拒绝
*/
Integer
selectServiceIdByRequireIdAndUserId
(
Integer
requirementsId
,
Integer
userAccountId
);
/**
* 根绝订单id获取所需总人数
* @param requirementsId 订单id
* @return {@link Integer}
*/
Integer
selectRequirementsNum
(
Integer
requirementsId
);
/**
* 根据父订单id查询不满足状态条件的子订单数量
* @param requirementsId 父订单id
* @return {@link Integer}
*/
Integer
selectServiceFlowIdByFatherId
(
Integer
requirementsId
);
/**
* 去抢单表中查看用户是否被拒绝过
* @param requireId 订单的id
* @param userAccountId 抢单飞手的用户id
* @return {@link Integer}
*/
Integer
selectRequirementsRefuse
(
Integer
requireId
,
Integer
userAccountId
);
}
release-service/src/main/java/com/mmc/csf/release/entity/requirements/RequirementsAmountDO.java
浏览文件 @
408e1895
...
...
@@ -98,6 +98,22 @@ public class RequirementsAmountDO implements Serializable {
this
.
levelWeChatAmount
=
requirementsInfoDO
.
getLevelWeChatAmount
();
this
.
levelCashAmount
=
requirementsInfoDO
.
getLevelCashAmount
();
}
public
RequirementsAmountDO
(
ServiceRequirementsSonDO
requirementsInfoDO
)
{
this
.
requirementsInfoId
=
requirementsInfoDO
.
getId
();
this
.
orderAmount
=
requirementsInfoDO
.
getOrderAmount
();
this
.
totalAmount
=
requirementsInfoDO
.
getTotalAmount
();
this
.
orderLevelAmount
=
requirementsInfoDO
.
getOrderLevelAmount
();
this
.
orderLevel
=
requirementsInfoDO
.
getOrderLevel
();
this
.
weChat
=
requirementsInfoDO
.
getWeChat
();
this
.
salaryAmount
=
requirementsInfoDO
.
getSalaryAmount
();
this
.
wechatPayOrderNumber
=
requirementsInfoDO
.
getWechatPayOrderNumber
();
this
.
userAccountId
=
requirementsInfoDO
.
getUserAccountId
();
this
.
cashAmount
=
requirementsInfoDO
.
getCashAmount
();
this
.
levelSalaryAmount
=
requirementsInfoDO
.
getLevelSalaryAmount
();
this
.
levelWeChatAmount
=
requirementsInfoDO
.
getLevelWeChatAmount
();
this
.
levelCashAmount
=
requirementsInfoDO
.
getLevelCashAmount
();
}
public
RequirementsAmountDO
(
ServiceRequirementsEditVO
requirementsEditVO
)
{
this
.
orderAmount
=
requirementsEditVO
.
getOrderAmount
();
...
...
release-service/src/main/java/com/mmc/csf/release/entity/requirements/RequirementsInfoDO.java
浏览文件 @
408e1895
...
...
@@ -93,6 +93,9 @@ public class RequirementsInfoDO implements Serializable {
@ApiModelProperty
(
value
=
"允许几人抢单"
,
example
=
"允许几人抢单"
)
private
Integer
repertory
;
@ApiModelProperty
(
value
=
"任务所需总人数"
)
private
Integer
requireNum
;
private
String
insurance
;
private
String
doing
;
...
...
@@ -177,6 +180,8 @@ public class RequirementsInfoDO implements Serializable {
@ApiModelProperty
(
value
=
"发布者openid"
)
private
String
openid
;
@ApiModelProperty
(
value
=
"订单的父订单id"
)
private
Integer
fatherRequireId
;
public
RequirementsInfoVO
buildRequirementsInfoVO
()
{
...
...
@@ -191,6 +196,7 @@ public class RequirementsInfoDO implements Serializable {
.
requireUrl
(
this
.
requireUrl
)
.
orderLevelEnum
(
this
.
orderLevel
)
.
serviceId
(
this
.
serviceId
)
.
fatherRequireId
(
this
.
fatherRequireId
)
.
serviceName
(
this
.
serviceName
)
.
totalAmount
(
this
.
totalAmount
)
.
insurance
(
this
.
insurance
)
...
...
@@ -211,6 +217,8 @@ public class RequirementsInfoDO implements Serializable {
.
preemptPhone
(
this
.
preemptPhone
)
.
pilotCertificationId
(
this
.
pilotCertificationId
)
.
createTime
(
this
.
createTime
)
.
repertory
(
this
.
repertory
)
.
requireNum
(
this
.
requireNum
)
.
build
();
}
...
...
release-service/src/main/java/com/mmc/csf/release/entity/requirements/ServiceRequirementsDO.java
浏览文件 @
408e1895
...
...
@@ -145,6 +145,8 @@ public class ServiceRequirementsDO {
@ApiModelProperty
(
value
=
"服务名称"
)
private
String
serviceName
;
@ApiModelProperty
(
value
=
"订单总共所需多少人"
)
private
Integer
requireNum
;
public
ServiceRequirementsDO
(
ServiceRequirementsVO
serviceRequirementsVO
)
{
this
.
id
=
serviceRequirementsVO
.
getId
();
...
...
@@ -172,5 +174,8 @@ public class ServiceRequirementsDO {
this
.
provinceCode
=
serviceRequirementsVO
.
getProvinceCode
();
this
.
cityCode
=
serviceRequirementsVO
.
getCityCode
();
this
.
districtCode
=
serviceRequirementsVO
.
getDistrictCode
();
this
.
requireNum
=
serviceRequirementsVO
.
getRequireNum
();
}
}
release-service/src/main/java/com/mmc/csf/release/entity/requirements/ServiceRequirementsSonDO.java
0 → 100644
浏览文件 @
408e1895
package
com
.
mmc
.
csf
.
release
.
entity
.
requirements
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mmc.csf.config.IsNullConvertZero
;
import
com.mmc.csf.infomation.vo.OrderLevelEnum
;
import
com.mmc.csf.release.model.group.Insert
;
import
com.mmc.csf.release.model.group.Update
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Date
;
/**
* @author 张培
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ServiceRequirementsSonDO
{
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"id不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
id
;
@ApiModelProperty
(
value
=
"id"
)
@NotBlank
(
message
=
"服务类型id不能为空"
,
groups
=
{
Insert
.
class
,
Update
.
class
})
private
Integer
serviceId
;
@ApiModelProperty
(
value
=
"飞行日期——任务开始时间"
,
example
=
"2023-07-25"
,
required
=
true
)
@NotNull
(
message
=
"任务开始时间不能为空"
,
groups
=
{
Insert
.
class
,
Update
.
class
})
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
taskStartTime
;
@ApiModelProperty
(
value
=
"飞行日期——任务结束时间"
,
example
=
"2023-07-26"
,
required
=
true
)
@NotNull
(
message
=
"任务开始时间不能为空"
,
groups
=
{
Insert
.
class
,
Update
.
class
})
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
taskEndTime
;
@ApiModelProperty
(
value
=
"飞行位置——任务地址"
,
example
=
"广东省深圳市"
,
required
=
true
)
@NotBlank
(
message
=
"任务地址不能为空"
,
groups
=
{
Insert
.
class
,
Update
.
class
})
private
String
taskAddress
;
@ApiModelProperty
(
value
=
"飞行位置——任务经度"
,
example
=
"23.344324"
)
private
Double
longitude
;
@ApiModelProperty
(
value
=
"飞行位置——任务纬度"
,
example
=
"44.344324"
)
private
Double
latitude
;
@ApiModelProperty
(
value
=
"省份编码"
,
required
=
false
)
//@NotNull(message = "省份编码不能为空", groups = {Insert.class})
private
Integer
provinceCode
;
@ApiModelProperty
(
value
=
"市编码"
,
required
=
false
)
private
Integer
cityCode
;
@ApiModelProperty
(
value
=
"区编码"
,
required
=
false
)
private
Integer
districtCode
;
@ApiModelProperty
(
value
=
"需求描述"
,
example
=
"描述一下"
,
required
=
true
)
@NotNull
(
message
=
"需求描述不能为空"
,
groups
=
{
Insert
.
class
})
@Length
(
max
=
300
,
message
=
"字符过长"
)
private
String
requireDescription
;
@ApiModelProperty
(
value
=
"订单金额"
,
example
=
"订单金额"
,
required
=
true
)
@NotNull
(
message
=
"订单金额"
,
groups
=
{
Insert
.
class
})
@IsNullConvertZero
private
BigDecimal
orderAmount
;
@ApiModelProperty
(
value
=
"飞手保险"
,
example
=
"飞手保险"
,
required
=
true
)
@NotNull
(
message
=
"飞手保险"
,
groups
=
{
Insert
.
class
})
private
String
insurance
;
@ApiModelProperty
(
value
=
"订单级别"
,
example
=
"订单级别"
,
required
=
true
)
@NotNull
(
message
=
"订单级别"
,
groups
=
{
Insert
.
class
})
private
OrderLevelEnum
orderLevelEnum
;
@ApiModelProperty
(
value
=
"后台获取token里面的用户id"
,
hidden
=
true
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"发布者姓名"
,
example
=
"张三"
)
private
String
publishName
;
@ApiModelProperty
(
value
=
"发布者电话"
,
example
=
"1892994543"
,
required
=
true
)
@NotNull
(
message
=
"发布者电话不能为空"
,
groups
=
{
Insert
.
class
})
private
String
publishPhone
;
@ApiModelProperty
(
value
=
"发布者订单编号"
)
private
String
publisherNumber
;
@ApiModelProperty
(
value
=
"0普通 100急单 300置顶"
)
@IsNullConvertZero
private
BigDecimal
orderLevelAmount
;
@ApiModelProperty
(
value
=
"订单级别 REGULAR_ORDER,RUSH_ORDER,TOP_ORDER"
)
private
String
orderLevel
;
@ApiModelProperty
(
value
=
"总金额"
,
example
=
"100"
,
required
=
true
)
@NotNull
(
message
=
"总金额"
,
groups
=
{
Insert
.
class
})
@IsNullConvertZero
private
BigDecimal
totalAmount
;
@ApiModelProperty
(
value
=
"云享金"
,
example
=
"10"
)
@IsNullConvertZero
private
BigDecimal
cashAmount
;
@ApiModelProperty
(
value
=
"佣金"
,
example
=
"10"
)
@IsNullConvertZero
private
BigDecimal
salaryAmount
;
@ApiModelProperty
(
value
=
"微信金额"
,
example
=
"10"
)
@IsNullConvertZero
private
BigDecimal
weChat
;
@ApiModelProperty
(
value
=
"微信支付订单编号"
,
example
=
"R202308191657303116170"
)
private
String
wechatPayOrderNumber
;
private
Integer
repertory
;
@ApiModelProperty
(
value
=
"支付方式,云享金:1,佣金:2,微信支付:3"
,
example
=
"1,2,3"
)
private
String
paymentType
;
@ApiModelProperty
(
value
=
"地区编码"
)
private
String
adcode
;
@IsNullConvertZero
@ApiModelProperty
(
value
=
"置顶/加急 佣金支付多少"
,
example
=
"100"
)
private
BigDecimal
levelSalaryAmount
;
@ApiModelProperty
(
value
=
"置顶/加急 微信支付多少"
,
example
=
"100"
)
@IsNullConvertZero
private
BigDecimal
levelWeChatAmount
;
@ApiModelProperty
(
value
=
"置顶/加急 云享金支付多少"
,
example
=
"100"
)
@IsNullConvertZero
private
BigDecimal
levelCashAmount
;
@ApiModelProperty
(
value
=
"openid"
)
private
String
openid
;
@ApiModelProperty
(
value
=
"服务名称"
)
private
String
serviceName
;
@ApiModelProperty
(
value
=
"订单总共所需多少人"
)
private
Integer
requireNum
;
@ApiModelProperty
(
value
=
"上级订单id"
)
private
Integer
fatherRequireId
;
public
ServiceRequirementsSonDO
(
ServiceRequirementsDO
serviceRequirementsDO
)
{
BigDecimal
decimalSum
=
new
BigDecimal
(
serviceRequirementsDO
.
getRequireNum
());
this
.
serviceId
=
serviceRequirementsDO
.
getServiceId
();
this
.
taskStartTime
=
serviceRequirementsDO
.
getTaskStartTime
();
this
.
taskEndTime
=
serviceRequirementsDO
.
getTaskEndTime
();
this
.
taskAddress
=
serviceRequirementsDO
.
getTaskAddress
();
this
.
longitude
=
serviceRequirementsDO
.
getLongitude
();
this
.
latitude
=
serviceRequirementsDO
.
getLatitude
();
this
.
provinceCode
=
serviceRequirementsDO
.
getProvinceCode
();
this
.
cityCode
=
serviceRequirementsDO
.
getCityCode
();
this
.
districtCode
=
serviceRequirementsDO
.
getDistrictCode
();
this
.
requireDescription
=
serviceRequirementsDO
.
getRequireDescription
();
this
.
orderAmount
=
serviceRequirementsDO
.
getOrderAmount
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
insurance
=
serviceRequirementsDO
.
getInsurance
();
this
.
orderLevelEnum
=
serviceRequirementsDO
.
getOrderLevelEnum
();
this
.
userAccountId
=
serviceRequirementsDO
.
getUserAccountId
();
this
.
publishName
=
serviceRequirementsDO
.
getPublishName
();
this
.
publishPhone
=
serviceRequirementsDO
.
getPublishPhone
();
this
.
publisherNumber
=
serviceRequirementsDO
.
getPublisherNumber
();
this
.
orderLevelAmount
=
serviceRequirementsDO
.
getOrderLevelAmount
();
this
.
orderLevel
=
serviceRequirementsDO
.
getOrderLevel
();
this
.
totalAmount
=
serviceRequirementsDO
.
getTotalAmount
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
cashAmount
=
serviceRequirementsDO
.
getCashAmount
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
salaryAmount
=
serviceRequirementsDO
.
getSalaryAmount
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
weChat
=
serviceRequirementsDO
.
getWeChat
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
wechatPayOrderNumber
=
serviceRequirementsDO
.
getWechatPayOrderNumber
();
this
.
repertory
=
1
;
this
.
paymentType
=
serviceRequirementsDO
.
getPaymentType
();
this
.
adcode
=
serviceRequirementsDO
.
getAdcode
();
this
.
levelSalaryAmount
=
serviceRequirementsDO
.
getLevelSalaryAmount
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
levelWeChatAmount
=
serviceRequirementsDO
.
getLevelWeChatAmount
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
levelCashAmount
=
serviceRequirementsDO
.
getLevelCashAmount
().
divide
(
decimalSum
,
2
,
RoundingMode
.
HALF_UP
);
this
.
openid
=
serviceRequirementsDO
.
getOpenid
();
this
.
serviceName
=
serviceRequirementsDO
.
getServiceName
();
this
.
requireNum
=
1
;
this
.
fatherRequireId
=
serviceRequirementsDO
.
getId
();
}
}
release-service/src/main/java/com/mmc/csf/release/service/RequirementsService.java
浏览文件 @
408e1895
...
...
@@ -3,6 +3,7 @@ package com.mmc.csf.release.service;
import
com.mmc.csf.common.util.page.PageResult
;
import
com.mmc.csf.common.util.web.ResultBody
;
import
com.mmc.csf.infomation.dto.*
;
import
com.mmc.csf.infomation.qo.AgreeOrRefusePilotQO
;
import
com.mmc.csf.infomation.qo.IndustryCaseQO
;
import
com.mmc.csf.infomation.qo.MyPreemptQO
;
import
com.mmc.csf.infomation.qo.MyPublishQO
;
...
...
@@ -126,4 +127,20 @@ public interface RequirementsService {
ResultBody
flyHandAgree
(
FlyHandAgreeVO
agreeVO
,
HttpServletRequest
request
);
ServiceRequirementsDO
getRepertory
(
GrabTheOrderVO
grabTheOrderVO
,
HttpServletRequest
request
);
/**
* 根据父订单的id找到所有子订单信息
* @param userAccountId 发单人的id
* @param param 条件 父id在里面
* @return {@link PageResult}
*/
PageResult
selectRequireSonInfo
(
Integer
userAccountId
,
MyPublishQO
param
);
/**
* 同意或者拒绝飞手接单
* @param param 参数
* @return {@link ResultBody}
*/
ResultBody
agreeOrRefusePilot
(
AgreeOrRefusePilotQO
param
);
}
release-service/src/main/java/com/mmc/csf/release/service/impl/RequirementsServiceImpl.java
浏览文件 @
408e1895
...
...
@@ -9,6 +9,7 @@ import com.mmc.csf.common.util.web.ResultBody;
import
com.mmc.csf.common.util.web.ResultEnum
;
import
com.mmc.csf.config.IsNullConvertZeroUtil
;
import
com.mmc.csf.infomation.dto.*
;
import
com.mmc.csf.infomation.qo.AgreeOrRefusePilotQO
;
import
com.mmc.csf.infomation.qo.IndustryCaseQO
;
import
com.mmc.csf.infomation.qo.MyPreemptQO
;
import
com.mmc.csf.infomation.qo.MyPublishQO
;
...
...
@@ -23,11 +24,14 @@ import com.mmc.csf.release.industry.IndustryTypeDTO;
import
com.mmc.csf.release.industry.UserPayInfoVO
;
import
com.mmc.csf.release.service.RequirementsService
;
import
com.mmc.csf.release.util.RestTemplateUtil
;
import
com.sun.xml.bind.v2.TODO
;
import
io.swagger.models.auth.In
;
import
lombok.extern.slf4j.Slf4j
;
import
org.gavaghan.geodesy.Ellipsoid
;
import
org.gavaghan.geodesy.GeodeticCalculator
;
import
org.gavaghan.geodesy.GeodeticCurve
;
import
org.gavaghan.geodesy.GlobalCoordinates
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
...
...
@@ -218,6 +222,15 @@ public class RequirementsServiceImpl implements RequirementsService {
if
(
requirementsInfoVO
.
getPublish
()
==
0
)
{
requirementsInfoVO
.
setPublishPhone
(
""
);
}
Integer
status
=
requirementsDao
.
selectServiceIdByRequireIdAndUserId
(
id
,
userAccountId
);
if
(
status
==
null
)
{
return
ResultBody
.
success
(
requirementsInfoVO
);
}
//如果该飞手被拒绝 需要修改当前订单的状态
if
(
requirementsDao
.
selectServiceIdByRequireIdAndUserId
(
id
,
userAccountId
)
==
11
)
{
requirementsInfoVO
.
setOrderStatus
(
"170"
);
}
return
ResultBody
.
success
(
requirementsInfoVO
);
}
...
...
@@ -720,97 +733,106 @@ public class RequirementsServiceImpl implements RequirementsService {
RequirementsServiceDO
requirementsServiceDO
=
requirementsDao
.
droneFlyerCancel
(
requirementsInfoId
,
userAccountId
);
IsNullConvertZeroUtil
.
checkIsNull
(
requirementsServiceDO
);
Integer
serviceFlowId
=
requirementsServiceDO
.
getServiceFlowId
();
if
(
serviceFlowId
!=
2
)
{
if
(
serviceFlowId
!=
10
)
{
return
ResultBody
.
error
(
ResultEnum
.
YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME
.
getResultMsg
());
}
else
{
//修改订单所需人数以及订单状态
requirementsDao
.
updateRequirementsInfoByRefusePilot
(
requirementsInfoId
);
requirementsDao
.
updateScene
(
requirementsInfoId
,
1
);
Integer
fatherRequireId
=
requirementsDao
.
selectFatherRequireIdBySonId
(
requirementsInfoId
);
Integer
repertory
=
requirementsDao
.
selectRepertoryByRequireId
(
fatherRequireId
);
requirementsDao
.
updateRequirementsInfoRepertory
(
fatherRequireId
,
repertory
);
return
ResultBody
.
success
();
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.9
);
BigDecimal
preemptTotalAmount
=
requirementsServiceDO
.
getPreemptTotalAmount
();
BigDecimal
percentagePenaltyOfOrder
=
preemptTotalAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
//平台抽取百分之十
BigDecimal
earnings
=
preemptTotalAmount
.
multiply
(
new
BigDecimal
(
0.1
)).
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
(
publisherWalletFlowVO
);
IsNullConvertZeroUtil
.
checkIsNull
(
walletFlowVO
);
flyerWalletFlowVO
.
setModeOfPayment
(
600
);
flyerWalletFlowVO
.
setPercentagePenaltyOfOrder
(
percentagePenaltyOfOrder
.
negate
());
flyerWalletFlowVO
.
setUserAccountId
(
userAccountId
);
flyerWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
//如果微信里面的钱大于需要扣除的钱
/* if (requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 1 ||
requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 0) {
//
}*/
//如果微信里面的钱小于需要扣除的金额
if
(
requirementsServiceDO
.
getWeChat
().
compareTo
(
preemptTotalAmount
)
==
-
1
)
{
//优先扣除微信的钱
BigDecimal
subtract
=
preemptTotalAmount
.
subtract
(
requirementsServiceDO
.
getWeChat
());
if
(
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
subtract
)
==
-
1
)
{
BigDecimal
sub2
=
subtract
.
subtract
(
requirementsServiceDO
.
getSalaryAmount
());
flyerWalletFlowVO
.
setSalaryCashPledge
(
requirementsServiceDO
.
getSalaryAmount
().
negate
());
if
(
sub2
.
compareTo
(
requirementsServiceDO
.
getCashAmount
())
==
0
||
sub2
.
compareTo
(
requirementsServiceDO
.
getCashAmount
())
==
-
1
)
{
//云享金扣除违约多少
flyerWalletFlowVO
.
setYxjCashPledge
(
sub2
.
negate
());
}
}
else
if
(
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
subtract
)
==
1
||
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
subtract
)
==
0
)
{
flyerWalletFlowVO
.
setSalaryCashPledge
(
subtract
.
negate
());
}
}
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
//给发布者退钱
publisherWalletFlowVO
.
setUserAccountId
(
infoDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setModeOfPayment
(
600
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setSalaryAmount
(
infoDO
.
getSalaryAmount
());
publisherWalletFlowVO
.
setCashAmount
(
infoDO
.
getCashAmount
());
//退云享金和佣金
if
(
infoDO
.
getOrderLevel
().
equals
(
"RUSH_ORDER"
))
{
publisherWalletFlowVO
.
setUrgentYxjAmount
(
infoDO
.
getLevelCashAmount
());
publisherWalletFlowVO
.
setUrgentSalaryAmount
(
infoDO
.
getLevelSalaryAmount
());
}
if
(
infoDO
.
getOrderLevel
().
equals
(
"TOP_ORDER"
))
{
publisherWalletFlowVO
.
setTopYxjAmount
(
infoDO
.
getLevelCashAmount
());
publisherWalletFlowVO
.
setTopSalaryAmount
(
infoDO
.
getLevelSalaryAmount
());
}
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
//给发布者微信退钱
String
wechatPayOrderNumber
=
infoDO
.
getWechatPayOrderNumber
();
if
(
wechatPayOrderNumber
!=
null
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
BigDecimal
weChat
=
infoDO
.
getWeChat
();
BigDecimal
levelWeChatAmount
=
infoDO
.
getLevelWeChatAmount
();
BigDecimal
add
=
weChat
.
add
(
levelWeChatAmount
);
long
longValue
=
add
.
multiply
(
new
BigDecimal
(
100
)).
longValue
();
applyRefundVO
.
setRefund
(
longValue
);
applyRefundVO
.
setReason
(
"退回微信支付金额"
);
applyRefundVO
.
setOutTradeNo
(
infoDO
.
getWechatPayOrderNumber
());
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
IsNullConvertZeroUtil
.
checkIsNull
(
infoDO
);
//任务佣金
requirementsServiceDO
.
setPercentagePenaltyOfOrder
(
percentagePenaltyOfOrder
);
//飞手单方面取消将20之二十退回到发布者佣金里面
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
requirementsServiceDO
.
setOrderEarnings
(
new
BigDecimal
(
0
));
BigDecimal
orderEarnings
=
requirementsServiceDO
.
getOrderEarnings
();
BigDecimal
add
=
orderEarnings
.
add
(
earnings
);
requirementsServiceDO
.
setOrderEarnings
(
add
);
requirementsServiceDO
.
setRequirementsInfoId
(
requirementsServiceDO
.
getId
());
requirementsDao
.
updateAmounts
(
requirementsServiceDO
);
// requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
requirementsDao
.
updatePlatformOrderEarnings
(
earnings
,
requirementsInfoId
,
userAccountId
);
requirementsDao
.
updateScene
(
requirementsInfoId
,
7
);
requirementsDao
.
updateInfo
(
requirementsInfoId
,
7
);
requirementsDao
.
updateFlow
(
requirementsInfoId
,
7
);
this
.
sendMsgPublishInfoAuth
(
requirementsServiceDO
);
return
ResultBody
.
success
(
ResultEnum
.
PAYMENT_SUCCESS
.
getResultMsg
());
// BigDecimal bigDecimal = new BigDecimal(0.9);
// BigDecimal preemptTotalAmount = requirementsServiceDO.getPreemptTotalAmount();
// BigDecimal percentagePenaltyOfOrder = preemptTotalAmount.multiply(bigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP);
// //平台抽取百分之十
// BigDecimal earnings = preemptTotalAmount.multiply(new BigDecimal(0.1)).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(publisherWalletFlowVO);
// IsNullConvertZeroUtil.checkIsNull(walletFlowVO);
// flyerWalletFlowVO.setModeOfPayment(600);
// flyerWalletFlowVO.setPercentagePenaltyOfOrder(percentagePenaltyOfOrder.negate());
// flyerWalletFlowVO.setUserAccountId(userAccountId);
// flyerWalletFlowVO.setOperateUserAccountId(userAccountId);
// //如果微信里面的钱大于需要扣除的钱
// /* if (requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 1 ||
// requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 0) {
// //
// }*/
// //如果微信里面的钱小于需要扣除的金额
// if (requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == -1) {
// //优先扣除微信的钱
// BigDecimal subtract = preemptTotalAmount.subtract(requirementsServiceDO.getWeChat());
// if (requirementsServiceDO.getSalaryAmount().compareTo(subtract) == -1) {
// BigDecimal sub2 = subtract.subtract(requirementsServiceDO.getSalaryAmount());
// flyerWalletFlowVO.setSalaryCashPledge(requirementsServiceDO.getSalaryAmount().negate());
// if (sub2.compareTo(requirementsServiceDO.getCashAmount()) == 0 ||
// sub2.compareTo(requirementsServiceDO.getCashAmount()) == -1) {
// //云享金扣除违约多少
// flyerWalletFlowVO.setYxjCashPledge(sub2.negate());
// }
// } else if (requirementsServiceDO.getSalaryAmount().compareTo(subtract) == 1 ||
// requirementsServiceDO.getSalaryAmount().compareTo(subtract) == 0) {
// flyerWalletFlowVO.setSalaryCashPledge(subtract.negate());
// }
// }
// walletFlowVO.setFlyerWalletFlowVO(flyerWalletFlowVO);
// //给发布者退钱
// publisherWalletFlowVO.setUserAccountId(infoDO.getUserAccountId());
// publisherWalletFlowVO.setModeOfPayment(600);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setSalaryAmount(infoDO.getSalaryAmount());
// publisherWalletFlowVO.setCashAmount(infoDO.getCashAmount());
// //退云享金和佣金
// if (infoDO.getOrderLevel().equals("RUSH_ORDER")) {
// publisherWalletFlowVO.setUrgentYxjAmount(infoDO.getLevelCashAmount());
// publisherWalletFlowVO.setUrgentSalaryAmount(infoDO.getLevelSalaryAmount());
// }
// if (infoDO.getOrderLevel().equals("TOP_ORDER")) {
// publisherWalletFlowVO.setTopYxjAmount(infoDO.getLevelCashAmount());
// publisherWalletFlowVO.setTopSalaryAmount(infoDO.getLevelSalaryAmount());
// }
//
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// //给发布者微信退钱
// String wechatPayOrderNumber = infoDO.getWechatPayOrderNumber();
// if (wechatPayOrderNumber != null) {
// ApplyRefundVO applyRefundVO = new ApplyRefundVO();
// BigDecimal weChat = infoDO.getWeChat();
// BigDecimal levelWeChatAmount = infoDO.getLevelWeChatAmount();
// BigDecimal add = weChat.add(levelWeChatAmount);
// long longValue = add.multiply(new BigDecimal(100)).longValue();
// applyRefundVO.setRefund(longValue);
// applyRefundVO.setReason("退回微信支付金额");
// applyRefundVO.setOutTradeNo(infoDO.getWechatPayOrderNumber());
// applyRefund(applyRefundVO, request.getHeader("token"));
// }
// IsNullConvertZeroUtil.checkIsNull(infoDO);
//
// //任务佣金
// requirementsServiceDO.setPercentagePenaltyOfOrder(percentagePenaltyOfOrder);
// //飞手单方面取消将20之二十退回到发布者佣金里面
// flyerCancel(walletFlowVO, request.getHeader("token"));
// requirementsServiceDO.setOrderEarnings(new BigDecimal(0));
// BigDecimal orderEarnings = requirementsServiceDO.getOrderEarnings();
// BigDecimal add = orderEarnings.add(earnings);
// requirementsServiceDO.setOrderEarnings(add);
// requirementsServiceDO.setRequirementsInfoId(requirementsServiceDO.getId());
// requirementsDao.updateAmounts(requirementsServiceDO);
// // requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
// requirementsDao.updatePlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
// requirementsDao.updateScene(requirementsInfoId, 7);
// requirementsDao.updateInfo(requirementsInfoId, 7);
// requirementsDao.updateFlow(requirementsInfoId, 7);
// this.sendMsgPublishInfoAuth(requirementsServiceDO);
// return ResultBody.success(ResultEnum.PAYMENT_SUCCESS.getResultMsg());
}
...
...
@@ -1011,7 +1033,20 @@ public class RequirementsServiceImpl implements RequirementsService {
FlyerWalletFlowVO
flyerWalletFlowVO
=
new
FlyerWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
publisherWalletFlowVO
);
IsNullConvertZeroUtil
.
checkIsNull
(
flyerWalletFlowVO
);
if
(
serviceFlowId
==
1
)
{
Boolean
condition1
=
false
;
Boolean
condition2
=
false
;
//如果是多人订单 需要判断每一个子订单是否是在 1,10 状态
if
(
requirementsDao
.
selectRequirementsNum
(
requirementsInfoId
)
>
1
)
{
if
(
requirementsDao
.
selectServiceFlowIdByFatherId
(
requirementsInfoId
)
==
0
)
{
condition2
=
true
;
condition1
=
true
;
}
}
else
{
condition1
=
serviceFlowId
==
1
;
condition2
=
serviceFlowId
==
10
;
}
if
(
condition1
||
condition2
)
{
//飞手无责取消 将全部退回 不包含加急或者置顶
//支付
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
...
...
@@ -1047,195 +1082,197 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao
.
updateInfo
(
requirementsInfoId
,
7
);
requirementsDao
.
updateFlow
(
requirementsInfoId
,
7
);
return
ResultBody
.
success
(
ResultEnum
.
THE_AMOUNT_OF_THE_MISSION_WILL_BE_RETURNED
.
getResultMsg
());
}
if
(
serviceFlowId
!=
2
&&
serviceFlowId
!=
1
)
{
}
else
{
return
ResultBody
.
error
(
ResultEnum
.
YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME
.
getResultMsg
());
}
//单方面取消订单并且飞手已经抢单
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
);
//飞手获得的金额
BigDecimal
receiveSalaryAmount
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.2
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
freeze
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.3
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
//微信支付金额大于需要退款金额
if
(
weChat
.
compareTo
(
residueOrderAmount
)
==
1
)
{
//云享金扣除多少
// publisherWalletFlowVO.setCashAmount(requirementsInfoDO.getCashAmount().negate());
//佣金扣除多少
// publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount().negate());
//违约云享金多少
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
//违约佣金
publisherWalletFlowVO
.
setSalaryCashPledge
(
requirementsInfoDO
.
getSalaryAmount
().
negate
());
//用户退百分之七十的费用
refundWeChat
=
residueOrderAmount
;
BigDecimal
multiply
=
refundWeChat
.
multiply
(
new
BigDecimal
(
100
));
Long
longWeChat
=
multiply
.
longValue
();
applyRefundVO
.
setRefund
(
longWeChat
);
applyRefundVO
.
setReason
(
"扣除飞手百分之三十的费用"
);
applyRefundVO
.
setOutTradeNo
(
requirementsInfoDO
.
getWechatPayOrderNumber
());
//退款到微信
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
//微信支付金额小于需要退款金额
if
(
weChat
.
compareTo
(
residueOrderAmount
)
==
-
1
||
weChat
.
compareTo
(
refundCashAmount
)
==
0
)
{
//优先扣除微信里面的钱
BigDecimal
returnToWechat
=
residueOrderAmount
.
subtract
(
requirementsInfoDO
.
getWeChat
());
BigDecimal
residueAmount
=
new
BigDecimal
(
0
);
if
(
returnToWechat
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
1
)
{
//退回佣金
residueAmount
=
returnToWechat
.
subtract
(
requirementsInfoDO
.
getSalaryAmount
());
publisherWalletFlowVO
.
setSalaryAmount
(
requirementsInfoDO
.
getSalaryAmount
());
publisherWalletFlowVO
.
setCashAmount
(
residueAmount
);
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
subtract
(
residueAmount
).
negate
());
}
if
(
returnToWechat
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
0
)
{
publisherWalletFlowVO
.
setSalaryAmount
(
returnToWechat
);
}
//如果退回的佣金小于支付的佣金
if
(
returnToWechat
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
-
1
)
{
residueAmount
=
requirementsInfoDO
.
getSalaryAmount
().
subtract
(
returnToWechat
);
//one
publisherWalletFlowVO
.
setSalaryAmount
(
requirementsInfoDO
.
getSalaryAmount
().
subtract
(
residueAmount
));
publisherWalletFlowVO
.
setSalaryCashPledge
(
residueAmount
.
negate
());
//修改2
//修改三
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
)
{
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
}
}
//如果退回佣金等于0
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
}
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
-
1
)
{
publisherWalletFlowVO
.
setUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setModeOfPayment
(
300
);
publisherWalletFlowVO
.
setSalaryAmount
(
residueAmount
.
negate
());
System
.
out
.
println
(
residueAmount
);
BigDecimal
subtract
=
requirementsInfoDO
.
getSalaryAmount
().
subtract
(
residueAmount
.
negate
());
publisherWalletFlowVO
.
setSalaryCashPledge
(
subtract
.
negate
());
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
// BigDecimal subtract = requirementsInfoDO.getSalaryAmount().subtract(residueAmount.negate());
// publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
//flyerCancel(walletFlowVO, request.getHeader("token"));
//退回的佣金大于0
}
else
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
)
{
// publisherWalletFlowVO.setCashAmount(residueAmount);
publisherWalletFlowVO
.
setUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setModeOfPayment
(
300
);
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
//退回任务佣金
//flyerCancel(walletFlowVO, request.getHeader("token"));
}
BigDecimal
weChatAmount
=
requirementsInfoDO
.
getWeChat
();
long
longWeChat
=
weChatAmount
.
multiply
(
new
BigDecimal
(
100
)).
longValue
();
applyRefundVO
.
setRefund
(
longWeChat
);
applyRefundVO
.
setReason
(
"退回方式——微信佣金云享金"
);
applyRefundVO
.
setOutTradeNo
(
requirementsInfoDO
.
getWechatPayOrderNumber
());
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
//平台抽取百分之十
//发布者取消
BigDecimal
earnings
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.1
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
orderEarnings
=
requirementsInfoDO
.
getOrderEarnings
();
BigDecimal
add
=
orderEarnings
.
add
(
earnings
);
requirementsInfoDO
.
setOrderEarnings
(
add
);
requirementsDao
.
updateRequirementsAmount
(
requirementsInfoDO
);
// requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
requirementsDao
.
updatePlatformOrderEarnings
(
earnings
,
requirementsInfoId
,
userAccountId
);
if
(
serviceDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
serviceDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
serviceDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
System
.
out
.
println
(
freeze
);
//优先扣除微信
BigDecimal
weChat1
=
requirementsInfoDO
.
getWeChat
();
//如果微信扣除的金额小于飞手获得的钱
if
(
weChat1
.
compareTo
(
freeze
)
==
-
1
)
{
//还需要扣除多少
BigDecimal
subtract
=
freeze
.
subtract
(
weChat1
);
if
(
subtract
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
1
)
{
publisherWalletFlowVO
.
setSalaryCashPledge
(
requirementsInfoDO
.
getSalaryAmount
().
negate
());
BigDecimal
subtract1
=
subtract
.
subtract
(
requirementsInfoDO
.
getSalaryAmount
());
if
(
subtract1
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
||
subtract1
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
)
{
publisherWalletFlowVO
.
setYxjCashPledge
(
subtract1
.
negate
());
}
}
if
(
subtract
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
-
1
)
{
//update
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
publisherWalletFlowVO
.
setSalaryCashPledge
(
subtract
.
negate
());
}
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
subtract1
=
requirementsInfoDO
.
getCashAmount
().
subtract
(
publisherWalletFlowVO
.
getCashAmount
());
publisherWalletFlowVO
.
setYxjCashPledge
(
subtract1
.
negate
());
}
//publisherWalletFlowVO.setYxjCashPledge(subtract.negate());
}
}
//飞手应该获得的金额
publisherWalletFlowVO
.
setUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setModeOfPayment
(
300
);
publisherWalletFlowVO
.
setPercentagePenaltyOfOrder
(
receiveSalaryAmount
.
negate
());
flyerWalletFlowVO
.
setCashAmount
(
serviceDO
.
getCashAmount
());
flyerWalletFlowVO
.
setSalaryAmount
(
serviceDO
.
getSalaryAmount
());
flyerWalletFlowVO
.
setUserAccountId
(
requirementsInfoDO
.
getPilotCertificationUserId
());
flyerWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
flyerWalletFlowVO
.
setModeOfPayment
(
300
);
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
String
s
=
String
.
valueOf
(
walletFlowVO
);
log
.
info
(
s
);
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
}
//飞手全额退款
if
(
serviceDO
.
getWechatPayOrderNumber
()
!=
null
)
{
ApplyRefundVO
arv
=
new
ApplyRefundVO
();
arv
.
setReason
(
"全额退款"
);
arv
.
setRefund
(
serviceDO
.
getWeChat
().
multiply
(
new
BigDecimal
(
100
)).
longValue
());
arv
.
setOutTradeNo
(
serviceDO
.
getWechatPayOrderNumber
());
applyRefund
(
arv
,
request
.
getHeader
(
"token"
));
}
requirementsInfoDO
.
setReceiveSalaryAmount
(
receiveSalaryAmount
);
//给飞手发送短信
this
.
sendMsgFlyerInfoAuth
(
requirementsInfoDO
);
requirementsDao
.
updateInfo
(
requirementsInfoId
,
7
);
requirementsDao
.
updateFlow
(
requirementsInfoId
,
7
);
return
ResultBody
.
success
(
ResultEnum
.
REFUND_PERCENTAGE
.
getResultMsg
());
}
return
ResultBody
.
success
();
// if (serviceFlowId != 2 && serviceFlowId != 1) {
// return ResultBody.error(ResultEnum.YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME.getResultMsg());
// }
// //单方面取消订单并且飞手已经抢单
// 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);
// //飞手获得的金额
// BigDecimal receiveSalaryAmount = orderAmount.multiply(new BigDecimal(0.2)).setScale(2, BigDecimal.ROUND_HALF_UP);
// BigDecimal freeze = orderAmount.multiply(new BigDecimal(0.3)).setScale(2, BigDecimal.ROUND_HALF_UP);
// //微信支付金额大于需要退款金额
// if (weChat.compareTo(residueOrderAmount) == 1) {
//
// //云享金扣除多少
// // publisherWalletFlowVO.setCashAmount(requirementsInfoDO.getCashAmount().negate());
// //佣金扣除多少
// // publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount().negate());
// //违约云享金多少
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
// //违约佣金
// publisherWalletFlowVO.setSalaryCashPledge(requirementsInfoDO.getSalaryAmount().negate());
//
// //用户退百分之七十的费用
// refundWeChat = residueOrderAmount;
// BigDecimal multiply = refundWeChat.multiply(new BigDecimal(100));
// Long longWeChat = multiply.longValue();
// applyRefundVO.setRefund(longWeChat);
// applyRefundVO.setReason("扣除飞手百分之三十的费用");
// applyRefundVO.setOutTradeNo(requirementsInfoDO.getWechatPayOrderNumber());
// //退款到微信
// applyRefund(applyRefundVO, request.getHeader("token"));
// }
// //微信支付金额小于需要退款金额
// if (weChat.compareTo(residueOrderAmount) == -1 ||
// weChat.compareTo(refundCashAmount) == 0) {
// //优先扣除微信里面的钱
// BigDecimal returnToWechat = residueOrderAmount.subtract(requirementsInfoDO.getWeChat());
//
// BigDecimal residueAmount = new BigDecimal(0);
// if (returnToWechat.compareTo(requirementsInfoDO.getSalaryAmount()) == 1) {
// //退回佣金
// residueAmount = returnToWechat.subtract(requirementsInfoDO.getSalaryAmount());
// publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount());
// publisherWalletFlowVO.setCashAmount(residueAmount);
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().subtract(residueAmount).negate());
//
// }
// if (returnToWechat.compareTo(requirementsInfoDO.getSalaryAmount()) == 0) {
// publisherWalletFlowVO.setSalaryAmount(returnToWechat);
// }
//
// //如果退回的佣金小于支付的佣金
// if (returnToWechat.compareTo(requirementsInfoDO.getSalaryAmount()) == -1) {
// residueAmount = requirementsInfoDO.getSalaryAmount().subtract(returnToWechat);
// //one
// publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount().subtract(residueAmount));
// publisherWalletFlowVO.setSalaryCashPledge(residueAmount.negate());
// //修改2
// //修改三
//
// if (residueAmount.compareTo(BigDecimal.ZERO) == 1) {
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
// }
// }
// //如果退回佣金等于0
// if (residueAmount.compareTo(BigDecimal.ZERO) == 0) {
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
// }
//
// if (residueAmount.compareTo(BigDecimal.ZERO) == -1) {
// publisherWalletFlowVO.setUserAccountId(userAccountId);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setModeOfPayment(300);
// publisherWalletFlowVO.setSalaryAmount(residueAmount.negate());
// System.out.println(residueAmount);
// BigDecimal subtract = requirementsInfoDO.getSalaryAmount().subtract(residueAmount.negate());
// publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
//
// // BigDecimal subtract = requirementsInfoDO.getSalaryAmount().subtract(residueAmount.negate());
// // publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
//
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// //flyerCancel(walletFlowVO, request.getHeader("token"));
// //退回的佣金大于0
// } else if (residueAmount.compareTo(BigDecimal.ZERO) == 1) {
// // publisherWalletFlowVO.setCashAmount(residueAmount);
// publisherWalletFlowVO.setUserAccountId(userAccountId);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setModeOfPayment(300);
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// //退回任务佣金
// //flyerCancel(walletFlowVO, request.getHeader("token"));
//
// }
// BigDecimal weChatAmount = requirementsInfoDO.getWeChat();
// long longWeChat = weChatAmount.multiply(new BigDecimal(100)).longValue();
// applyRefundVO.setRefund(longWeChat);
// applyRefundVO.setReason("退回方式——微信佣金云享金");
// applyRefundVO.setOutTradeNo(requirementsInfoDO.getWechatPayOrderNumber());
// applyRefund(applyRefundVO, request.getHeader("token"));
// }
//
// //平台抽取百分之十
// //发布者取消
// BigDecimal earnings = orderAmount.multiply(new BigDecimal(0.1)).setScale(2, BigDecimal.ROUND_HALF_UP);
// BigDecimal orderEarnings = requirementsInfoDO.getOrderEarnings();
// BigDecimal add = orderEarnings.add(earnings);
// requirementsInfoDO.setOrderEarnings(add);
// requirementsDao.updateRequirementsAmount(requirementsInfoDO);
// // requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
// requirementsDao.updatePlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
//
//
// if (serviceDO.getCashAmount().compareTo(BigDecimal.ZERO) != 0 ||
// serviceDO.getSalaryAmount().compareTo(BigDecimal.ZERO) != 0 ||
// serviceDO.getWeChat().compareTo(BigDecimal.ZERO) != 0) {
// System.out.println(freeze);
// //优先扣除微信
// BigDecimal weChat1 = requirementsInfoDO.getWeChat();
// //如果微信扣除的金额小于飞手获得的钱
// if (weChat1.compareTo(freeze) == -1) {
// //还需要扣除多少
// BigDecimal subtract = freeze.subtract(weChat1);
// if (subtract.compareTo(requirementsInfoDO.getSalaryAmount()) == 1) {
// publisherWalletFlowVO.setSalaryCashPledge(requirementsInfoDO.getSalaryAmount().negate());
//
// BigDecimal subtract1 = subtract.subtract(requirementsInfoDO.getSalaryAmount());
// if (subtract1.compareTo(BigDecimal.ZERO) == 0 || subtract1.compareTo(BigDecimal.ZERO) == 1) {
// publisherWalletFlowVO.setYxjCashPledge(subtract1.negate());
// }
// }
// if (subtract.compareTo(requirementsInfoDO.getSalaryAmount()) == -1) {
// //update
// if (requirementsInfoDO.getCashAmount().compareTo(BigDecimal.ZERO) == 0) {
// publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
// }
// if (requirementsInfoDO.getCashAmount().compareTo(BigDecimal.ZERO) != 0) {
// BigDecimal subtract1 = requirementsInfoDO.getCashAmount().subtract(publisherWalletFlowVO.getCashAmount());
// publisherWalletFlowVO.setYxjCashPledge(subtract1.negate());
// }
// //publisherWalletFlowVO.setYxjCashPledge(subtract.negate());
// }
//
// }
// //飞手应该获得的金额
// publisherWalletFlowVO.setUserAccountId(userAccountId);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setModeOfPayment(300);
// publisherWalletFlowVO.setPercentagePenaltyOfOrder(receiveSalaryAmount.negate());
// flyerWalletFlowVO.setCashAmount(serviceDO.getCashAmount());
// flyerWalletFlowVO.setSalaryAmount(serviceDO.getSalaryAmount());
// flyerWalletFlowVO.setUserAccountId(requirementsInfoDO.getPilotCertificationUserId());
// flyerWalletFlowVO.setOperateUserAccountId(userAccountId);
// flyerWalletFlowVO.setModeOfPayment(300);
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// walletFlowVO.setFlyerWalletFlowVO(flyerWalletFlowVO);
// String s = String.valueOf(walletFlowVO);
// log.info(s);
// flyerCancel(walletFlowVO, request.getHeader("token"));
// }
// //飞手全额退款
// if (serviceDO.getWechatPayOrderNumber() != null) {
// ApplyRefundVO arv = new ApplyRefundVO();
// arv.setReason("全额退款");
// arv.setRefund(serviceDO.getWeChat().multiply(new BigDecimal(100)).longValue());
// arv.setOutTradeNo(serviceDO.getWechatPayOrderNumber());
// applyRefund(arv, request.getHeader("token"));
// }
//
// requirementsInfoDO.setReceiveSalaryAmount(receiveSalaryAmount);
// //给飞手发送短信
// this.sendMsgFlyerInfoAuth(requirementsInfoDO);
// requirementsDao.updateInfo(requirementsInfoId, 7);
// requirementsDao.updateFlow(requirementsInfoId, 7);
// return ResultBody.success(ResultEnum.REFUND_PERCENTAGE.getResultMsg());
// }
//
// return ResultBody.success();
}
/**
...
...
@@ -1246,30 +1283,30 @@ public class RequirementsServiceImpl implements RequirementsService {
* @return
*/
@Override
public
ResultBody
cancelAll
(
LiabilityProblemVO
liabilityProblemVO
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
public
ResultBody
cancelAll
(
LiabilityProblemVO
liabilityProblemVO
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
RequirementsServiceDO
requirementsServiceDO
=
requirementsDao
.
customerDroneFlyerCancel
(
liabilityProblemVO
.
getRequirementsInfoId
());
RequirementsInfoDO
requirementsInfoDO
=
requirementsDao
.
customerPublisherCancel
(
liabilityProblemVO
.
getRequirementsInfoId
(),
userAccountId
);
liabilityProblemVO
.
setUserAccountId
(
userAccountId
);
if
(
requirementsInfoDO
.
getServiceFlowId
()
==
8
||
requirementsInfoDO
.
getServiceFlowId
()==
6
||
requirementsInfoDO
.
getServiceFlowId
()==
7
||
requirementsInfoDO
.
getServiceFlowId
()==
5
)
{
if
(
requirementsInfoDO
.
getServiceFlowId
()
==
8
||
requirementsInfoDO
.
getServiceFlowId
()
==
6
||
requirementsInfoDO
.
getServiceFlowId
()
==
7
||
requirementsInfoDO
.
getServiceFlowId
()
==
5
)
{
return
ResultBody
.
error
(
"客服不能介入当前状态"
);
}
if
(
requirementsServiceDO
==
null
)
{
if
(
requirementsServiceDO
==
null
)
{
return
ResultBody
.
error
(
"没有人抢单不能判定责任"
);
}
int
i
=
requirementsDao
.
selectCustomer
(
liabilityProblemVO
.
getRequirementsInfoId
());
if
(
i
!=
0
)
{
if
(
i
!=
0
)
{
return
ResultBody
.
error
(
"请勿重复判定"
);
}
requirementsDao
.
customerServiceIntervention
(
liabilityProblemVO
);
//双方无责
if
(
liabilityProblemVO
.
getDuty
().
equals
(
1
)){
if
(
liabilityProblemVO
.
getDuty
().
equals
(
1
))
{
requirementsDao
.
updateInfo
(
liabilityProblemVO
.
getRequirementsInfoId
(),
7
);
requirementsDao
.
updateScene
(
liabilityProblemVO
.
getRequirementsInfoId
(),
7
);
WalletFlowVO
walletFlowVO
=
new
WalletFlowVO
();
...
...
@@ -1291,7 +1328,7 @@ public class RequirementsServiceImpl implements RequirementsService {
}
//退发布者费用
if
(
requirementsInfoDO
.
getWechatPayOrderNumber
()
!=
null
)
{
if
(
requirementsInfoDO
.
getWechatPayOrderNumber
()
!=
null
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setReason
(
"客服介入退款"
);
applyRefundVO
.
setRefund
(
requirementsInfoDO
.
getWeChat
().
multiply
(
new
BigDecimal
(
100
)).
longValue
());
...
...
@@ -1299,7 +1336,7 @@ public class RequirementsServiceImpl implements RequirementsService {
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
//退飞手费用
if
(
requirementsServiceDO
.
getWechatPayOrderNumber
()
!=
null
)
{
if
(
requirementsServiceDO
.
getWechatPayOrderNumber
()
!=
null
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setReason
(
"客服介入退款"
);
applyRefundVO
.
setRefund
(
requirementsServiceDO
.
getWeChat
().
multiply
(
new
BigDecimal
(
100
)).
longValue
());
...
...
@@ -1307,10 +1344,10 @@ public class RequirementsServiceImpl implements RequirementsService {
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
//退云享金及余额
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsInfoDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
||
requirementsServiceDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
||
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
)
{
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsInfoDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsServiceDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
publisherWalletFlowVO
.
setModeOfPayment
(
500
);
publisherWalletFlowVO
.
setUserAccountId
(
requirementsInfoDO
.
getUserAccountId
());
...
...
@@ -1327,7 +1364,7 @@ public class RequirementsServiceImpl implements RequirementsService {
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
//给发布者或者飞手发送信息
this
.
publicSendMsgPublishInfoAuth
(
requirementsServiceDO
);
...
...
@@ -1337,17 +1374,17 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
//发布者责任
if
(
liabilityProblemVO
.
getDuty
().
equals
(
2
)){
if
(
liabilityProblemVO
.
getDuty
().
equals
(
2
))
{
// publisherCancel(liabilityProblemVO.getRequirementsInfoId(),requirementsInfoDO.getUserAccountId(),request);
publisherCancelDuty
(
liabilityProblemVO
.
getRequirementsInfoId
(),
requirementsInfoDO
.
getUserAccountId
(),
request
);
publisherCancelDuty
(
liabilityProblemVO
.
getRequirementsInfoId
(),
requirementsInfoDO
.
getUserAccountId
(),
request
);
requirementsDao
.
updateInfo
(
liabilityProblemVO
.
getRequirementsInfoId
(),
7
);
requirementsDao
.
updateScene
(
liabilityProblemVO
.
getRequirementsInfoId
(),
7
);
return
ResultBody
.
success
();
}
//飞手责任
if
(
liabilityProblemVO
.
getDuty
().
equals
(
3
)){
if
(
liabilityProblemVO
.
getDuty
().
equals
(
3
))
{
// droneFlyerCancel(liabilityProblemVO.getRequirementsInfoId(),requirementsServiceDO.getPilotCertificationUserId(),request);
droneFlyerCancelDuty
(
liabilityProblemVO
.
getRequirementsInfoId
(),
requirementsServiceDO
.
getPilotCertificationUserId
(),
request
);
droneFlyerCancelDuty
(
liabilityProblemVO
.
getRequirementsInfoId
(),
requirementsServiceDO
.
getPilotCertificationUserId
(),
request
);
requirementsDao
.
updateInfo
(
liabilityProblemVO
.
getRequirementsInfoId
(),
7
);
requirementsDao
.
updateScene
(
liabilityProblemVO
.
getRequirementsInfoId
(),
7
);
return
ResultBody
.
success
();
...
...
@@ -1355,7 +1392,7 @@ public class RequirementsServiceImpl implements RequirementsService {
return
ResultBody
.
success
();
}
public
ResultBody
publisherCancelDuty
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
public
ResultBody
publisherCancelDuty
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
RequirementsInfoDO
requirementsInfoDO
=
requirementsDao
.
publisherCancel
(
requirementsInfoId
,
userAccountId
);
RequirementsServiceDO
serviceDO
=
requirementsDao
.
serviceReq
(
requirementsInfoId
);
if
(
serviceDO
!=
null
)
{
...
...
@@ -1498,13 +1535,13 @@ public class RequirementsServiceImpl implements RequirementsService {
if
(
serviceDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
serviceDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
serviceDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsInfoDO
.
getLevelCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsInfoDO
.
getLevelSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
)
{
if
(
requirementsInfoDO
.
getOrderLevel
().
equals
(
"RUSH_ORDER"
))
{
requirementsInfoDO
.
getLevelCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsInfoDO
.
getLevelSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
requirementsInfoDO
.
getOrderLevel
().
equals
(
"RUSH_ORDER"
))
{
publisherWalletFlowVO
.
setUrgentYxjAmount
(
requirementsInfoDO
.
getLevelCashAmount
().
negate
());
publisherWalletFlowVO
.
setUrgentSalaryAmount
(
requirementsInfoDO
.
getLevelSalaryAmount
().
negate
());
}
if
(
requirementsInfoDO
.
getOrderLevel
().
equals
(
"TOP_ORDER"
))
{
if
(
requirementsInfoDO
.
getOrderLevel
().
equals
(
"TOP_ORDER"
))
{
publisherWalletFlowVO
.
setTopYxjAmount
(
requirementsInfoDO
.
getLevelCashAmount
().
negate
());
publisherWalletFlowVO
.
setTopSalaryAmount
(
requirementsInfoDO
.
getLevelSalaryAmount
().
negate
());
}
...
...
@@ -1549,8 +1586,7 @@ public class RequirementsServiceImpl implements RequirementsService {
}
public
ResultBody
droneFlyerCancelDuty
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
){
public
ResultBody
droneFlyerCancelDuty
(
Integer
requirementsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
RequirementsInfoDO
infoDO
=
requirementsDao
.
publisherCancelFlyer
(
requirementsInfoId
);
RequirementsServiceDO
requirementsServiceDO
=
requirementsDao
.
droneFlyerCancel
(
requirementsInfoId
,
userAccountId
);
IsNullConvertZeroUtil
.
checkIsNull
(
requirementsServiceDO
);
...
...
@@ -1698,6 +1734,7 @@ public class RequirementsServiceImpl implements RequirementsService {
/**
* 给飞手短信
*
* @param requirementsServiceDO
*/
private
void
publicSendMsgPublishInfoAuth
(
RequirementsServiceDO
requirementsServiceDO
)
{
...
...
@@ -1917,9 +1954,9 @@ public class RequirementsServiceImpl implements RequirementsService {
publisherWalletFlowVO
.
setUserAccountId
(
amountUpdateDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setOperateUserAccountId
(
amountUpdateDO
.
getUserAccountId
());
String
wechatPayOrderNumber
=
amountUpdateDO
.
getWechatPayOrderNumber
();
if
(
wechatPayOrderNumber
!=
null
)
{
if
(
wechatPayOrderNumber
!=
null
)
{
UserPayInfoVO
userPayInfoVO
=
queryUserPayInfo
(
amountUpdateDO
.
getWechatPayOrderNumber
(),
request
);
if
(!
userPayInfoVO
.
getTradeState
().
equals
(
"SUCCESS"
)){
if
(!
userPayInfoVO
.
getTradeState
().
equals
(
"SUCCESS"
))
{
return
ResultBody
.
error
(
"支付失败,请重新支付"
);
}
}
...
...
@@ -1932,16 +1969,16 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao
.
updateScene
(
amountVO
.
getRequirementsInfoId
(),
8
);
requirementsDao
.
updateInfo
(
amountVO
.
getRequirementsInfoId
(),
8
);
int
amountUpdate
=
requirementsDao
.
findAmountUpdate
(
amountUpdateDO
.
getRequirementsInfoId
());
if
(
amountUpdate
!=
0
)
{
if
(
amountUpdate
!=
0
)
{
return
ResultBody
.
error
(
"只能修改一次不能重复修改"
);
}
else
{
}
else
{
requirementsDao
.
requirementsAmountUpdate
(
amountUpdateDO
);
}
if
(
amountUpdateDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
amountUpdateDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
)
{
if
(
amountUpdateDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
amountUpdateDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
flyerCancelNO
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
flyerCancelNO
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
}
//倒计时
...
...
@@ -1965,7 +2002,7 @@ public class RequirementsServiceImpl implements RequirementsService {
}
@Override
public
ResultBody
confirmSettlement
(
Integer
userAccountId
,
Integer
requirementsInfoId
,
HttpServletRequest
request
)
{
public
ResultBody
confirmSettlement
(
Integer
userAccountId
,
Integer
requirementsInfoId
,
HttpServletRequest
request
)
{
RequirementsInfoDO
requirementsInfoDO
=
requirementsDao
.
publisherCancelFlyers
(
requirementsInfoId
);
ServiceSettleAccountsVO
settleAccountsVO
=
new
ServiceSettleAccountsVO
();
settleAccountsVO
.
setRequirementsInfoId
(
requirementsInfoId
);
...
...
@@ -1982,9 +2019,9 @@ public class RequirementsServiceImpl implements RequirementsService {
if
(
requirementsInfoDO
==
null
)
{
return
ResultBody
.
error
(
"结算失败"
);
}
BigDecimal
earnings
=
BigDecimal
.
ZERO
;
BigDecimal
earnings
=
BigDecimal
.
ZERO
;
//修改金额
if
(
updateAmount
!=
null
)
{
if
(
updateAmount
!=
null
)
{
//继续支付需要扣除金额
IsNullConvertZeroUtil
.
checkIsNull
(
updateAmount
);
publisherWalletFlowVO
.
setCashAmount
(
requirementsInfoDO
.
getCashAmount
().
negate
());
...
...
@@ -1992,8 +2029,8 @@ public class RequirementsServiceImpl implements RequirementsService {
publisherWalletFlowVO
.
setUserAccountId
(
requirementsInfoDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setModeOfPayment
(
1000
);
if
(
updateAmount
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
updateAmount
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
)
{
if
(
updateAmount
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
updateAmount
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
cash
=
publisherWalletFlowVO
.
getCashAmount
().
negate
();
BigDecimal
salary
=
publisherWalletFlowVO
.
getSalaryAmount
().
negate
();
...
...
@@ -2004,12 +2041,13 @@ public class RequirementsServiceImpl implements RequirementsService {
// publisherWalletFlowVO.setRefundSalaryAmount(updateAmount.getSalaryAmount().negate());
//publisherWalletFlowVO.setRefundCashAmount(updateAmount.getCashAmount().negate());
}
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
||
updateAmount
.
getReturnSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
){
}
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
updateAmount
.
getReturnSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
publisherWalletFlowVO
.
setRefundCashAmount
(
updateAmount
.
getReturnCashAmount
());
publisherWalletFlowVO
.
setRefundSalaryAmount
(
updateAmount
.
getReturnSalaryAmount
());
}
if
(
updateAmount
.
getReturnWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
updateAmount
.
getReturnWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setReason
(
"飞手确认退款"
);
applyRefundVO
.
setOutTradeNo
(
updateAmount
.
getWechatPayOrderNumber
());
...
...
@@ -2020,10 +2058,10 @@ public class RequirementsServiceImpl implements RequirementsService {
//给飞手金额
BigDecimal
updateOrderAmount
=
updateAmount
.
getUpdateOrderAmount
();
BigDecimal
multiply
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
0.9
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
multiply
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
1.0
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
publisherWalletFlowVO
.
setFlyerSalaryAmount
(
multiply
);
//平台收益
earnings
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
0.1
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
earnings
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
0.0
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
}
flyerWalletFlowVO
.
setSalaryAmount
(
serviceDO
.
getSalaryAmount
());
...
...
@@ -2032,7 +2070,7 @@ public class RequirementsServiceImpl implements RequirementsService {
flyerWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
flyerWalletFlowVO
.
setModeOfPayment
(
1000
);
if
(
serviceDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
serviceDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setReason
(
"原路退回"
);
applyRefundVO
.
setOutTradeNo
(
serviceDO
.
getWechatPayOrderNumber
());
...
...
@@ -2045,10 +2083,10 @@ public class RequirementsServiceImpl implements RequirementsService {
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
flyerCancelNO
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
flyerCancelNO
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
BigDecimal
orderEarnings
=
requirementsInfoDO
.
getOrderEarnings
();
BigDecimal
add
=
orderEarnings
.
add
(
earnings
);
requirementsDao
.
updateOrderEarnings
(
add
,
requirementsInfoId
);
requirementsDao
.
updateOrderEarnings
(
add
,
requirementsInfoId
);
requirementsDao
.
updateInfo
(
requirementsInfoId
,
5
);
requirementsDao
.
updateScene
(
requirementsInfoId
,
5
);
return
ResultBody
.
success
();
...
...
@@ -2261,6 +2299,9 @@ public class RequirementsServiceImpl implements RequirementsService {
//抢单
RequirementsServiceDTO
requirementsServiceDTO
=
requirementsDao
.
requirementsServiceDTO
(
requirementsInfoId
);
flowDictionaryAndTimeDTO
.
setRequirementsServiceDTO
(
requirementsServiceDTO
);
//发单方同意或者拒绝
AgreePilotOrderDTO
agreePilotOrderDTO
=
requirementsDao
.
serviceAgreePilotOrderDTO
(
requirementsInfoId
);
flowDictionaryAndTimeDTO
.
setAgreePilotOrderDTO
(
agreePilotOrderDTO
);
//抵达现场
ServiceArriveSceneDTO
arriveSceneDTO
=
requirementsDao
.
serviceArriveSceneDTO
(
requirementsInfoId
);
flowDictionaryAndTimeDTO
.
setServiceArriveSceneDTO
(
arriveSceneDTO
);
...
...
@@ -2315,57 +2356,57 @@ public class RequirementsServiceImpl implements RequirementsService {
IsNullConvertZeroUtil
.
checkIsNull
(
serviceDO
);
IsNullConvertZeroUtil
.
checkIsNull
(
requirementsInfoDO
);
if
(
requirementsInfoDO
.
getServiceFlowId
()
==
5
)
{
if
(
requirementsInfoDO
.
getServiceFlowId
()
==
5
)
{
return
ResultBody
.
error
(
"已结算"
);
}
if
(
requirementsInfoDO
==
null
)
{
return
ResultBody
.
error
(
"结算失败"
);
}
BigDecimal
earnings
=
BigDecimal
.
ZERO
;
BigDecimal
earnings
=
BigDecimal
.
ZERO
;
//修改金额
if
(
updateAmount
!=
null
)
{
if
(
updateAmount
!=
null
)
{
//继续支付需要扣除金额
IsNullConvertZeroUtil
.
checkIsNull
(
updateAmount
);
if
(
updateAmount
.
getUpdateOrderAmount
().
compareTo
(
updateAmount
.
getOrderAmount
())
==-
1
)
{
if
(
updateAmount
.
getUpdateOrderAmount
().
compareTo
(
updateAmount
.
getOrderAmount
())
==
-
1
)
{
if
(
updateAmount
.
getReturnSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
updateAmount
.
getReturnSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
orderAmount
=
updateAmount
.
getOrderAmount
();
BigDecimal
returnSalaryAmount
=
updateAmount
.
getReturnSalaryAmount
();
BigDecimal
subtract
=
orderAmount
.
subtract
(
returnSalaryAmount
);
publisherWalletFlowVO
.
setSalaryAmount
(
subtract
.
negate
());
if
(
requirementsInfoDO
.
getSalaryAmount
().
compareTo
(
updateAmount
.
getReturnSalaryAmount
())
==
0
)
{
if
(
requirementsInfoDO
.
getSalaryAmount
().
compareTo
(
updateAmount
.
getReturnSalaryAmount
())
==
0
)
{
publisherWalletFlowVO
.
setSalaryAmount
(
BigDecimal
.
ZERO
);
}
if
(
requirementsInfoDO
.
getSalaryAmount
().
compareTo
(
updateAmount
.
getReturnSalaryAmount
())
==
1
)
{
if
(
requirementsInfoDO
.
getSalaryAmount
().
compareTo
(
updateAmount
.
getReturnSalaryAmount
())
==
1
)
{
publisherWalletFlowVO
.
setSalaryAmount
(
requirementsInfoDO
.
getSalaryAmount
().
subtract
(
updateAmount
.
getReturnSalaryAmount
()).
negate
());
}
}
else
{
}
else
{
publisherWalletFlowVO
.
setSalaryAmount
(
requirementsInfoDO
.
getSalaryAmount
().
negate
());
}
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
orderAmount
=
updateAmount
.
getOrderAmount
();
BigDecimal
returnCashAmount
=
updateAmount
.
getReturnCashAmount
();
BigDecimal
subtract
=
orderAmount
.
subtract
(
returnCashAmount
);
publisherWalletFlowVO
.
setCashAmount
(
subtract
.
negate
());
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
updateAmount
.
getReturnCashAmount
())
==
0
)
{
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
updateAmount
.
getReturnCashAmount
())
==
0
)
{
publisherWalletFlowVO
.
setCashAmount
(
BigDecimal
.
ZERO
);
}
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
requirementsInfoDO
.
getCashAmount
())
==-
1
)
{
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
requirementsInfoDO
.
getCashAmount
())
==
-
1
)
{
BigDecimal
cashAmount
=
requirementsInfoDO
.
getCashAmount
();
BigDecimal
returnCashAmount1
=
updateAmount
.
getReturnCashAmount
();
BigDecimal
subtract1
=
cashAmount
.
subtract
(
returnCashAmount1
);
publisherWalletFlowVO
.
setCashAmount
(
subtract1
.
negate
());
}
}
else
{
}
else
{
publisherWalletFlowVO
.
setCashAmount
(
requirementsInfoDO
.
getCashAmount
().
negate
());
}
}
if
(
updateAmount
.
getUpdateOrderAmount
().
compareTo
(
updateAmount
.
getOrderAmount
())
==
1
)
{
if
(
updateAmount
.
getUpdateOrderAmount
().
compareTo
(
updateAmount
.
getOrderAmount
())
==
1
)
{
publisherWalletFlowVO
.
setSalaryAmount
(
requirementsInfoDO
.
getSalaryAmount
().
negate
());
publisherWalletFlowVO
.
setCashAmount
(
requirementsInfoDO
.
getCashAmount
().
negate
());
}
...
...
@@ -2373,8 +2414,8 @@ public class RequirementsServiceImpl implements RequirementsService {
publisherWalletFlowVO
.
setUserAccountId
(
requirementsInfoDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setOperateUserAccountId
(
agreeVO
.
getUserAccountId
());
publisherWalletFlowVO
.
setModeOfPayment
(
1000
);
if
(
updateAmount
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
updateAmount
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
updateAmount
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
updateAmount
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
cash
=
publisherWalletFlowVO
.
getCashAmount
().
negate
();
BigDecimal
salary
=
publisherWalletFlowVO
.
getSalaryAmount
().
negate
();
...
...
@@ -2385,12 +2426,13 @@ public class RequirementsServiceImpl implements RequirementsService {
// publisherWalletFlowVO.setRefundSalaryAmount(updateAmount.getSalaryAmount().negate());
//publisherWalletFlowVO.setRefundCashAmount(updateAmount.getCashAmount().negate());
}
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
||
updateAmount
.
getReturnSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
){
}
if
(
updateAmount
.
getReturnCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
updateAmount
.
getReturnSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
publisherWalletFlowVO
.
setRefundCashAmount
(
updateAmount
.
getReturnCashAmount
());
publisherWalletFlowVO
.
setRefundSalaryAmount
(
updateAmount
.
getReturnSalaryAmount
());
}
if
(
updateAmount
.
getReturnWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
updateAmount
.
getReturnWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setReason
(
"飞手确认退款"
);
applyRefundVO
.
setOutTradeNo
(
requirementsInfoDO
.
getWechatPayOrderNumber
());
...
...
@@ -2399,14 +2441,13 @@ public class RequirementsServiceImpl implements RequirementsService {
}
//给飞手金额
BigDecimal
updateOrderAmount
=
updateAmount
.
getUpdateOrderAmount
();
BigDecimal
multiply
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
0.9
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
multiply
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
1.0
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
publisherWalletFlowVO
.
setFlyerSalaryAmount
(
multiply
);
//平台收益
earnings
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
0.
1
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
earnings
=
updateOrderAmount
.
multiply
(
new
BigDecimal
(
0.
0
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
}
flyerWalletFlowVO
.
setSalaryAmount
(
serviceDO
.
getSalaryAmount
());
...
...
@@ -2418,7 +2459,7 @@ public class RequirementsServiceImpl implements RequirementsService {
/**
* 退飞手金额
*/
if
(
serviceDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
if
(
serviceDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setReason
(
"原路退回"
);
applyRefundVO
.
setOutTradeNo
(
serviceDO
.
getWechatPayOrderNumber
());
...
...
@@ -2431,21 +2472,21 @@ public class RequirementsServiceImpl implements RequirementsService {
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
flyerCancelNO
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
flyerCancelNO
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
BigDecimal
orderEarnings
=
requirementsInfoDO
.
getOrderEarnings
();
BigDecimal
add
=
orderEarnings
.
add
(
earnings
);
requirementsDao
.
updateOrderEarnings
(
add
,
agreeVO
.
getRequirementsInfoId
());
requirementsDao
.
updateOrderEarnings
(
add
,
agreeVO
.
getRequirementsInfoId
());
requirementsDao
.
updateInfo
(
agreeVO
.
getRequirementsInfoId
(),
5
);
requirementsDao
.
updateScene
(
agreeVO
.
getRequirementsInfoId
(),
5
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
publishService
(
ServiceRequirementsVO
serviceRequirementsVO
,
HttpServletRequest
request
)
{
//这个是几个人的订单
Integer
sum
=
serviceRequirementsVO
.
getRequireNum
();
//获取用户基本信息
UserAccountSimpleDTO
userAccountSimpleDTO
=
feignGetUserSimpleInfo
(
serviceRequirementsVO
.
getUserAccountId
(),
request
);
String
openid
=
userAccountSimpleDTO
.
getOpenid
();
...
...
@@ -2580,8 +2621,6 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
System
.
out
.
println
(
requirementsInfoDO
);
System
.
out
.
println
(
publisherWalletFlowVO
);
if
(
orderLevelEnum
.
equals
(
"RUSH_ORDER"
))
{
//加急的云享金
...
...
@@ -2646,9 +2685,6 @@ public class RequirementsServiceImpl implements RequirementsService {
}
System
.
out
.
println
(
requirementsInfoDO
);
System
.
out
.
println
(
publisherWalletFlowVO
);
//不存在加急或者置顶
if
(
rushAndTop
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
...
...
@@ -2697,8 +2733,7 @@ public class RequirementsServiceImpl implements RequirementsService {
}
}
System
.
out
.
println
(
requirementsInfoDO
);
System
.
out
.
println
(
publisherWalletFlowVO
);
if
(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
System
.
out
.
println
(
requirementsInfoDO
);
System
.
out
.
println
(
publisherWalletFlowVO
);
...
...
@@ -2722,9 +2757,12 @@ public class RequirementsServiceImpl implements RequirementsService {
IndustryTypeDTO
industryTypeDTO
=
getIndustryTypeById
(
requirementsInfoDO
.
getServiceId
());
requirementsInfoDO
.
setServiceName
(
industryTypeDTO
.
getTypeName
());
requirementsInfoDO
.
setOpenid
(
openid
);
// sum是1说明订单只需一个人 sum>1 说明是多人需要创建子订单
requirementsInfoDO
.
setRepertory
(
requirementsInfoDO
.
getRequireNum
());
requirementsDao
.
addPublishService
(
requirementsInfoDO
);
RequirementsAmountDO
requirementsAmountDO
=
new
RequirementsAmountDO
(
requirementsInfoDO
);
requirementsDao
.
addAmount
(
requirementsAmountDO
);
if
(
sum
==
1
)
{
requirementsDao
.
insertPlatformOrderEarnings
(
new
BigDecimal
(
0
),
requirementsInfoDO
.
getId
(),
0
);
if
(
requirementsAmountDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
...
...
@@ -2734,6 +2772,29 @@ public class RequirementsServiceImpl implements RequirementsService {
}
return
ResultBody
.
success
();
}
else
{
//循环添加子订单
for
(
int
i
=
0
;
i
<
sum
;
i
++)
{
ServiceRequirementsSonDO
requirementsSonDO
=
new
ServiceRequirementsSonDO
(
requirementsInfoDO
);
requirementsDao
.
addPublishServiceSon
(
requirementsSonDO
);
System
.
out
.
println
(
requirementsSonDO
);
RequirementsAmountDO
requirementsAmountSonDO
=
new
RequirementsAmountDO
(
requirementsSonDO
);
System
.
out
.
println
(
requirementsAmountSonDO
);
System
.
out
.
println
(
"-------------------------"
);
requirementsDao
.
addAmount
(
requirementsAmountSonDO
);
requirementsDao
.
insertPlatformOrderEarnings
(
new
BigDecimal
(
0
),
requirementsSonDO
.
getId
(),
0
);
if
(
requirementsAmountSonDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountSonDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountSonDO
.
getLevelCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsAmountSonDO
.
getLevelSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
feignWalletFlow
(
publisherWalletFlowVO
,
request
.
getHeader
(
"token"
));
}
}
return
ResultBody
.
success
();
}
}
else
{
//云享金和佣金扣除完成,但是还不足支付订单金额,并且没有选择微信支付,所以支付不合法
return
ResultBody
.
success
(
"下单失败"
);
}
...
...
@@ -2796,6 +2857,40 @@ public class RequirementsServiceImpl implements RequirementsService {
@Override
public
ResultBody
grabTheOrder
(
GrabTheOrderVO
grabTheOrderVO
,
HttpServletRequest
request
)
{
//这是这个订单所需要的总人数
Integer
requireNum
=
grabTheOrderVO
.
getRequireNum
();
if
(
requireNum
==
null
||
grabTheOrderVO
.
getRequirementsInfoId
()
==
null
)
{
return
ResultBody
.
error
(
"参数不全"
);
}
Integer
fatherRequireId
=
null
,
fatherRepertory
=
null
;
//requireNum >= 2就说明这个订单是分开的有子订单
if
(
requireNum
>=
2
)
{
fatherRequireId
=
grabTheOrderVO
.
getRequirementsInfoId
();
//不让同一个用户对一个多人订单重复下单
if
(
requirementsDao
.
selectBooleanByFatherIdAndUserId
(
fatherRequireId
,
grabTheOrderVO
.
getUserAccountId
())
>
0
)
{
return
ResultBody
.
error
(
"不能重复抢一个订单"
);
}
ServiceRequirementsDO
fatherRequirementsInfoDO
=
requirementsDao
.
grabTheOrder
(
fatherRequireId
);
fatherRepertory
=
fatherRequirementsInfoDO
.
getRepertory
();
if
(
fatherRepertory
<=
0
)
{
return
ResultBody
.
error
(
"需求已被其他人抢走"
);
}
if
(
grabTheOrderVO
.
getRequirementsInfoId
().
equals
(
fatherRequirementsInfoDO
.
getId
())
&&
grabTheOrderVO
.
getUserAccountId
().
equals
(
fatherRequirementsInfoDO
.
getUserAccountId
()))
{
return
ResultBody
.
error
(
"自己不能抢自己发布的需求"
);
}
//获取没被抢的子订单id
Integer
requirementsSonInfoId
=
requirementsDao
.
getRequirementsSonInfoId
(
fatherRequireId
);
grabTheOrderVO
.
setRequirementsInfoId
(
requirementsSonInfoId
);
}
else
{
//单人被拒绝后也不能再次抢单
Integer
countRefuse
=
requirementsDao
.
selectRequirementsRefuse
(
grabTheOrderVO
.
getRequirementsInfoId
(),
grabTheOrderVO
.
getUserAccountId
());
if
(
countRefuse
==
1
)
{
return
ResultBody
.
error
(
"不能重复抢一个订单"
);
}
}
UserAccountSimpleDTO
userAccountSimpleDTO
=
feignGetUserSimpleInfo
(
grabTheOrderVO
.
getUserAccountId
(),
request
);
String
openid
=
userAccountSimpleDTO
.
getOpenid
();
...
...
@@ -2804,6 +2899,7 @@ public class RequirementsServiceImpl implements RequirementsService {
if
(
grabTheOrderVO
.
getRequirementsInfoId
().
equals
(
requirementsInfoDO
.
getId
())
&&
grabTheOrderVO
.
getUserAccountId
().
equals
(
requirementsInfoDO
.
getUserAccountId
()))
{
return
ResultBody
.
error
(
"自己不能抢自己发布的需求"
);
}
//飞手
PilotCertificationInteriorDTO
pilot
=
feignInteriorDetailPilot
(
grabTheOrderVO
.
getUserAccountId
(),
request
);
if
(
pilot
==
null
)
{
...
...
@@ -2821,110 +2917,117 @@ public class RequirementsServiceImpl implements RequirementsService {
RequirementsServiceDO
requirementsServiceDO
=
new
RequirementsServiceDO
(
pilot
,
requirementsInfoDO
);
IsNullConvertZeroUtil
.
checkIsNull
(
requirementsServiceDO
);
//用户云享金+用户佣金>总金额
//剩余后台云享金
BigDecimal
cashAmt
=
payWalletDTO
.
getCashAmt
();
//剩余佣金
BigDecimal
salaryAmt
=
payWalletDTO
.
getSalaryAmt
();
//用户云享金加上佣金的总金额
BigDecimal
cashAndSalary
=
cashAmt
.
add
(
salaryAmt
);
//需要支付的总金额(任务佣金)
BigDecimal
totalAmount
=
requirementsInfoDO
.
getOrderAmount
();
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.3
);
totalAmount
=
totalAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
grabTheOrderVO
.
getWechatPayOrderNumber
()
+
grabTheOrderVO
.
getUserAccountId
());
GetOrderNumberDTO
orderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
if
(
orderNumberDTO
!=
null
)
{
IsNullConvertZeroUtil
.
checkIsNull
(
orderNumberDTO
);
}
//需要冻结的金额
FlyerWalletFlowVO
flyerWalletFlowVO
=
new
FlyerWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
flyerWalletFlowVO
);
//IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO);
//PublisherWalletFlowVO publisherWalletFlowVO = walletFlowVO.getPublisherWalletFlowVO();
BigDecimal
tempTotalAmount
=
totalAmount
;
String
paymentType
=
grabTheOrderVO
.
getPaymentType
();
String
[]
split
=
paymentType
.
split
(
","
);
Set
<
String
>
collect
=
Arrays
.
asList
(
split
).
stream
().
collect
(
Collectors
.
toSet
());
TreeSet
<
String
>
objects
=
new
TreeSet
<>(
collect
);
for
(
String
type
:
objects
)
{
switch
(
type
)
{
case
"1"
:
if
(!(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
))
{
if
(
cashAmt
.
compareTo
(
tempTotalAmount
)
==
1
||
cashAmt
.
compareTo
(
tempTotalAmount
)
==
0
)
{
flyerWalletFlowVO
.
setCashAmount
(
tempTotalAmount
);
requirementsServiceDO
.
setCashAmount
(
tempTotalAmount
);
tempTotalAmount
=
BigDecimal
.
ZERO
;
}
else
{
tempTotalAmount
=
tempTotalAmount
.
subtract
(
cashAmt
);
flyerWalletFlowVO
.
setCashAmount
(
cashAmt
);
requirementsServiceDO
.
setCashAmount
(
cashAmt
);
}
}
break
;
case
"2"
:
if
(!(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
))
{
if
(
salaryAmt
.
compareTo
(
tempTotalAmount
)
==
1
||
salaryAmt
.
compareTo
(
tempTotalAmount
)
==
0
)
{
flyerWalletFlowVO
.
setSalaryAmount
(
tempTotalAmount
);
requirementsServiceDO
.
setSalaryAmount
(
tempTotalAmount
);
tempTotalAmount
=
BigDecimal
.
ZERO
;
}
else
{
tempTotalAmount
=
tempTotalAmount
.
subtract
(
salaryAmt
);
flyerWalletFlowVO
.
setSalaryAmount
(
salaryAmt
);
requirementsServiceDO
.
setSalaryAmount
(
salaryAmt
);
}
}
break
;
case
"3"
:
if
(!(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
))
{
// publisherWalletFlowVO.setWeChat(tempTotalAmount);
requirementsServiceDO
.
setWeChat
(
tempTotalAmount
);
tempTotalAmount
=
BigDecimal
.
ZERO
;
}
break
;
default
:
break
;
}
}
if
(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
//表示订单计算完成,需要支付的钱都算出来了
// System.out.println(flyerWalletFlowVO);
// System.out.println(requirementsServiceDO);
flyerWalletFlowVO
.
setUserAccountId
(
grabTheOrderVO
.
getUserAccountId
());
flyerWalletFlowVO
.
setOperateUserAccountId
(
grabTheOrderVO
.
getUserAccountId
());
// requirementsServiceDO.setCashAmount(walletFlowVO.getCashAmount());
// requirementsServiceDO.setSalaryAmount(walletFlowVO.getSalaryAmount());
if
(
orderNumberDTO
!=
null
)
{
requirementsServiceDO
.
setWeChat
(
orderNumberDTO
.
getWeChatPay
());
requirementsServiceDO
.
setWechatPayOrderNumber
(
orderNumberDTO
.
getPaymentOrderNumber
());
}
// BigDecimal cashAndSalaryAmount = walletFlowVO.getCashAmount().add(walletFlowVO.getSalaryAmount());
// BigDecimal preemptTotalAmount = cashAndSalaryAmount.add(orderNumberDTO.getWeChatPay());
// requirementsServiceDO.setPreemptTotalAmount(preemptTotalAmount);
BigDecimal
cashAmount
=
requirementsServiceDO
.
getCashAmount
();
BigDecimal
salaryAmount
=
requirementsServiceDO
.
getSalaryAmount
();
BigDecimal
weChat
=
requirementsServiceDO
.
getWeChat
();
BigDecimal
add
=
cashAmount
.
add
(
salaryAmount
);
BigDecimal
add1
=
add
.
add
(
weChat
);
requirementsServiceDO
.
setPreemptTotalAmount
(
add1
);
requirementsServiceDO
.
setOpenid
(
openid
);
requirementsServiceDO
.
setPhoneNum
(
grabTheOrderVO
.
getPhoneNum
());
//
//用户云享金+用户佣金>总金额
//
//剩余后台云享金
//
BigDecimal cashAmt = payWalletDTO.getCashAmt();
//
//剩余佣金
//
BigDecimal salaryAmt = payWalletDTO.getSalaryAmt();
//
//用户云享金加上佣金的总金额
//
BigDecimal cashAndSalary = cashAmt.add(salaryAmt);
//
//需要支付的总金额(任务佣金)
//
BigDecimal totalAmount = requirementsInfoDO.getOrderAmount();
// BigDecimal bigDecimal = new BigDecimal(0.0
);
//
totalAmount = totalAmount.multiply(bigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP);
//
String json = stringRedisTemplate.opsForValue().get(grabTheOrderVO.getWechatPayOrderNumber() + grabTheOrderVO.getUserAccountId());
//
GetOrderNumberDTO orderNumberDTO = JSONObject.parseObject(json, GetOrderNumberDTO.class);
//
if (orderNumberDTO != null) {
//
IsNullConvertZeroUtil.checkIsNull(orderNumberDTO);
//
}
//
//
//需要冻结的金额
//
FlyerWalletFlowVO flyerWalletFlowVO = new FlyerWalletFlowVO();
//
IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO);
//
//IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO);
//
//PublisherWalletFlowVO publisherWalletFlowVO = walletFlowVO.getPublisherWalletFlowVO();
//
BigDecimal tempTotalAmount = totalAmount;
//
String paymentType = grabTheOrderVO.getPaymentType();
//
String[] split = paymentType.split(",");
//
Set<String> collect = Arrays.asList(split).stream().collect(Collectors.toSet());
//
TreeSet<String> objects = new TreeSet<>(collect);
//
for (String type : objects) {
//
switch (type) {
//
case "1":
//
if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) {
//
if (cashAmt.compareTo(tempTotalAmount) == 1 || cashAmt.compareTo(tempTotalAmount) == 0) {
//
flyerWalletFlowVO.setCashAmount(tempTotalAmount);
//
requirementsServiceDO.setCashAmount(tempTotalAmount);
//
tempTotalAmount = BigDecimal.ZERO;
//
} else {
//
tempTotalAmount = tempTotalAmount.subtract(cashAmt);
//
flyerWalletFlowVO.setCashAmount(cashAmt);
//
requirementsServiceDO.setCashAmount(cashAmt);
//
}
//
}
//
break;
//
case "2":
//
if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) {
//
if (salaryAmt.compareTo(tempTotalAmount) == 1 || salaryAmt.compareTo(tempTotalAmount) == 0) {
//
flyerWalletFlowVO.setSalaryAmount(tempTotalAmount);
//
requirementsServiceDO.setSalaryAmount(tempTotalAmount);
//
tempTotalAmount = BigDecimal.ZERO;
//
} else {
//
tempTotalAmount = tempTotalAmount.subtract(salaryAmt);
//
flyerWalletFlowVO.setSalaryAmount(salaryAmt);
//
requirementsServiceDO.setSalaryAmount(salaryAmt);
//
}
//
}
//
break;
//
case "3":
//
if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) {
//
// publisherWalletFlowVO.setWeChat(tempTotalAmount);
//
requirementsServiceDO.setWeChat(tempTotalAmount);
//
tempTotalAmount = BigDecimal.ZERO;
//
}
//
break;
//
default:
//
break;
//
}
//
}
//
if (tempTotalAmount.compareTo(BigDecimal.ZERO) == 0) {
//
//表示订单计算完成,需要支付的钱都算出来了
//
// System.out.println(flyerWalletFlowVO);
//
// System.out.println(requirementsServiceDO);
//
//
flyerWalletFlowVO.setUserAccountId(grabTheOrderVO.getUserAccountId());
//
flyerWalletFlowVO.setOperateUserAccountId(grabTheOrderVO.getUserAccountId());
//
// requirementsServiceDO.setCashAmount(walletFlowVO.getCashAmount());
//
// requirementsServiceDO.setSalaryAmount(walletFlowVO.getSalaryAmount());
//
if (orderNumberDTO != null) {
//
requirementsServiceDO.setWeChat(orderNumberDTO.getWeChatPay());
//
requirementsServiceDO.setWechatPayOrderNumber(orderNumberDTO.getPaymentOrderNumber());
//
}
//
// BigDecimal cashAndSalaryAmount = walletFlowVO.getCashAmount().add(walletFlowVO.getSalaryAmount());
//
// BigDecimal preemptTotalAmount = cashAndSalaryAmount.add(orderNumberDTO.getWeChatPay());
//
// requirementsServiceDO.setPreemptTotalAmount(preemptTotalAmount);
//
BigDecimal cashAmount = requirementsServiceDO.getCashAmount();
//
BigDecimal salaryAmount = requirementsServiceDO.getSalaryAmount();
//
BigDecimal weChat = requirementsServiceDO.getWeChat();
//
BigDecimal add = cashAmount.add(salaryAmount);
//
BigDecimal add1 = add.add(weChat);
//
requirementsServiceDO.setPreemptTotalAmount(add1);
//
requirementsServiceDO.setOpenid(openid);
//
requirementsServiceDO.setPhoneNum(grabTheOrderVO.getPhoneNum());
//微信是否支付成功
requirementsDao
.
insertService
(
requirementsServiceDO
);
requirementsInfoDO
.
setRepertory
(
repertory
-
1
);
requirementsDao
.
updateGrabTheOrder
(
grabTheOrderVO
.
getRequirementsInfoId
(),
requirementsInfoDO
.
getRepertory
());
if
(
requirementsServiceDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
walletFlow
(
flyerWalletFlowVO
,
request
.
getHeader
(
"token"
));
// if (requirementsServiceDO.getCashAmount().compareTo(BigDecimal.ZERO) != 0
// || requirementsServiceDO.getSalaryAmount().compareTo(BigDecimal.ZERO) != 0) {
// walletFlow(flyerWalletFlowVO, request.getHeader("token"));
// }
//如果是多人订单 还要去修改父订单还需多少人字段
if
(
requireNum
>=
2
)
{
Integer
repertoryNeed
=
requirementsDao
.
selectRepertoryByRequireId
(
fatherRequireId
);
requirementsDao
.
updateRequirementsInfoRepertory
(
fatherRequireId
,
repertoryNeed
);
}
OnlyRequirementsInfoId
onlyRequirementsInfoId
=
new
OnlyRequirementsInfoId
();
onlyRequirementsInfoId
.
setRequirementsInfoId
(
grabTheOrderVO
.
getRequirementsInfoId
());
return
ResultBody
.
success
(
);
}
else
{
//云享金和佣金扣除完成,但是还不足支付订单金额,并且没有选择微信支付,所以支付不合法
return
ResultBody
.
success
(
"抢单失败"
);
}
return
ResultBody
.
success
(
onlyRequirementsInfoId
);
//
} else {
//
//云享金和佣金扣除完成,但是还不足支付订单金额,并且没有选择微信支付,所以支付不合法
//
return ResultBody.success("抢单失败");
//
}
}
...
...
@@ -3000,11 +3103,11 @@ public class RequirementsServiceImpl implements RequirementsService {
//给发布者发送
BigDecimal
orderAmount
=
infoDO
.
getOrderAmount
();
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.9
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
1.0
);
BigDecimal
bigDecimal1
=
orderAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
publisherWalletFlowVO
.
setModeOfPayment
(
700
);
publisherWalletFlowVO
.
setFlyerSalaryAmount
(
bigDecimal1
);
BigDecimal
bigDecimal2
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.
1
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
bigDecimal2
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.
0
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
publisherWalletFlowVO
.
setCashAmount
(
infoDO
.
getCashAmount
().
negate
());
publisherWalletFlowVO
.
setSalaryAmount
(
infoDO
.
getSalaryAmount
().
negate
());
...
...
@@ -3070,6 +3173,48 @@ public class RequirementsServiceImpl implements RequirementsService {
return
ResultBody
.
success
(
serviceEvaluateDTO
);
}
@Override
public
PageResult
selectRequireSonInfo
(
Integer
userAccountId
,
MyPublishQO
param
)
{
Integer
pageNo
=
param
.
getPageNo
();
param
.
buildCurrentPage
();
param
.
setUserAccountId
(
userAccountId
);
int
count
=
requirementsDao
.
myPublishcount
(
param
);
List
<
RequirementsInfoDO
>
requirementsInfoDOS
=
requirementsDao
.
selectRequireSonInfo
(
param
);
List
<
RequirementsInfoVO
>
collect
=
requirementsInfoDOS
.
stream
().
map
(
RequirementsInfoDO:
:
buildRequirementsInfoVO
).
collect
(
Collectors
.
toList
());
List
<
IndustryTypeDTO
>
industryTypeDTOS
=
listIndustry
();
for
(
RequirementsInfoVO
requirementsInfoVO
:
collect
)
{
for
(
IndustryTypeDTO
industryTypeDTO
:
industryTypeDTOS
)
{
if
(
requirementsInfoVO
.
getServiceId
()
!=
null
&&
requirementsInfoVO
.
getServiceId
().
equals
(
industryTypeDTO
.
getId
()))
{
requirementsInfoVO
.
setServiceName
(
industryTypeDTO
.
getTypeName
());
}
}
}
return
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
collect
);
}
@Override
public
ResultBody
agreeOrRefusePilot
(
AgreeOrRefusePilotQO
param
)
{
//判断飞手是否被同意 2就是该抵达现场下一步流程
Boolean
agreeOrder
=
param
.
getServiceFlowId
()
==
2
;
requirementsDao
.
insertAgreePilotOrder
(
param
);
Integer
requireId
=
param
.
getRequireInfoId
();
//同意
if
(
agreeOrder
)
{
requirementsDao
.
updateScene
(
requireId
,
2
);
requirementsDao
.
updateInfo
(
requireId
,
2
);
}
else
{
//修改订单所需人数以及订单状态
requirementsDao
.
updateRequirementsInfoByRefusePilot
(
requireId
);
Integer
fatherRequireId
=
requirementsDao
.
selectFatherRequireIdBySonId
(
requireId
);
Integer
repertory
=
requirementsDao
.
selectRepertoryByRequireId
(
fatherRequireId
);
requirementsDao
.
updateRequirementsInfoRepertory
(
fatherRequireId
,
repertory
);
requirementsDao
.
updateRequirementsService
(
requireId
,
param
.
getPilotCertificationUserId
());
//TODO 被拒绝后应该退回飞手的押金
}
return
ResultBody
.
success
();
}
public
UserAccountSimpleDTO
feignGetUserSimpleInfo
(
Integer
userAccountId
,
HttpServletRequest
request
)
{
String
token
=
request
.
getHeader
(
"token"
);
...
...
release-service/src/main/resources/mapper/requirements/RequirementsDao.xml
浏览文件 @
408e1895
...
...
@@ -483,7 +483,9 @@
ri.insurance,
ri.publish,
ri.service_name,
ri.create_time
ri.create_time,
ri.repertory,
ri.require_num
FROM requirements_info ri
left join requirements_amount ra
on ra.requirements_info_id = ri.id and ri.user_account_id = ra.user_account_id
...
...
@@ -492,6 +494,8 @@
AND ri.service_flow = 1
AND ri.is_deleted = 0
AND ri.service_flow_id != 7
AND father_require_id = 0
AND repertory > 0
ORDER BY ri.order_level_amount DESC,
ri.id DESC
</select>
...
...
@@ -512,6 +516,9 @@
ri.publish_phone,
ri.publisher_number,
ri.service_id,
ri.repertory,
ri.require_num,
ri.father_require_id,
ra.total_amount,
ri.insurance,
sf.doing,
...
...
@@ -538,7 +545,7 @@
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
AND ra.user_account_id = ri.user_account_id
WHERE ri.id = #{id}
WHERE ri.id = #{id}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
<insert
id=
"addPublishService"
parameterType=
"com.mmc.csf.release.entity.requirements.ServiceRequirementsDO"
...
...
@@ -547,12 +554,26 @@
require_description, create_time,
update_time, task_start_time, task_end_time, task_address, longitude,
latitude, publisher_number, insurance, publish,
service_flow_id, adcode, order_level_amount, openid, service_name,province_code,city_code,district_code)
service_flow_id, adcode, order_level_amount, openid, service_name,province_code,city_code,district_code
,require_num,repertory
)
VALUES (#{serviceId}, #{userAccountId}, #{publishName}, #{publishPhone},
#{requireDescription}, NOW(),
NOW(), #{taskStartTime}, #{taskEndTime}, #{taskAddress}, #{longitude},
#{latitude}, #{publisherNumber}, #{insurance}, 1, 1, #{adcode}, #{orderLevelAmount}, #{openid},
#{serviceName},#{provinceCode},#{cityCode},#{districtCode});
#{serviceName},#{provinceCode},#{cityCode},#{districtCode},#{requireNum},#{repertory});
</insert>
<insert
id=
"addPublishServiceSon"
parameterType=
"com.mmc.csf.release.entity.requirements.ServiceRequirementsSonDO"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
INSERT INTO requirements_info(service_id, user_account_id, publish_name, publish_phone,
require_description, create_time,
update_time, task_start_time, task_end_time, task_address, longitude,
latitude, publisher_number, insurance, publish,
service_flow_id, adcode, order_level_amount, openid, service_name,province_code,city_code,district_code,father_require_id)
VALUES (#{serviceId}, #{userAccountId}, #{publishName}, #{publishPhone},
#{requireDescription}, NOW(),
NOW(), #{taskStartTime}, #{taskEndTime}, #{taskAddress}, #{longitude},
#{latitude}, #{publisherNumber}, #{insurance}, 1, 1, #{adcode}, #{orderLevelAmount}, #{openid},
#{serviceName},#{provinceCode},#{cityCode},#{districtCode},#{fatherRequireId});
</insert>
<insert
id=
"addAmount"
parameterType=
"com.mmc.csf.release.entity.requirements.RequirementsAmountDO"
...
...
@@ -600,7 +621,7 @@
<update
id=
"updateGrabTheOrder"
>
UPDATE requirements_info
set repertory=#{repertory},
service_flow_id =
2
,
service_flow_id =
10
,
update_time=NOW()
where id = #{requirementsInfoId}
</update>
...
...
@@ -613,7 +634,7 @@
wechat_pay_order_number, service_flow_id, preempt_total_amount, openid,
create_time, update_time, preempt_phone)
VALUES (#{requirementsInfoId}, #{pilotCertificationId}, #{pilotCertificationUserId},
#{teamId}, #{teamUserId}, #{cashAmount}, #{weChat}, #{salaryAmount}, #{wechatPayOrderNumber},
2
,
#{teamId}, #{teamUserId}, #{cashAmount}, #{weChat}, #{salaryAmount}, #{wechatPayOrderNumber},
10
,
#{preemptTotalAmount}, #{openid}, NOW(), NOW(), #{phoneNum});
</insert>
...
...
@@ -628,14 +649,15 @@
UPDATE requirements_service
set service_flow_id=#{serviceFlowId},
update_time=NOW()
where requirements_info_id = #{requirementsInfoId}
where requirements_info_id = #{requirementsInfoId}
and (service_flow_id != 11 or service_flow_id is NULL)
</update>
<update
id=
"updateInfo"
>
UPDATE requirements_info
set service_flow_id=#{serviceFlowId},
update_time=NOW()
where id = #{requirementsInfoId}
where id = #{requirementsInfoId} and service_flow_id != 11
and is_deleted != 1
</update>
<update
id=
"updateFlow"
>
...
...
@@ -698,6 +720,7 @@
#{userAccountId});
</insert>
<select
id=
"evaluateDetails"
resultType=
"com.mmc.csf.release.entity.requirements.ServiceEvaluateDO"
>
select id,
evaluation_content,
...
...
@@ -757,7 +780,9 @@
sf.flyer_port,
sf.order_status,
ri.publish,
rau.update_order_amount
ri.require_num,
rau.update_order_amount,
ri.repertory
FROM
requirements_info ri
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
...
...
@@ -765,6 +790,7 @@
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
WHERE ri.user_account_id = #{userAccountId} and ri.is_deleted!=1
and father_require_id = 0
<if
test=
" requirementsInfoId != null "
>
and ri.id=#{requirementsInfoId}
</if>
...
...
@@ -826,10 +852,13 @@
FROM
requirements_info ri
LEFT JOIN requirements_type rt ON rt.id = ri.requirement_type_id
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
# TODO 可能会有问题 删除的
# LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
INNER JOIN requirements_service rs ON ri.id = rs.requirements_info_id
#增加的
LEFT JOIN service_flow sf ON sf.id = rs.service_flow_id
WHERE rs.pilot_certification_user_id = #{userAccountId} AND rs.is_deleted !=1
<if
test=
" requirementsInfoId != null "
>
and ri.id=#{requirementsInfoId}
...
...
@@ -930,7 +959,7 @@
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
INNER JOIN requirements_service rs ON ri.id = rs.requirements_info_id
WHERE rs.pilot_certification_user_id = #{userAccountId}
AND rs.requirements_info_id = #{requirementsInfoId}
AND rs.requirements_info_id = #{requirementsInfoId}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
<select
id=
"customerDroneFlyerCancel"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsServiceDO"
>
...
...
@@ -974,7 +1003,7 @@
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
WHERE rs.requirements_info_id = #{requirementsInfoId}
WHERE rs.requirements_info_id = #{requirementsInfoId}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
<select
id=
"publisherCancel"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
>
...
...
@@ -1024,7 +1053,7 @@
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
WHERE ri.user_account_id = #{userAccountId}
AND ri.id = #{requirementsInfoId}
AND ri.id = #{requirementsInfoId}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
...
...
@@ -1074,7 +1103,7 @@
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
WHERE ri.id = #{requirementsInfoId}
WHERE ri.id = #{requirementsInfoId}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
...
...
@@ -1124,7 +1153,7 @@
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
WHERE ri.id = #{requirementsInfoId}
WHERE ri.id = #{requirementsInfoId}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
<select
id=
"publisherCancelFlyer"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
>
...
...
@@ -1173,7 +1202,7 @@
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
WHERE ri.id = #{requirementsInfoId}
WHERE ri.id = #{requirementsInfoId}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
...
...
@@ -1222,7 +1251,7 @@
LEFT JOIN service_flow sf ON sf.id = ri.service_flow_id
LEFT JOIN requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
WHERE ri.publisher_number = #{publisherNumber}
WHERE ri.publisher_number = #{publisherNumber}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
<select
id=
"flowDictionary"
resultType=
"com.mmc.csf.release.entity.requirements.FlowDictionaryDO"
>
...
...
@@ -1268,6 +1297,16 @@
</collection>
</resultMap>
<resultMap
id=
"serviceAgreePilotOrderMap"
type=
"com.mmc.csf.infomation.dto.AgreePilotOrderDTO"
>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"requirementsInfoId"
column=
"require_info_id"
/>
<result
property=
"serviceFlowId"
column=
"service_flow_id"
/>
<collection
property=
"flowDictionaryDTO"
ofType=
"com.mmc.csf.infomation.dto.FlowDictionaryDTO"
select=
"selectServiceFlow"
column=
"{serviceFlowId=service_flow_id}"
>
</collection>
</resultMap>
<resultMap
id=
"settleAccountsMap"
type=
"com.mmc.csf.infomation.dto.ServiceSettleAccountsDTO"
>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
...
...
@@ -1329,7 +1368,7 @@
<select
id=
"requirementsServiceDTO"
resultMap=
"resultMap"
>
select requirements_info_id, create_time, update_time, service_flow
from requirements_service
where requirements_info_id = #{requirementsInfoId}
where requirements_info_id = #{requirementsInfoId}
and (service_flow_id != 11 or service_flow_id is NULL)
</select>
<select
id=
"serviceArriveSceneDTO"
resultMap=
"resultMapCommon"
>
...
...
@@ -1347,6 +1386,11 @@
where requirements_info_id = #{requirementsInfoId}
</select>
<select
id=
"serviceAgreePilotOrderDTO"
resultMap=
"serviceAgreePilotOrderMap"
>
select require_info_id,create_time,service_flow_id from agree_pilot_order
where service_flow_id = 2 and require_info_id = #{requirementsInfoId}
</select>
<select
id=
"serviceFulfilATaskDTO"
resultMap=
"serviceFulfilATaskMap"
>
SELECT id,
task_describe,
...
...
@@ -1510,7 +1554,7 @@
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 requirements_service rs ON ri.id = rs.requirements_info_id
WHERE ri.id = #{requirementsInfoId}
WHERE ri.id = #{requirementsInfoId}
and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
</select>
<update
id=
"deletePublishService"
>
...
...
@@ -1523,18 +1567,18 @@
SELECT count(*)
FROM requirements_service
WHERE requirements_info_id = #{requirementsInfoId}
AND pilot_certification_user_id = #{userAccountId}
AND pilot_certification_user_id = #{userAccountId}
and (service_flow_id != 11 or service_flow_id is NULL)
</select>
<update
id=
"deletePreempt"
>
update requirements_service
set is_deleted=1
where requirements_info_id = #{requirementsInfoId}
where requirements_info_id = #{requirementsInfoId}
and (service_flow_id != 11 or service_flow_id is NULL)
</update>
<select
id=
"serviceReq"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsServiceDO"
>
select cash_amount, we_chat, salary_amount, wechat_pay_order_number, preempt_total_amount
from requirements_service
where requirements_info_id = #{requirementsInfoId}
where requirements_info_id = #{requirementsInfoId}
and (service_flow_id != 11 or service_flow_id is NULL)
</select>
<update
id=
"updateRepertory"
>
update requirements_info
...
...
@@ -1559,4 +1603,100 @@
INNER JOIN requirements_amount ra ON ri.id = ra.requirements_info_id
WHERE ri.service_flow_id
<![CDATA[<>]]>
7
</select>
<select
id=
"getRequirementsSonInfoId"
resultType=
"java.lang.Integer"
>
select id from requirements_info where father_require_id = #{fatherRequireId} and repertory = 1
limit 1
</select>
<select
id=
"selectBooleanByFatherIdAndUserId"
resultType=
"java.lang.Integer"
>
select count(ri.id) from requirements_service rs
inner join requirements_info ri on ri.id = rs.requirements_info_id
where ri.father_require_id =#{fatherRequireId}
and rs.pilot_certification_user_id = #{userId} and rs.is_deleted = 0
</select>
<select
id=
"selectRequireSonInfo"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsInfoDO"
>
SELECT
ri.id,
ri.task_title,
ri.task_start_time,
ri.task_end_time,
ri.task_address,
ri.longitude,
ri.latitude,
ri.require_url,
ri.require_description,
ri.requirement_type_id,
ri.user_account_id,
rt.type_name AS requirementTypeName,
ri.publish_phone,
ri.publisher_number,
ri.service_id,
ra.total_amount,
ri.insurance,
ra.order_level,
ra.order_amount,
sf.doing,
sf.waiting,
sf.user_port,
sf.flyer_port,
sf.order_status,
ri.publish,
rau.update_order_amount,
ri.father_require_id,
rs.pilot_certification_id,
rs.pilot_certification_user_id
FROM
requirements_info ri
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 requirements_amount ra ON ra.requirements_info_id = ri.id
LEFT JOIN requirements_amount_update rau ON rau.requirements_info_id = ri.id
left join requirements_service rs on ri.id = rs.requirements_info_id
WHERE ri.user_account_id = #{userAccountId} and ri.is_deleted!=1 and (rs.service_flow_id != 11 or rs.service_flow_id is NULL)
<if
test=
" requirementsInfoId != null "
>
and ri.father_require_id=#{requirementsInfoId}
</if>
ORDER BY ri.id desc
limit #{pageNo}, #{pageSize}
</select>
<select
id=
"selectFatherRequireIdBySonId"
resultType=
"java.lang.Integer"
>
select father_require_id from requirements_info
where id = #{requireInfoId}
</select>
<select
id=
"selectRepertoryByRequireId"
resultType=
"java.lang.Integer"
>
select count(id) from requirements_info where father_require_id = #{requireInfoId}
and repertory = 1
</select>
<update
id=
"updateRequirementsInfoRepertory"
>
update requirements_info set repertory = #{fatherRepertory}
where id = #{fatherRequireId}
</update>
<update
id=
"updateRequirementsInfoByRefusePilot"
>
update requirements_info
set repertory = 1,service_flow_id = 1
where id=#{requireInfoId}
</update>
<update
id=
"updateRequirementsService"
>
update requirements_service set service_flow_id = 11
where requirements_info_id = #{requireInfoId} and pilot_certification_user_id = #{pilotUserId}
</update>
<insert
id=
"insertAgreePilotOrder"
>
insert into agree_pilot_order(require_info_id, service_flow_id, pilot_certification_user_id, create_time)
values(#{requireInfoId},#{serviceFlowId},#{pilotCertificationUserId},NOW())
</insert>
<select
id=
"selectServiceIdByRequireIdAndUserId"
resultType=
"java.lang.Integer"
>
select service_flow_id from agree_pilot_order
where require_info_id = #{requirementsId} and pilot_certification_user_id = #{userAccountId}
</select>
<select
id=
"selectRequirementsNum"
resultType=
"java.lang.Integer"
>
select count(id) from requirements_info where father_require_id =#{requirementsId}
</select>
<select
id=
"selectServiceFlowIdByFatherId"
resultType=
"java.lang.Integer"
>
select count(id) from requirements_info where father_require_id = #{requirementsId} and service_flow_id not in (1,10)
</select>
<select
id=
"selectRequirementsRefuse"
resultType=
"java.lang.Integer"
>
select count(id) from requirements_service where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId}
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论