套餐支付,技师提成扣比支付方式从套餐订单表获取,增加原支付金额字段

This commit is contained in:
曹磊 2024-07-05 16:27:31 +08:00
parent abaa324583
commit d907e45116
4 changed files with 175 additions and 38 deletions

View File

@ -353,7 +353,7 @@ public class Orders implements Serializable {
*/
private BigDecimal technicianRate;
/**
* 项目金额或项目差额
* 项目金额
*/
private BigDecimal massageMoney;
@ -383,7 +383,10 @@ public class Orders implements Serializable {
* 原项目金额
*/
private BigDecimal oldMassageMoney;
/**
* 原支付金额
*/
private BigDecimal oldPayMoney;
/**
* 原技师金额
*/

View File

@ -31,6 +31,8 @@ import com.sqx.modules.artificer.dao.OrdersDao;
import com.sqx.modules.artificer.entity.*;
import com.sqx.modules.artificer.service.*;
import com.sqx.modules.bl.order.entity.UserPackage;
import com.sqx.modules.bl.order.entity.UserPackageOrder;
import com.sqx.modules.bl.order.service.UserPackageOrderService;
import com.sqx.modules.bl.order.service.UserPackageService;
import com.sqx.modules.common.dao.CommonInfoDao;
import com.sqx.modules.bl.order.entity.UserPackageDetail;
@ -145,6 +147,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
@Autowired
private UserPackageService userPackageService;
@Autowired
private UserPackageOrderService userPackageOrderService;
@Autowired
private MaterialMassageMapper materialMassageMapper;
@Autowired
private MaterialArtificerMapper materialArtificerMapper;
@ -1065,7 +1069,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setDuration(oldOrders.getDuration());
orders.setOldOrdersId(oldOrders.getOrdersId());
orders.setOldMassageMoney(oldOrders.getPayMoney());
orders.setOldMassageMoney(oldOrders.getMassageMoney());
orders.setOldPayMoney(oldOrders.getPayMoney());
orders.setOldMassageTypeId(oldOrders.getMassageTypeId());
orders.setOldEntryName(oldOrders.getEntryName());
orders.setOldMassagePrice(oldOrders.getMassagePrice());
@ -1227,7 +1232,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setEndTime(oldOrders.getEndTime());
orders.setStartImg(oldOrders.getStartImg());
orders.setOldOrdersId(oldOrders.getOrdersId());
orders.setOldMassageMoney(oldOrders.getPayMoney());
orders.setOldMassageMoney(oldOrders.getMassageMoney());
orders.setOldPayMoney(oldOrders.getPayMoney());
orders.setOldMassageTypeId(oldOrders.getMassageTypeId());
orders.setOldEntryName(oldOrders.getEntryName());
orders.setOldMassagePrice(oldOrders.getMassagePrice());
@ -1324,7 +1330,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
}
if (oldOrders.getUserPackageDetailId() != null) {
if (!massageTypeId.equals(oldOrders.getUserPackageDetailId()) ) {
return Result.error("当前套餐类订单无法修改项目");
return Result.error("当前套餐类订单无法修改项目,如需更改请取消单据重新下单");
}
UserPackageDetail userPackageDetail = userPackageDetailService.getById(massageTypeId);
//修改套餐类订单
@ -2090,7 +2096,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setCreateTime(DateUtils.format(new Date()));
orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP));
orders.setOldOrdersId(oldOrders.getOrdersId());
orders.setOldMassageMoney(oldOrders.getPayMoney());
orders.setOldMassageMoney(oldOrders.getMassageMoney());
orders.setOldPayMoney(oldOrders.getPayMoney());
orders.setOldMassageTypeId(oldOrders.getMassageTypeId());
orders.setOldEntryName(oldOrders.getEntryName());
orders.setOldMassagePrice(oldOrders.getMassagePrice());
@ -4715,10 +4722,10 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
// type = 2;
// } else {
// type = 1;
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
if (userMoney.getMoney().doubleValue() < orders.getTaxiMoney().doubleValue()) {
return Result.error("钱包余额不足,请充值!");
}
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
if (userMoney.getMoney().doubleValue() < orders.getTaxiMoney().doubleValue()) {
return Result.error("钱包余额不足,请充值!");
}
// }
Integer duration = 0;
@ -4808,24 +4815,24 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
// userMoneyDetailsService.save(userMoneyDetails);
// orders.setUserArtificerMoney(1);
// } else {
userMoneyService.updateMoney(2, orders.getUserId(), orders.getTaxiMoney().doubleValue());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
//查询用户当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
//插入余额
userMoneyDetails.setBalance(userNowMoney.getMoney());
//插入操作类型为已操作用户余额
userMoneyDetails.setManipulateType(2);
userMoneyDetails.setMoney(orders.getTaxiMoney());
userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付订单");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(1);
userMoneyDetailsService.save(userMoneyDetails);
userMoneyService.updateMoney(2, orders.getUserId(), orders.getTaxiMoney().doubleValue());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
//查询用户当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
//插入余额
userMoneyDetails.setBalance(userNowMoney.getMoney());
//插入操作类型为已操作用户余额
userMoneyDetails.setManipulateType(2);
userMoneyDetails.setMoney(orders.getTaxiMoney());
userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付订单");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(1);
userMoneyDetailsService.save(userMoneyDetails);
// }
if(orders.getIsSupplement() != null){
@ -4846,12 +4853,21 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setPayWay(5);
orders.setPayTime(simpleDateFormat.format(new Date()));
Artificer artificer = artificerService.getById(orders.getArtificerId());
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId());
UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId());
UserPackageOrder userPackageOrder = userPackageOrderService.getById(userPackage.getOrdersId());
Integer packagePayWay = userPackageOrder.getPayWay();
BigDecimal rate = new BigDecimal(100);
if(packagePayWay.equals(5)){
rate = new BigDecimal(commonInfoService.findOne(449).getValue());
}
BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue());
orders.setWalletRate(rate);
rate = rate.divide(new BigDecimal(100));
BigDecimal storageRate = BigDecimal.ONE.subtract(rate);
Artificer artificer = artificerService.getById(orders.getArtificerId());
//钱包支付技师提成
BigDecimal taxiMoney = orders.getTaxiMoney();
if(taxiMoney==null){

View File

@ -36,6 +36,7 @@ import com.sqx.modules.bl.order.entity.UserPackageDetail;
import com.sqx.modules.bl.order.entity.UserPackageOrder;
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
import com.sqx.modules.bl.order.service.UserPackageDetailService;
import com.sqx.modules.bl.order.service.UserPackageOrderService;
import com.sqx.modules.bl.order.service.UserPackageOrdersMappingService;
import com.sqx.modules.bl.order.service.UserPackageService;
import com.sqx.modules.common.entity.CommonInfo;
@ -137,6 +138,8 @@ public class AliPayController {
@Autowired
UserPackageDetailService userPackageDetailService;
@Autowired
private UserPackageOrderService userPackageOrderService;
@Autowired
UserPackageOrdersMappingService userPackageOrdersMappingService;
@Autowired
private UserRechargeDao userRechargeDao;
@ -197,11 +200,27 @@ public class AliPayController {
}
orders.setPayWay(6);
orders.setPayTime(sdf.format(new Date()));
orders.setValueStorageDeduction(BigDecimal.ZERO);
BigDecimal rate = new BigDecimal(100);
if(orders.getUserPackageDetailId() != null){
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId());
UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId());
UserPackageOrder userPackageOrder = userPackageOrderService.getById(userPackage.getOrdersId());
Integer packagePayWay = userPackageOrder.getPayWay();
if(packagePayWay.equals(5)){
rate = new BigDecimal(commonInfoService.findOne(449).getValue());
}
}
orders.setWalletRate(rate);
rate = rate.divide(new BigDecimal(100));
BigDecimal storageRate = BigDecimal.ONE.subtract(rate);
Artificer artificer = artificerService.getById(orders.getArtificerId());
BigDecimal taxiMoney = BigDecimal.ZERO;
if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){
if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
taxiMoney = BigDecimal.ZERO;
}else{
taxiMoney = orders.getTaxiMoney();
}
if(taxiMoney==null){
@ -209,6 +228,7 @@ public class AliPayController {
}
BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal artificerTaxiPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算
@ -239,6 +259,16 @@ public class AliPayController {
//计算用户收益 计算前先减去通行费用再计算技师抽成
artificerPrice = subtract.multiply(artificer.getRate());
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
//储值扣费
valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额
valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setValueStorageDeduction(valueStorageDeduction);
BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate);
projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setProjectBenefits(projectBenefits);
//用户收益不含交通费
artificerPrice = artificerPrice.multiply(rate);
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
@ -294,6 +324,7 @@ public class AliPayController {
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){
String value1 = commonInfoService.findOne(395).getValue();
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
@ -1018,11 +1049,27 @@ public class AliPayController {
}
orders.setPayWay(6);
orders.setPayTime(sdf.format(new Date()));
orders.setValueStorageDeduction(BigDecimal.ZERO);
BigDecimal rate = new BigDecimal(100);
if(orders.getUserPackageDetailId() != null){
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId());
UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId());
UserPackageOrder userPackageOrder = userPackageOrderService.getById(userPackage.getOrdersId());
Integer packagePayWay = userPackageOrder.getPayWay();
if(packagePayWay.equals(5)){
rate = new BigDecimal(commonInfoService.findOne(449).getValue());
}
}
orders.setWalletRate(rate);
rate = rate.divide(new BigDecimal(100));
BigDecimal storageRate = BigDecimal.ONE.subtract(rate);
Artificer artificer = artificerService.getById(orders.getArtificerId());
BigDecimal taxiMoney = BigDecimal.ZERO;
if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){
if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
taxiMoney = BigDecimal.ZERO;
}else{
taxiMoney = orders.getTaxiMoney();
}
if(taxiMoney==null){
@ -1030,6 +1077,7 @@ public class AliPayController {
}
BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal artificerTaxiPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算
@ -1060,6 +1108,16 @@ public class AliPayController {
//计算用户收益 计算前先减去通行费用再计算技师抽成
artificerPrice = subtract.multiply(artificer.getRate());
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
//储值扣费
valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额
valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setValueStorageDeduction(valueStorageDeduction);
BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate);
projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setProjectBenefits(projectBenefits);
//用户收益不含交通费
artificerPrice = artificerPrice.multiply(rate);
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
@ -1115,6 +1173,7 @@ public class AliPayController {
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){
String value1 = commonInfoService.findOne(395).getValue();
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));

View File

@ -26,6 +26,7 @@ import com.sqx.modules.bl.order.entity.UserPackageDetail;
import com.sqx.modules.bl.order.entity.UserPackageOrder;
import com.sqx.modules.bl.order.entity.UserPackageOrdersMapping;
import com.sqx.modules.bl.order.service.UserPackageDetailService;
import com.sqx.modules.bl.order.service.UserPackageOrderService;
import com.sqx.modules.bl.order.service.UserPackageOrdersMappingService;
import com.sqx.modules.bl.order.service.UserPackageService;
import com.sqx.modules.common.entity.CommonInfo;
@ -131,6 +132,8 @@ public class WxServiceImpl implements WxService {
@Autowired
UserPackageDetailService userPackageDetailService;
@Autowired
private UserPackageOrderService userPackageOrderService;
@Autowired
UserPackageOrdersMappingService userPackageOrdersMappingService;
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -652,11 +655,27 @@ public class WxServiceImpl implements WxService {
}
orders.setPayWay(payDetails.getClassify());
orders.setPayTime(sdf.format(new Date()));
orders.setValueStorageDeduction(BigDecimal.ZERO);
BigDecimal rate = new BigDecimal(100);
if(orders.getUserPackageDetailId() != null){
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId());
UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId());
UserPackageOrder userPackageOrder = userPackageOrderService.getById(userPackage.getOrdersId());
Integer packagePayWay = userPackageOrder.getPayWay();
if(packagePayWay.equals(5)){
rate = new BigDecimal(commonInfoService.findOne(449).getValue());
}
}
orders.setWalletRate(rate);
rate = rate.divide(new BigDecimal(100));
BigDecimal storageRate = BigDecimal.ONE.subtract(rate);
Artificer artificer = artificerService.getById(orders.getArtificerId());
BigDecimal taxiMoney = BigDecimal.ZERO;
if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){
if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
taxiMoney = BigDecimal.ZERO;
}else{
taxiMoney = orders.getTaxiMoney();
}
if(taxiMoney==null){
@ -664,6 +683,7 @@ public class WxServiceImpl implements WxService {
}
BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal artificerTaxiPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算
@ -694,6 +714,16 @@ public class WxServiceImpl implements WxService {
//计算用户收益 计算前先减去通行费用再计算技师抽成
artificerPrice = subtract.multiply(artificer.getRate());
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
//储值扣费
valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额
valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setValueStorageDeduction(valueStorageDeduction);
BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate);
projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setProjectBenefits(projectBenefits);
//用户收益不含交通费
artificerPrice = artificerPrice.multiply(rate);
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
@ -747,6 +777,7 @@ public class WxServiceImpl implements WxService {
orders.setOneUserMoney(oneUserMoney);
pingMoney = pingMoney.subtract(oneUserMoney);
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){
@ -1262,11 +1293,27 @@ public class WxServiceImpl implements WxService {
}
orders.setPayWay(payDetails.getClassify());
orders.setPayTime(sdf.format(new Date()));
orders.setValueStorageDeduction(BigDecimal.ZERO);
BigDecimal rate = new BigDecimal(100);
if(orders.getUserPackageDetailId() != null){
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId());
UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId());
UserPackageOrder userPackageOrder = userPackageOrderService.getById(userPackage.getOrdersId());
Integer packagePayWay = userPackageOrder.getPayWay();
if(packagePayWay.equals(5)){
rate = new BigDecimal(commonInfoService.findOne(449).getValue());
}
}
orders.setWalletRate(rate);
rate = rate.divide(new BigDecimal(100));
BigDecimal storageRate = BigDecimal.ONE.subtract(rate);
Artificer artificer = artificerService.getById(orders.getArtificerId());
BigDecimal taxiMoney = BigDecimal.ZERO;
if(orders.getIsSupplement()!=null && !orders.getIsSupplement().equals(2)){
if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
taxiMoney = BigDecimal.ZERO;
}else{
taxiMoney = orders.getTaxiMoney();
}
if(taxiMoney==null){
@ -1274,6 +1321,7 @@ public class WxServiceImpl implements WxService {
}
BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal artificerTaxiPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算
@ -1304,6 +1352,16 @@ public class WxServiceImpl implements WxService {
//计算用户收益 计算前先减去通行费用再计算技师抽成
artificerPrice = subtract.multiply(artificer.getRate());
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
//储值扣费
valueStorageDeduction = artificerPrice.multiply(storageRate);//技师提成中扣除金额
valueStorageDeduction = valueStorageDeduction.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setValueStorageDeduction(valueStorageDeduction);
BigDecimal projectBenefits = orders.getProjectBenefits().multiply(rate);
projectBenefits = projectBenefits.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setProjectBenefits(projectBenefits);
//用户收益不含交通费
artificerPrice = artificerPrice.multiply(rate);
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
@ -1357,6 +1415,7 @@ public class WxServiceImpl implements WxService {
orders.setOneUserMoney(oneUserMoney);
pingMoney = pingMoney.subtract(oneUserMoney);
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){