前端-胡立永 1 month ago
parent
commit
ab6dc7efb2
14 changed files with 346 additions and 109 deletions
  1. +1
    -1
      admin-hanhai-vue/.env.development
  2. +6
    -6
      han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java
  3. +9
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employAuthenticationCompany/entity/EmployAuthenticationCompany.java
  4. +3
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJob/entity/EmployJob.java
  5. +11
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employOrder/entity/EmployOrder.java
  6. +7
    -3
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employSeek/entity/EmploySeek.java
  7. +20
    -11
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/employController/OrderController.java
  8. +7
    -1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/OrderService.java
  9. +8
    -3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/AmountServiceImpl.java
  10. +34
    -20
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java
  11. +222
    -38
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/OrderServiceImpl.java
  12. +12
    -20
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/SeekServiceImpl.java
  13. +4
    -1
      jeecg-boot-module-system/src/main/resources/application-dev.yml
  14. +2
    -4
      jeecg-boot-module-system/src/main/resources/pay_weixin.properties

+ 1
- 1
admin-hanhai-vue/.env.development View File

@ -1,5 +1,5 @@
NODE_ENV=development
VUE_APP_API_BASE_URL=http://localhost:8001/employ-api/
VUE_APP_API_BASE_URL=http://localhost:8002/employ-api/
//VUE_APP_API_BASE_URL=http://localhost:8000/employ-api/
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview


+ 6
- 6
han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java View File

@ -8,13 +8,15 @@ import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import org.jeecg.modules.pay.config.WxPay;
import org.springframework.beans.factory.annotation.Value;
import java.io.File;
@SuppressWarnings("all")
public class MpWxPayService {
public boolean dev = false;
@Value("${MpWxPayService.dev}")
public boolean dev;
public WxPay wxPay;
public WxPayService wxPayService;
@ -89,7 +91,7 @@ public class MpWxPayService {
*/
public Object createOrder(String productName, String clientIp,
String productId, Integer price, String orderNo,
String openId, String body){
String openId, String body, String notifyUrl){
WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
request.setDeviceInfo("WEB"); //设备号
request.setTradeType("JSAPI"); //交易类型
@ -98,14 +100,12 @@ public class MpWxPayService {
request.setDetail(productName); //商品详情
request.setTotalFee(price); //总金额|分计
request.setSpbillCreateIp(clientIp); //终端IP
// request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径
request.setNotifyUrl("http://h5.xzaiyp.top/employ-api/employ/amount/payNotify");//设置回调路径
request.setNotifyUrl(wxPay.notifyUrl + notifyUrl);//设置回调路径
request.setProductId(productId); //商品id
request.setOpenid(openId); //JSAPI OPENID
if (dev){
request.setTotalFee(price);
// request.setNotifyUrl(wxPay.notifyUrlDev);
request.setNotifyUrl("http://h5.xzaiyp.top/employ-api/employ/amount/payNotify");//设置回调路径
request.setNotifyUrl(wxPay.notifyUrlDev + notifyUrl);
}
try {
Object order = wxPayService.createOrder(request);


+ 9
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employAuthenticationCompany/entity/EmployAuthenticationCompany.java View File

@ -95,4 +95,13 @@ public class EmployAuthenticationCompany implements Serializable {
@Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@ApiModelProperty(value = "关联用户id")
private java.lang.String userId;
/**经度*/
@Excel(name = "经度", width = 15)
@ApiModelProperty(value = "经度")
private BigDecimal latitude;
/**纬度*/
@Excel(name = "纬度", width = 15)
@ApiModelProperty(value = "纬度")
private BigDecimal longitude;
}

+ 3
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJob/entity/EmployJob.java View File

@ -4,6 +4,8 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@ -138,5 +140,5 @@ public class EmployJob implements Serializable {
private HanHaiMember hanHaiMember;
@TableField(exist = false)
private EmployOrder employOrder;
private List<EmployOrder> employOrder;
}

+ 11
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employOrder/entity/EmployOrder.java View File

@ -183,6 +183,17 @@ public class EmployOrder implements Serializable {
@ApiModelProperty(value = "企业支付状态")
private java.lang.String orderStatus;
@Excel(name = "求职者支付微信订单号", width = 15)
@ApiModelProperty(value = "求职者支付微信订单号")
private java.lang.String orderNoSeek;
@Excel(name = "求职者支付状态", width = 15)
@ApiModelProperty(value = "求职者支付状态")
private java.lang.String orderStatusSeek;
@Excel(name = "交通费", width = 15)
@ApiModelProperty(value = "交通费")
private BigDecimal fare;
@TableField (exist = false)
private EmployJob employJob;


+ 7
- 3
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employSeek/entity/EmploySeek.java View File

@ -58,7 +58,7 @@ public class EmploySeek implements Serializable {
/**求职日薪*/
@Excel(name = "求职日薪", width = 15)
@ApiModelProperty(value = "求职日薪")
private java.lang.String dayMoney;
private BigDecimal dayMoney;
/**求职行业*/
@Excel(name = "求职行业", width = 15, dictTable = "employ_category", dicText = "name", dicCode = "id")
@Dict(dictTable = "employ_category", dicText = "name", dicCode = "id")
@ -72,11 +72,11 @@ public class EmploySeek implements Serializable {
/**经度*/
@Excel(name = "经度", width = 15)
@ApiModelProperty(value = "经度")
private java.lang.String latitude;
private BigDecimal latitude;
/**纬度*/
@Excel(name = "纬度", width = 15)
@ApiModelProperty(value = "纬度")
private java.lang.String longitude;
private BigDecimal longitude;
/**求职最大薪资*/
@Excel(name = "求职最大薪资", width = 15)
@ApiModelProperty(value = "求职最大薪资")
@ -108,6 +108,10 @@ public class EmploySeek implements Serializable {
@Excel(name = "出行方式", width = 15)
@ApiModelProperty(value = "出行方式")
private java.lang.String selectGo;
/**出行方式*/
@Excel(name = "求职状态", width = 15)
@ApiModelProperty(value = "求职状态(0待聘用,1已聘用,2已完成)")
private java.lang.Integer seekStatus;
@TableField(exist = false)
private HanHaiMember hanHaiMember;


+ 20
- 11
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/employController/OrderController.java View File

@ -8,12 +8,10 @@ import org.jeecg.modules.apiBean.PageBean;
import org.jeecg.modules.apiService.NewsService;
import org.jeecg.modules.apiService.OrderService;
import org.jeecg.modules.employOrder.entity.EmployOrder;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
@Api(tags="订单-订单相关接口")
@RestController
@ -40,7 +38,7 @@ public class OrderController {
return orderService.queryOrderById(token, orderId);
}
//订单信息-简历信息-立即聘
//订单信息-简历信息-立即
@ApiOperation(value="订单信息-简历信息-立即应聘", notes="订单信息-简历信息-立即应聘")
@RequestMapping(value = "/addOrderWork", method = {RequestMethod.POST})
public Result<?> addOrderWork(@RequestHeader("X-Access-Token")String token, String id){
@ -77,14 +75,14 @@ public class OrderController {
return orderService.deleteOrder(token, orderId);
}
//订单信息-企业确认订单
@ApiOperation(value="订单信息-企业确认订单", notes="订单信息-企业确认订单")
//订单信息-企业确认订单/求职者确认订单
@ApiOperation(value="订单信息-企业确认订单/求职者确认订单", notes="订单信息-企业确认订单")
@RequestMapping(value = "/confirmOrder", method = {RequestMethod.POST})
public Result<?> confirmOrder(@RequestHeader("X-Access-Token")String token, String orderId){
return orderService.confirmOrder(token, orderId);
}
//订单信息-确认试工完成
//订单信息-求职者确认试工完成
@ApiOperation(value="订单信息-确认试工完成", notes="订单信息-确认试工完成")
@RequestMapping(value = "/confirmOrderTry", method = {RequestMethod.POST})
public Result<?> confirmOrderTry(@RequestHeader("X-Access-Token")String token, String orderId){
@ -101,11 +99,11 @@ public class OrderController {
//企业支付
@ApiOperation(value="订单信息-企业支付", notes="订单信息-企业支付")
@RequestMapping(value = "/payOrderCompany", method = {RequestMethod.POST})
public Result<?> payOrderCompany(@RequestHeader("X-Access-Token")String token, String orderId,Integer payType){
return orderService.payOrderCompany(token, orderId,payType);
public Result<?> payOrderCompany(@RequestHeader("X-Access-Token")String token, String orderId,Integer payType, BigDecimal fare){
return orderService.payOrderCompany(token, orderId,payType, fare);
}
//确认企业已结款
//求职者确认企业已结款
@ApiOperation(value="订单信息-确认企业已结款", notes="订单信息-确认企业已结款")
@RequestMapping(value = "/confirmOrderTryCompanyOk", method = {RequestMethod.POST})
public Result<?> confirmOrderTryCompanyOk(@RequestHeader("X-Access-Token")String token, String orderId){
@ -113,4 +111,15 @@ public class OrderController {
}
//求职者支付保险回调
@PostMapping("/payNotify")
public Object payNotify(@RequestBody String requestBody){
return orderService.payNotify(requestBody);
}
//企业支付试工日新回调
@PostMapping("/payNotifyCompany")
public Object payNotifyCompany(@RequestBody String requestBody){
return orderService.payNotifyCompany(requestBody);
}
}

+ 7
- 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/OrderService.java View File

@ -8,6 +8,8 @@ import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.math.BigDecimal;
public interface OrderService {
//订单信息-查看订单列表
@ -49,11 +51,15 @@ public interface OrderService {
//企业支付
public Result<?> payOrderCompany(String token, String orderId,Integer payType);
public Result<?> payOrderCompany(String token, String orderId,Integer payType, BigDecimal fare);
//确认企业已结款
public Result<?> confirmOrderTryCompanyOk(String token, String orderId);
//求职者支付保险回调
Object payNotify(String requestBody);
//企业支付试工日新回调
Object payNotifyCompany(String requestBody);
}

+ 8
- 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/AmountServiceImpl.java View File

@ -123,7 +123,9 @@ public class AmountServiceImpl implements AmountService {
i1,
employTrade.getId(),
hanHaiMember.getAppletOpenid(),
employTrade.toString());
employTrade.toString(),
"/employ/amount/payNotify"
);
return Result.OK("支付成功",appOrder);
}catch (Exception e){
@ -133,7 +135,7 @@ public class AmountServiceImpl implements AmountService {
}
//开通vip-支付回调
public Result<?> payNotify(String requestBody){
public Object payNotify(String requestBody){
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
String outTradeNo = notify.getOutTradeNo();
log.info("支付回调订单号码:"+outTradeNo);
@ -168,7 +170,10 @@ public class AmountServiceImpl implements AmountService {
e.printStackTrace();
}
return null;
return "<xml>" +
" <return_code><![CDATA[SUCCESS]]></return_code>" +
" <return_msg><![CDATA[OK]]></return_msg>" +
" </xml>";
}
//我的钱包-金额明细


+ 34
- 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java View File

@ -17,9 +17,12 @@ import org.jeecg.modules.employJob.service.IEmployJobService;
import org.jeecg.modules.employOrder.entity.EmployOrder;
import org.jeecg.modules.employOrder.service.IEmployOrderService;
import org.jeecg.modules.employResume.entity.EmployResume;
import org.jeecg.modules.employResume.service.IEmployResumeService;
import org.jeecg.modules.employSeek.entity.EmploySeek;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.system.service.ISysDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -52,6 +55,10 @@ public class JobServiceImpl implements JobService {
private IHanHaiMemberService hanHaiMemberService;
@Resource
private IEmployOrderService employOrderService;
@Autowired
private IEmployResumeService employResumeService;
/******************************************************************************************************************/
//工作信息-查询工作信息列表
@ -120,6 +127,7 @@ public class JobServiceImpl implements JobService {
}
}
//工作信息-根据Id查看工作详情
@Override
public Result<?> queryJobById(String token, String jobId) {
@ -143,18 +151,16 @@ public class JobServiceImpl implements JobService {
EmployCategory categoryTwo = employCategoryService.getById(job.getCategoryTwo());
job.setCategoryTwo(categoryTwo.getName());
//结算方式
switch (job.getPayType()){
case "0":
job.setPayType("微信支付");
break;
case "1":
job.setPayType("支付宝支付");
break;
case "2":
job.setPayType("线下结算");
break;
}
// switch (job.getPayType()){
// case "0":
// job.setPayType("提前支付");
// break;
// case "1":
// job.setPayType("试用后支付");
// break;
// }
//2获取用户实名信息
@ -175,6 +181,8 @@ public class JobServiceImpl implements JobService {
job.setEmployAuthenticationCompany(company);
}
setJobOrder(job);
//3用户信息
HanHaiMember hanHaiMember = hanHaiMemberService.getById(job.getUserId());
job.setHanHaiMember(hanHaiMember);
@ -186,6 +194,17 @@ public class JobServiceImpl implements JobService {
}
}
private void setJobOrder(EmployJob job){
List<EmployOrder> list = employOrderService.lambdaQuery().eq(EmployOrder::getJobId, job.getId()).list();
for (EmployOrder employOrder : list) {
employOrder.setEmployResume(employResumeService.getById(employOrder.getResumeId()));
}
job.setEmployOrder(list);
}
//工作信息-我的发布
@Override
public Result<?> queryJobListByUserId(String token, PageBean pageBean) {
@ -198,18 +217,13 @@ public class JobServiceImpl implements JobService {
Page<EmployJob> pageList = employJobService
.lambdaQuery()
.eq(EmployJob::getUserId, hanHaiMember.getId())
.orderByDesc(EmployJob::getCreateTime)
.page(page);
//循环替换数据
List records = pageList.getRecords();
//创建一个新的集合
List<EmployJob> list = new ArrayList<>();
for (Object record : records) {
EmployJob job = (EmployJob) record;
EmployOrder one = employOrderService.lambdaQuery().eq(EmployOrder::getJobId, job.getId()).one();
job.setEmployOrder(one);
list.add(job);
for (EmployJob job : pageList.getRecords()) {
List<EmployOrder> list = employOrderService.lambdaQuery().eq(EmployOrder::getJobId, job.getId()).list();
job.setEmployOrder(list);
}
pageList.setRecords(list);
return Result.OK("我的招工", pageList);
}catch (Exception e){


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

@ -1,7 +1,10 @@
package org.jeecg.modules.apiService.impl;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.config.shiro.ShiroRealm;
@ -15,6 +18,8 @@ import org.jeecg.modules.employAuthenticationPerson.entity.EmployAuthenticationP
import org.jeecg.modules.employAuthenticationPerson.service.IEmployAuthenticationPersonService;
import org.jeecg.modules.employCategory.entity.EmployCategory;
import org.jeecg.modules.employCategory.service.IEmployCategoryService;
import org.jeecg.modules.employConfig.entity.EmployConfig;
import org.jeecg.modules.employConfig.service.IEmployConfigService;
import org.jeecg.modules.employJob.entity.EmployJob;
import org.jeecg.modules.employJob.service.IEmployJobService;
import org.jeecg.modules.employOrder.entity.EmployOrder;
@ -36,6 +41,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Log4j2
@Service
public class OrderServiceImpl implements OrderService {
@ -73,6 +79,10 @@ public class OrderServiceImpl implements OrderService {
private IEmploySeekService employSeekService;
@Autowired
private IEmployConfigService employConfigService;
//支付接口
@Autowired
private MpWxPayService mpWxPayService;
@ -198,9 +208,10 @@ public class OrderServiceImpl implements OrderService {
}
//创建订单信息
EmployOrder employOrder = new EmployOrder();
employOrder.setType(0);//订单类型 招聘订单
employOrder.setType(0);//订单类型 企业发布招聘订单
employOrder.setStatus(0);//订单状态
employOrder.setJobId(workId);
employOrder.setTitle(employJob.getTitle());
@ -210,6 +221,7 @@ public class OrderServiceImpl implements OrderService {
employOrder.setJobPhone(resume.getPhone());
employOrder.setJobAddress(resume.getAddress());
employOrder.setPayType(employJob.getPayType());
employOrder.setPayMoney(employJob.getSalaryDay());//试工日薪
//招聘方信息
employOrder.setWorkHeadImg(company.getHeadImg());
@ -226,6 +238,21 @@ public class OrderServiceImpl implements OrderService {
employOrder.setPersonId(person.getId());
employOrder.setJobId(workId);
//保险费用
List<EmployConfig> list = employConfigService.lambdaQuery()
.eq(EmployConfig::getParamCode, "order_premium_price")
.list();
if (list.size() > 0 && StringUtils.isNotBlank(list.get(0).getParamValueText())){
try {
String price = list.get(0).getParamValueText();
employOrder.setPremium(BigDecimal.valueOf(Double.parseDouble(price)));
}catch (Exception e){
log.error(e);
}
}
employOrderService.save(employOrder);
@ -234,13 +261,18 @@ public class OrderServiceImpl implements OrderService {
//订单信息-立即支付
//订单信息-求职者支付保险
@Override
public Result<?> payOrder(String token, String orderId,Integer payType){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//根据订单标识查询订单信息
EmployOrder order = employOrderService.getById(orderId);
BigDecimal payPrice = order.getPayMoney();
if (order == null){
return Result.error("订单不存在");
}
BigDecimal payPrice = order.getPremium();
if(payType == 1){
@ -248,29 +280,29 @@ public class OrderServiceImpl implements OrderService {
if(hanHaiMember.getPrice().compareTo(payPrice)==-1){
return Result.error("余额不足");
}
hanHaiMember.setPrice(hanHaiMember.getPrice().subtract(payPrice));
hanHaiMemberService.updateById(hanHaiMember);
//增加金额明细
EmployAmountLog amountLog = new EmployAmountLog();
amountLog.setTitle(order.getTitle());
amountLog.setAmount(payPrice);
amountLog.setType("0");
amountLog.setUserId(hanHaiMember.getId());
employAmountLogService.save(amountLog);
subtractMemberAmount(hanHaiMember, payPrice, "支付保险费:" + order.getTitle());
return Result.OK("余额支付成功",order);
}else{
String idStr = IdWorker.getIdStr();
order.setOrderNoSeek(idStr);
employOrderService.updateById(order);
//吊起微信支付
String s = payPrice.multiply(new BigDecimal(100)).toString();
int i1 = Double.valueOf(s).intValue();
Object appOrder = mpWxPayService.createOrder(
"购买"+order.getTitle(),
"127.0.0.1",
System.currentTimeMillis()+"",
i1,
System.currentTimeMillis()+"",
idStr,
payPrice.multiply(new BigDecimal(100)).intValue(),
idStr,
hanHaiMember.getAppletOpenid(),
order.toString());
order.toString(),
"/employ/order/payNotify"
);
return Result.OK("微信支付成功",appOrder);
}
@ -280,8 +312,6 @@ public class OrderServiceImpl implements OrderService {
//订单信息-求职信息-立即聘用
@Override
public Result<?> addOrderJob(String token, String jobId){
@ -336,7 +366,7 @@ public class OrderServiceImpl implements OrderService {
//创建订单信息
EmployOrder employOrder = new EmployOrder();
employOrder.setType(1);//订单类型 招聘订单
employOrder.setType(1);//订单类型 求职者发布的求职订单
employOrder.setStatus(0);//订单状态
employOrder.setSeekId(jobId);
employOrder.setTitle("求职:"+employCategoryService.getById(employSeek.getCategoryOne()).getName() +"-"+employCategoryService.getById(employSeek.getCategoryTwo()).getName());
@ -347,6 +377,7 @@ public class OrderServiceImpl implements OrderService {
employOrder.setJobAddress(resume.getAddress());
employOrder.setJobHeadImg(person.getImage());
employOrder.setPayType(employSeek.getPayType());
employOrder.setPayMoney(employSeek.getDayMoney());//试工日薪
//招聘方信息
employOrder.setWorkHeadImg(company.getHeadImg());
@ -365,6 +396,20 @@ public class OrderServiceImpl implements OrderService {
employOrder.setSeekId(jobId);
//保险费用
List<EmployConfig> list = employConfigService.lambdaQuery()
.eq(EmployConfig::getParamCode, "order_premium_price")
.list();
if (list.size() > 0 && StringUtils.isNotBlank(list.get(0).getParamValueText())){
try {
String price = list.get(0).getParamValueText();
employOrder.setPremium(BigDecimal.valueOf(Double.parseDouble(price)));
}catch (Exception e){
log.error(e);
}
}
employOrderService.save(employOrder);
@ -389,6 +434,14 @@ public class OrderServiceImpl implements OrderService {
if(order.getStatus()==6){
return Result.error("订单已经取消,不能取消");
}
EmploySeek seek = employSeekService.getById(order.getSeekId());
if (seek != null){
seek.setSeekStatus(0);
employSeekService.updateById(seek);
}
//修改订单状态为已取消
order.setStatus(6);
employOrderService.updateById(order);
@ -429,6 +482,13 @@ public class OrderServiceImpl implements OrderService {
if(order.getStatus()==6){
return Result.error("订单已经取消,不能确认");
}
EmploySeek seek = employSeekService.getById(order.getSeekId());
if (seek != null){
seek.setSeekStatus(1);
employSeekService.updateById(seek);
}
order.setStatus(1);
employOrderService.updateById(order);
return Result.OK("确认成功", order);
@ -468,27 +528,46 @@ public class OrderServiceImpl implements OrderService {
//企业支付
@Override
public Result<?> payOrderCompany(String token, String orderId,Integer payType){
public Result<?> payOrderCompany(String token, String orderId, Integer payType, BigDecimal fare){//fare交通费
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//根据订单标识查询订单信息
EmployOrder order = employOrderService.getById(orderId);
BigDecimal payPrice = order.getPayMoney();
if(order==null){
return Result.error("订单不存在", null);
}
// type 0企业发布招聘企业不需要支付保险交通费由个人承担
// type 1个人发布求职企业承担保险费交通费用
order.setFare(fare);
order.setOrderNoMoney(order.getPayMoney().add(fare));
if (order.getType() == 1){//企业招聘求职者需要企业支付保险费用
order.setOrderNoMoney(order.getOrderNoMoney().add(order.getPremium()));
}
BigDecimal payPrice = order.getOrderNoMoney();
if(payType == 1){
//余额支付
if(hanHaiMember.getPrice().compareTo(payPrice)==-1){
return Result.error("余额不足");
}
hanHaiMember.setPrice(hanHaiMember.getPrice().subtract(payPrice));
hanHaiMemberService.updateById(hanHaiMember);
//增加金额明细
EmployAmountLog amountLog = new EmployAmountLog();
amountLog.setTitle(order.getTitle());
amountLog.setAmount(payPrice);
amountLog.setType("0");
amountLog.setUserId(hanHaiMember.getId());
employAmountLogService.save(amountLog);
subtractMemberAmount(hanHaiMember, payPrice, "企业支付:" + order.getTitle());
//给求职者钱包加钱
try {
EmployResume resume = employResumeService.getById(order.getResumeId());
HanHaiMember member = hanHaiMemberService.getById(resume.getUserId());
addMemberAmount(member, order.getPayMoney(), "试工费用到账:" + order.getTitle());
}catch (Exception e){
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId());
}
//修改订单状态
order.setStatus(4);
@ -496,17 +575,25 @@ public class OrderServiceImpl implements OrderService {
return Result.OK("余额支付成功",order);
}else{
String idStr = IdWorker.getIdStr();
order.setOrderNo(idStr);
employOrderService.updateById(order);
//吊起微信支付
String s = payPrice.multiply(new BigDecimal(100)).toString();
int i1 = Double.valueOf(s).intValue();
Object appOrder = mpWxPayService.createOrder(
"支付"+order.getTitle(),
"127.0.0.1",
System.currentTimeMillis()+"",
i1,
System.currentTimeMillis()+"",
idStr,
payPrice.multiply(new BigDecimal(100)).intValue(),
idStr,
hanHaiMember.getAppletOpenid(),
order.toString());
order.toString(),
"/employ/order/payNotifyCompany"
);
return Result.OK("微信支付成功",appOrder);
}
}
@ -520,7 +607,104 @@ public class OrderServiceImpl implements OrderService {
//修改订单状态
order.setStatus(5);
employOrderService.updateById(order);
EmploySeek seek = employSeekService.getById(order.getSeekId());
if (seek != null){
seek.setSeekStatus(2);
employSeekService.updateById(seek);
}
return Result.ok("确认成功");
}
public void addMemberAmount(HanHaiMember hanHaiMember, BigDecimal payPrice, String title){
hanHaiMember.setPrice(hanHaiMember.getPrice().add(payPrice));
hanHaiMemberService.updateById(hanHaiMember);
//增加金额明细
EmployAmountLog amountLog = new EmployAmountLog();
amountLog.setTitle(title);
amountLog.setAmount(payPrice);
amountLog.setType("1");
amountLog.setUserId(hanHaiMember.getId());
employAmountLogService.save(amountLog);
}
public void subtractMemberAmount(HanHaiMember hanHaiMember, BigDecimal payPrice, String title){
hanHaiMember.setPrice(hanHaiMember.getPrice().subtract(payPrice));
hanHaiMemberService.updateById(hanHaiMember);
//增加金额明细
EmployAmountLog amountLog = new EmployAmountLog();
amountLog.setTitle(title);
amountLog.setAmount(payPrice);
amountLog.setType("0");
amountLog.setUserId(hanHaiMember.getId());
employAmountLogService.save(amountLog);
}
//求职者支付保险回调
@Override
public Object payNotify(String requestBody) {
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
String outTradeNo = notify.getOutTradeNo();
log.info("支付回调订单号码:"+outTradeNo);
EmployOrder order = employOrderService.lambdaQuery()
.eq(EmployOrder::getOrderNoSeek, outTradeNo)
.one();
order.setOrderStatusSeek("Y");
employOrderService.updateById(order);
return "<xml>" +
" <return_code><![CDATA[SUCCESS]]></return_code>" +
" <return_msg><![CDATA[OK]]></return_msg>" +
" </xml>";
}
//企业支付试工日新回调
@Override
public Object payNotifyCompany(String requestBody) {
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody);
String outTradeNo = notify.getOutTradeNo();
log.info("支付回调订单号码:"+outTradeNo);
EmployOrder order = employOrderService.lambdaQuery()
.eq(EmployOrder::getOrderNo, outTradeNo)
.one();
if ("Y".equals(order.getOrderStatus())){
log.warn("订单已经被支付了,订单信息:{}", order);
return "<xml>" +
" <return_code><![CDATA[SUCCESS]]></return_code>" +
" <return_msg><![CDATA[OK]]></return_msg>" +
" </xml>";
}
//给求职者钱包加钱
try {
EmployResume resume = employResumeService.getById(order.getResumeId());
HanHaiMember member = hanHaiMemberService.getById(resume.getUserId());
addMemberAmount(member, order.getPayMoney(), "企业支付到账:" + order.getTitle());
}catch (Exception e){
log.error("求职者数据丢失,金额:{}无法到账,订单号:{}", order.getPayMoney(), order.getId());
}
//修改订单状态
order.setStatus(4);
order.setOrderStatus("Y");
employOrderService.updateById(order);
return "<xml>" +
" <return_code><![CDATA[SUCCESS]]></return_code>" +
" <return_msg><![CDATA[OK]]></return_msg>" +
" </xml>";
}
}

+ 12
- 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/SeekServiceImpl.java View File

@ -53,21 +53,16 @@ public class SeekServiceImpl implements SeekService {
//求职信息-查询求职信息列表
@Override
public Result<?> querySeekList(EmploySeek employSeek, PageBean pageBean){
Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize());
Page pageList = employSeekService.lambdaQuery()
Page<EmploySeek> page = new Page<EmploySeek>(pageBean.getPageNo(), pageBean.getPageSize());
Page<EmploySeek> pageList = employSeekService.lambdaQuery()
.like(employSeek.getAddress() != null, EmploySeek::getAddress, employSeek.getAddress())
.orderByDesc(EmploySeek::getCreateTime)
.page(page);
//循环替换数据
List records = pageList.getRecords();
//创建一个新的集合
List<EmploySeek> list = new ArrayList<>();
for (Object record : records) {
EmploySeek seek = (EmploySeek) record;
for (EmploySeek seek : pageList.getRecords()) {
seek.setHanHaiMember(hanHaiMemberService.getById(seek.getUserId()));
seek.setEmployResume(employResumeService.getById(seek.getResumeId()));
list.add(seek);
}
pageList.setRecords(list);
return Result.OK("求职信息查询成功", pageList);
}
@ -109,6 +104,7 @@ public class SeekServiceImpl implements SeekService {
//根据用户标识查询是否存在求职信息
EmploySeek one = employSeekService.lambdaQuery()
.eq(EmploySeek::getUserId, hanHaiMember.getId())
.eq(EmploySeek::getSeekStatus, 1)
.one();
if(null != one){
return Result.error("您有求职订单未结束");
@ -116,7 +112,8 @@ public class SeekServiceImpl implements SeekService {
employSeek.setUserId(hanHaiMember.getId());
employSeek.setResumeId(resume.getId());
employSeek.setCreateTime(new Date());
employSeekService.save(employSeek);
employSeek.setSeekStatus(0);
employSeekService.saveOrUpdate(employSeek);
}
return Result.OK("求职信息添加成功", employSeek);
}
@ -129,24 +126,19 @@ public class SeekServiceImpl implements SeekService {
@Override
public Result<?> queryMySeekList(String token, EmploySeek employSeek, PageBean pageBean){
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize());
Page pageList = employSeekService.lambdaQuery()
Page<EmploySeek> page = new Page<EmploySeek>(pageBean.getPageNo(), pageBean.getPageSize());
Page<EmploySeek> pageList = employSeekService.lambdaQuery()
.eq(EmploySeek::getUserId, hanHaiMember.getId())
.orderByDesc(EmploySeek::getCreateTime)
.page(page);
//循环替换数据
List records = pageList.getRecords();
//创建一个新的集合
List<EmploySeek> list = new ArrayList<>();
for (Object record : records) {
EmploySeek seek = (EmploySeek) record;
for (EmploySeek seek : pageList.getRecords()) {
seek.setHanHaiMember(hanHaiMemberService.getById(seek.getUserId()));
seek.setEmployResume(employResumeService.getById(seek.getResumeId()));
EmployOrder one = employOrderService.lambdaQuery().eq(EmployOrder::getSeekId, seek.getId()).one();
seek.setEmployOrder(one);
list.add(seek);
}
pageList.setRecords(list);
return Result.OK("求职信息查询成功", pageList);
}
@ -154,7 +146,7 @@ public class SeekServiceImpl implements SeekService {
public Result<?> deleteSeek(String token, String seekId){
HanHaiMember member = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
if(StringUtils.isBlank(seekId)){
return Result.error("求职订单不能为空");
return Result.error("求职ID不能为空");
}
employSeekService.removeById(seekId);
return Result.OK("删除成功");


+ 4
- 1
jeecg-boot-module-system/src/main/resources/application-dev.yml View File

@ -1,5 +1,5 @@
server:
port: 8001
port: 8002
tomcat:
max-swallow-size: -1
error:
@ -329,3 +329,6 @@ third-app:
client-secret: ??
agent-id: ??
MpWxPayService:
dev: true

+ 2
- 4
jeecg-boot-module-system/src/main/resources/pay_weixin.properties View File

@ -2,7 +2,5 @@ pay.mchId=1704045304
pay.appId=wx6931d85f7371b032
pay.mchKey=0fdb77429ffdf206c151af76a663041c
pay.keyPath=classpath:apiclient_cert.pem
pay.notifyUrl=https://admin.augcl.com/employ-api/employ/amount/payNotify
pay.notifyUrlDev=http://augcl.natapp1.cc/employ-api/employ/amount/payNotify
pay.notifyUrl=https://admin.zhixuanlietou.com/employ-api
pay.notifyUrlDev=http://h5.xzaiyp.top/employ-api

Loading…
Cancel
Save