前端-胡立永 1 month ago
parent
commit
16b4303398
1 changed files with 80 additions and 32 deletions
  1. +80
    -32
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/OrderServiceImpl.java

+ 80
- 32
jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/OrderServiceImpl.java View File

@ -540,10 +540,13 @@ public class OrderServiceImpl implements OrderService {
}
if("0".equals(order.getPayType())){
order.setStatus(5);
//修复试工费用应该支付给求职者而不是企业
//先付模式企业已支付现在确认试工通过需要将费用转给求职者
try {
EmployResume resume = employResumeService.getById(order.getResumeId());
HanHaiMember jobSeeker = hanHaiMemberService.getById(resume.getUserId());
HanHaiMember jobSeeker = getJobSeekerFromOrder(order);
if(jobSeeker == null){
log.error("无法获取求职者信息,订单号:{}", order.getId());
return Result.error("求职者信息异常,无法结算试工费用");
}
addMemberAmount(jobSeeker, order.getPayMoney(), "试工费用到账:" + order.getTitle());
// 如果有求职信息将求职信息状态设置为已完成
@ -555,7 +558,7 @@ public class OrderServiceImpl implements OrderService {
}
}
} catch (Exception e) {
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId());
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId(), e);
return Result.error("求职者信息异常,无法结算试工费用");
}
}else {
@ -603,20 +606,14 @@ public class OrderServiceImpl implements OrderService {
}else {//先试用后付
//给求职者钱包加钱
try {
EmployResume resume = employResumeService.getById(order.getResumeId());
HanHaiMember member = hanHaiMemberService.getById(resume.getUserId());
addMemberAmount(member, order.getPayMoney(), "试工费用到账:" + order.getTitle());
// order.setOrderStatus("Y");
// if ("true".equals(buyInsurance)){
// order.setOrderStatusSeek("Y");
// }else {
// order.setOrderStatusSeek("N");
// }
HanHaiMember jobSeeker = getJobSeekerFromOrder(order);
if(jobSeeker != null){
addMemberAmount(jobSeeker, order.getPayMoney(), "试工费用到账:" + order.getTitle());
} else {
log.error("无法获取求职者信息,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId());
}
}catch (Exception e){
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId());
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId(), e);
}
//修改订单状态
@ -659,14 +656,38 @@ public class OrderServiceImpl implements OrderService {
public Result<?> confirmOrderTryCompanyOk(String token, String orderId) {
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
EmployOrder order = employOrderService.getById(orderId);
if(order == null){
return Result.error("订单不存在");
}
// 先付模式需要转账给求职者
if("0".equals(order.getPayType())){
try {
HanHaiMember jobSeeker = getJobSeekerFromOrder(order);
if(jobSeeker == null){
log.error("无法获取求职者信息,订单号:{}", order.getId());
return Result.error("求职者信息异常,无法结算试工费用");
}
addMemberAmount(jobSeeker, order.getPayMoney(), "试工费用到账:" + order.getTitle());
log.info("试工费用转账成功,订单号:{},金额:{},收款人:{}", order.getId(), order.getPayMoney(), jobSeeker.getId());
} catch (Exception e) {
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId(), e);
return Result.error("求职者信息异常,无法结算试工费用");
}
}
//修改订单状态
order.setStatus(5);
employOrderService.updateById(order);
EmploySeek seek = employSeekService.getById(order.getSeekId());
if (seek != null){
seek.setSeekStatus(2);
employSeekService.updateById(seek);
// 如果有求职信息将求职信息状态设置为已完成
if(order.getSeekId() != null && StringUtils.isNotBlank(order.getSeekId())){
EmploySeek seek = employSeekService.getById(order.getSeekId());
if (seek != null){
seek.setSeekStatus(2); // 设置为已完成状态
employSeekService.updateById(seek);
}
}
return Result.ok("确认成功");
@ -759,26 +780,28 @@ public class OrderServiceImpl implements OrderService {
}else {//先试用后付
//给求职者钱包加钱
try {
EmployResume resume = employResumeService.getById(order.getResumeId());
HanHaiMember member = hanHaiMemberService.getById(resume.getUserId());
addMemberAmount(member, order.getPayMoney(), "试工费用到账:" + order.getTitle());
HanHaiMember jobSeeker = getJobSeekerFromOrder(order);
if(jobSeeker != null){
addMemberAmount(jobSeeker, order.getPayMoney(), "试工费用到账:" + order.getTitle());
} else {
log.error("无法获取求职者信息,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId());
}
}catch (Exception e){
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId());
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId(), e);
}
//修改订单状态
order.setStatus(4);
}
order.setOrderStatus("Y");
if (order.getOrderNoMoney().compareTo(order.getPayMoney()) > 0){
order.setOrderStatusSeek("Y");
}else {
order.setOrderStatusSeek("N");
if (order.getType() == 0){
if (order.getOrderNoMoney().compareTo(order.getPayMoney()) > 0){
order.setOrderStatusSeek("Y");
}else {
order.setOrderStatusSeek("N");
}
}
employOrderService.updateById(order);
@ -789,4 +812,29 @@ public class OrderServiceImpl implements OrderService {
" </xml>";
}
/**
* 从订单中获取求职者信息
* 根据订单类型(type)采用不同的获取策略
*/
private HanHaiMember getJobSeekerFromOrder(EmployOrder order) {
try {
if (order.getType() == 0) {
// 企业招聘订单求职者是接单的人通过简历信息获取
EmployResume resume = employResumeService.getById(order.getResumeId());
if (resume != null) {
return hanHaiMemberService.getById(resume.getUserId());
}
} else if (order.getType() == 1) {
// 求职订单求职者是发布求职的人通过求职信息获取
EmploySeek seek = employSeekService.getById(order.getSeekId());
if (seek != null) {
return hanHaiMemberService.getById(seek.getUserId());
}
}
} catch (Exception e) {
log.error("获取求职者信息失败,订单号:{}", order.getId(), e);
}
return null;
}
}

Loading…
Cancel
Save