提交 ea99992f 作者: 恶龙咆哮

修改问题

上级 fc26fb5e
...@@ -311,4 +311,14 @@ public interface RequirementsDao { ...@@ -311,4 +311,14 @@ public interface RequirementsDao {
* @return {@link Integer} * @return {@link Integer}
*/ */
Integer selectServiceFlowIdByFatherId(Integer requirementsId); Integer selectServiceFlowIdByFatherId(Integer requirementsId);
/**
* 去抢单表中查看用户是否被拒绝过
* @param requireId 订单的id
* @param userAccountId 抢单飞手的用户id
* @return {@link Integer}
*/
Integer selectRequirementsRefuse(Integer requireId,Integer userAccountId);
} }
...@@ -25,6 +25,7 @@ import com.mmc.csf.release.industry.UserPayInfoVO; ...@@ -25,6 +25,7 @@ import com.mmc.csf.release.industry.UserPayInfoVO;
import com.mmc.csf.release.service.RequirementsService; import com.mmc.csf.release.service.RequirementsService;
import com.mmc.csf.release.util.RestTemplateUtil; import com.mmc.csf.release.util.RestTemplateUtil;
import com.sun.xml.bind.v2.TODO; import com.sun.xml.bind.v2.TODO;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator; import org.gavaghan.geodesy.GeodeticCalculator;
...@@ -2883,6 +2884,12 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -2883,6 +2884,12 @@ public class RequirementsServiceImpl implements RequirementsService {
//获取没被抢的子订单id //获取没被抢的子订单id
Integer requirementsSonInfoId = requirementsDao.getRequirementsSonInfoId(fatherRequireId); Integer requirementsSonInfoId = requirementsDao.getRequirementsSonInfoId(fatherRequireId);
grabTheOrderVO.setRequirementsInfoId(requirementsSonInfoId); grabTheOrderVO.setRequirementsInfoId(requirementsSonInfoId);
}else {
//单人被拒绝后也不能再次抢单
Integer countRefuse = requirementsDao.selectRequirementsRefuse(grabTheOrderVO.getRequirementsInfoId(), grabTheOrderVO.getUserAccountId());
if(countRefuse == 1) {
return ResultBody.error("不能重复抢一个订单");
}
} }
UserAccountSimpleDTO userAccountSimpleDTO = feignGetUserSimpleInfo(grabTheOrderVO.getUserAccountId(), request); UserAccountSimpleDTO userAccountSimpleDTO = feignGetUserSimpleInfo(grabTheOrderVO.getUserAccountId(), request);
...@@ -2892,8 +2899,6 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -2892,8 +2899,6 @@ public class RequirementsServiceImpl implements RequirementsService {
if (grabTheOrderVO.getRequirementsInfoId().equals(requirementsInfoDO.getId()) && grabTheOrderVO.getUserAccountId().equals(requirementsInfoDO.getUserAccountId())) { if (grabTheOrderVO.getRequirementsInfoId().equals(requirementsInfoDO.getId()) && grabTheOrderVO.getUserAccountId().equals(requirementsInfoDO.getUserAccountId())) {
return ResultBody.error("自己不能抢自己发布的需求"); return ResultBody.error("自己不能抢自己发布的需求");
} }
// TODO 一人订单被拒绝也不能再次抢单
//飞手 //飞手
PilotCertificationInteriorDTO pilot = feignInteriorDetailPilot(grabTheOrderVO.getUserAccountId(), request); PilotCertificationInteriorDTO pilot = feignInteriorDetailPilot(grabTheOrderVO.getUserAccountId(), request);
...@@ -2912,114 +2917,114 @@ public class RequirementsServiceImpl implements RequirementsService { ...@@ -2912,114 +2917,114 @@ public class RequirementsServiceImpl implements RequirementsService {
RequirementsServiceDO requirementsServiceDO = new RequirementsServiceDO(pilot, requirementsInfoDO); RequirementsServiceDO requirementsServiceDO = new RequirementsServiceDO(pilot, requirementsInfoDO);
IsNullConvertZeroUtil.checkIsNull(requirementsServiceDO); IsNullConvertZeroUtil.checkIsNull(requirementsServiceDO);
//用户云享金+用户佣金>总金额 // //用户云享金+用户佣金>总金额
//剩余后台云享金 // //剩余后台云享金
BigDecimal cashAmt = payWalletDTO.getCashAmt(); // BigDecimal cashAmt = payWalletDTO.getCashAmt();
//剩余佣金 // //剩余佣金
BigDecimal salaryAmt = payWalletDTO.getSalaryAmt(); // BigDecimal salaryAmt = payWalletDTO.getSalaryAmt();
//用户云享金加上佣金的总金额 // //用户云享金加上佣金的总金额
BigDecimal cashAndSalary = cashAmt.add(salaryAmt); // BigDecimal cashAndSalary = cashAmt.add(salaryAmt);
//需要支付的总金额(任务佣金) // //需要支付的总金额(任务佣金)
BigDecimal totalAmount = requirementsInfoDO.getOrderAmount(); // BigDecimal totalAmount = requirementsInfoDO.getOrderAmount();
BigDecimal bigDecimal = new BigDecimal(0.0); // BigDecimal bigDecimal = new BigDecimal(0.0);
totalAmount = totalAmount.multiply(bigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP); // totalAmount = totalAmount.multiply(bigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP);
String json = stringRedisTemplate.opsForValue().get(grabTheOrderVO.getWechatPayOrderNumber() + grabTheOrderVO.getUserAccountId()); // String json = stringRedisTemplate.opsForValue().get(grabTheOrderVO.getWechatPayOrderNumber() + grabTheOrderVO.getUserAccountId());
GetOrderNumberDTO orderNumberDTO = JSONObject.parseObject(json, GetOrderNumberDTO.class); // GetOrderNumberDTO orderNumberDTO = JSONObject.parseObject(json, GetOrderNumberDTO.class);
if (orderNumberDTO != null) { // if (orderNumberDTO != null) {
IsNullConvertZeroUtil.checkIsNull(orderNumberDTO); // IsNullConvertZeroUtil.checkIsNull(orderNumberDTO);
} // }
//
//需要冻结的金额 // //需要冻结的金额
FlyerWalletFlowVO flyerWalletFlowVO = new FlyerWalletFlowVO(); // FlyerWalletFlowVO flyerWalletFlowVO = new FlyerWalletFlowVO();
IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO); // IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO);
//IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO); // //IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO);
//PublisherWalletFlowVO publisherWalletFlowVO = walletFlowVO.getPublisherWalletFlowVO(); // //PublisherWalletFlowVO publisherWalletFlowVO = walletFlowVO.getPublisherWalletFlowVO();
BigDecimal tempTotalAmount = totalAmount; // BigDecimal tempTotalAmount = totalAmount;
String paymentType = grabTheOrderVO.getPaymentType(); // String paymentType = grabTheOrderVO.getPaymentType();
String[] split = paymentType.split(","); // String[] split = paymentType.split(",");
Set<String> collect = Arrays.asList(split).stream().collect(Collectors.toSet()); // Set<String> collect = Arrays.asList(split).stream().collect(Collectors.toSet());
TreeSet<String> objects = new TreeSet<>(collect); // TreeSet<String> objects = new TreeSet<>(collect);
for (String type : objects) { // for (String type : objects) {
switch (type) { // switch (type) {
case "1": // case "1":
if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) { // if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) {
if (cashAmt.compareTo(tempTotalAmount) == 1 || cashAmt.compareTo(tempTotalAmount) == 0) { // if (cashAmt.compareTo(tempTotalAmount) == 1 || cashAmt.compareTo(tempTotalAmount) == 0) {
flyerWalletFlowVO.setCashAmount(tempTotalAmount); // flyerWalletFlowVO.setCashAmount(tempTotalAmount);
requirementsServiceDO.setCashAmount(tempTotalAmount); // requirementsServiceDO.setCashAmount(tempTotalAmount);
tempTotalAmount = BigDecimal.ZERO; // tempTotalAmount = BigDecimal.ZERO;
} else { // } else {
tempTotalAmount = tempTotalAmount.subtract(cashAmt); // tempTotalAmount = tempTotalAmount.subtract(cashAmt);
flyerWalletFlowVO.setCashAmount(cashAmt); // flyerWalletFlowVO.setCashAmount(cashAmt);
requirementsServiceDO.setCashAmount(cashAmt); // requirementsServiceDO.setCashAmount(cashAmt);
} // }
} // }
break; // break;
case "2": // case "2":
if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) { // if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) {
if (salaryAmt.compareTo(tempTotalAmount) == 1 || salaryAmt.compareTo(tempTotalAmount) == 0) { // if (salaryAmt.compareTo(tempTotalAmount) == 1 || salaryAmt.compareTo(tempTotalAmount) == 0) {
flyerWalletFlowVO.setSalaryAmount(tempTotalAmount); // flyerWalletFlowVO.setSalaryAmount(tempTotalAmount);
requirementsServiceDO.setSalaryAmount(tempTotalAmount); // requirementsServiceDO.setSalaryAmount(tempTotalAmount);
tempTotalAmount = BigDecimal.ZERO; // tempTotalAmount = BigDecimal.ZERO;
} else { // } else {
tempTotalAmount = tempTotalAmount.subtract(salaryAmt); // tempTotalAmount = tempTotalAmount.subtract(salaryAmt);
flyerWalletFlowVO.setSalaryAmount(salaryAmt); // flyerWalletFlowVO.setSalaryAmount(salaryAmt);
requirementsServiceDO.setSalaryAmount(salaryAmt); // requirementsServiceDO.setSalaryAmount(salaryAmt);
} // }
} // }
break; // break;
case "3": // case "3":
if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) { // if (!(tempTotalAmount.compareTo(BigDecimal.ZERO) == 0)) {
// publisherWalletFlowVO.setWeChat(tempTotalAmount); // // publisherWalletFlowVO.setWeChat(tempTotalAmount);
requirementsServiceDO.setWeChat(tempTotalAmount); // requirementsServiceDO.setWeChat(tempTotalAmount);
tempTotalAmount = BigDecimal.ZERO; // tempTotalAmount = BigDecimal.ZERO;
} // }
break; // break;
default: // default:
break; // break;
} // }
} // }
if (tempTotalAmount.compareTo(BigDecimal.ZERO) == 0) { // if (tempTotalAmount.compareTo(BigDecimal.ZERO) == 0) {
//表示订单计算完成,需要支付的钱都算出来了 // //表示订单计算完成,需要支付的钱都算出来了
// System.out.println(flyerWalletFlowVO); // // System.out.println(flyerWalletFlowVO);
// System.out.println(requirementsServiceDO); // // System.out.println(requirementsServiceDO);
//
flyerWalletFlowVO.setUserAccountId(grabTheOrderVO.getUserAccountId()); // flyerWalletFlowVO.setUserAccountId(grabTheOrderVO.getUserAccountId());
flyerWalletFlowVO.setOperateUserAccountId(grabTheOrderVO.getUserAccountId()); // flyerWalletFlowVO.setOperateUserAccountId(grabTheOrderVO.getUserAccountId());
// requirementsServiceDO.setCashAmount(walletFlowVO.getCashAmount()); // // requirementsServiceDO.setCashAmount(walletFlowVO.getCashAmount());
// requirementsServiceDO.setSalaryAmount(walletFlowVO.getSalaryAmount()); // // requirementsServiceDO.setSalaryAmount(walletFlowVO.getSalaryAmount());
if (orderNumberDTO != null) { // if (orderNumberDTO != null) {
requirementsServiceDO.setWeChat(orderNumberDTO.getWeChatPay()); // requirementsServiceDO.setWeChat(orderNumberDTO.getWeChatPay());
requirementsServiceDO.setWechatPayOrderNumber(orderNumberDTO.getPaymentOrderNumber()); // requirementsServiceDO.setWechatPayOrderNumber(orderNumberDTO.getPaymentOrderNumber());
} // }
// BigDecimal cashAndSalaryAmount = walletFlowVO.getCashAmount().add(walletFlowVO.getSalaryAmount()); // // BigDecimal cashAndSalaryAmount = walletFlowVO.getCashAmount().add(walletFlowVO.getSalaryAmount());
// BigDecimal preemptTotalAmount = cashAndSalaryAmount.add(orderNumberDTO.getWeChatPay()); // // BigDecimal preemptTotalAmount = cashAndSalaryAmount.add(orderNumberDTO.getWeChatPay());
// requirementsServiceDO.setPreemptTotalAmount(preemptTotalAmount); // // requirementsServiceDO.setPreemptTotalAmount(preemptTotalAmount);
BigDecimal cashAmount = requirementsServiceDO.getCashAmount(); // BigDecimal cashAmount = requirementsServiceDO.getCashAmount();
BigDecimal salaryAmount = requirementsServiceDO.getSalaryAmount(); // BigDecimal salaryAmount = requirementsServiceDO.getSalaryAmount();
BigDecimal weChat = requirementsServiceDO.getWeChat(); // BigDecimal weChat = requirementsServiceDO.getWeChat();
BigDecimal add = cashAmount.add(salaryAmount); // BigDecimal add = cashAmount.add(salaryAmount);
BigDecimal add1 = add.add(weChat); // BigDecimal add1 = add.add(weChat);
requirementsServiceDO.setPreemptTotalAmount(add1); // requirementsServiceDO.setPreemptTotalAmount(add1);
requirementsServiceDO.setOpenid(openid); // requirementsServiceDO.setOpenid(openid);
requirementsServiceDO.setPhoneNum(grabTheOrderVO.getPhoneNum()); // requirementsServiceDO.setPhoneNum(grabTheOrderVO.getPhoneNum());
//微信是否支付成功 //微信是否支付成功
requirementsDao.insertService(requirementsServiceDO); requirementsDao.insertService(requirementsServiceDO);
requirementsInfoDO.setRepertory(repertory - 1); requirementsInfoDO.setRepertory(repertory - 1);
requirementsDao.updateGrabTheOrder(grabTheOrderVO.getRequirementsInfoId(), requirementsInfoDO.getRepertory()); requirementsDao.updateGrabTheOrder(grabTheOrderVO.getRequirementsInfoId(), requirementsInfoDO.getRepertory());
if (requirementsServiceDO.getCashAmount().compareTo(BigDecimal.ZERO) != 0 // if (requirementsServiceDO.getCashAmount().compareTo(BigDecimal.ZERO) != 0
|| requirementsServiceDO.getSalaryAmount().compareTo(BigDecimal.ZERO) != 0) { // || requirementsServiceDO.getSalaryAmount().compareTo(BigDecimal.ZERO) != 0) {
walletFlow(flyerWalletFlowVO, request.getHeader("token")); // walletFlow(flyerWalletFlowVO, request.getHeader("token"));
} // }
//如果是多人订单 还要去修改父订单还需多少人字段 //如果是多人订单 还要去修改父订单还需多少人字段
if(requireNum >= 2) { if(requireNum >= 2) {
requirementsDao.updateRequirementsInfoRepertory(fatherRequireId,fatherRepertory - 1); requirementsDao.updateRequirementsInfoRepertory(fatherRequireId,fatherRepertory - 1);
} }
return ResultBody.success(); return ResultBody.success();
} else { // } else {
//云享金和佣金扣除完成,但是还不足支付订单金额,并且没有选择微信支付,所以支付不合法 // //云享金和佣金扣除完成,但是还不足支付订单金额,并且没有选择微信支付,所以支付不合法
return ResultBody.success("抢单失败"); // return ResultBody.success("抢单失败");
} // }
} }
......
...@@ -1692,4 +1692,7 @@ ...@@ -1692,4 +1692,7 @@
<select id="selectServiceFlowIdByFatherId" resultType="java.lang.Integer"> <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 count(id) from requirements_info where father_require_id = #{requirementsId} and service_flow_id not in (1,10)
</select> </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> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论