|
|
|
@ -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; |
|
|
|
} |
|
|
|
|
|
|
|
} |