套餐/次卡/疗程 车费 白天免费 夜间收费

This commit is contained in:
曹磊 2024-07-16 09:36:58 +08:00
parent 247af4b65c
commit 64236e3179
16 changed files with 870 additions and 107 deletions

View File

@ -196,6 +196,13 @@ public class AppArtificerController {
return ordersService.removeOrders(ordersId); return ordersService.removeOrders(ordersId);
} }
@Login
@PostMapping("/cancelOrdersMoney")
@ApiOperation("取消订单扣钱")
public Result cancelOrdersMoney(@RequestAttribute Long userId,Long ordersId){
return ordersService.cancelOrdersMoney(userId,ordersId);
}
@Login @Login
@PostMapping("/deleteOrders") @PostMapping("/deleteOrders")
@ApiOperation("取消订单") @ApiOperation("取消订单")

View File

@ -144,6 +144,8 @@ public interface OrdersDao extends BaseMapper<Orders> {
List<Orders> getParentOrders(Long parentId); List<Orders> getParentOrders(Long parentId);
List<Orders> getNewOrdersByOld(Long ordersId);
BigDecimal selectSumRefund(Long artificerId, @Param("startTime") String startTime, @Param("endTime") String endTime); BigDecimal selectSumRefund(Long artificerId, @Param("startTime") String startTime, @Param("endTime") String endTime);
} }

View File

@ -18,6 +18,8 @@ public interface OrdersService extends IService<Orders> {
Result updateOrders(Orders orders); Result updateOrders(Orders orders);
Result cancelOrdersMoney(Long userId,Long ordersId);
Result cancelOrders(Long userId,Long ordersId); Result cancelOrders(Long userId,Long ordersId);
Result cancelSupplementOrders(Long userId, Long ordersId, Integer isAuto, Integer type); Result cancelSupplementOrders(Long userId, Long ordersId, Integer isAuto, Integer type);

View File

@ -343,12 +343,14 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
} }
//服务时间后锁单时间判断 //服务时间后锁单时间判断
if (i > 0) { if (i >= 0) {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.setTime(parse); calendar.setTime(parse);
String format = DateUtils.format(calendar.getTime(),"yyyy-MM-dd HH:mm");
allTime.add(format);
for (int j = 0; j < i; j++) { for (int j = 0; j < i; j++) {
calendar.add(Calendar.MINUTE, minute); calendar.add(Calendar.MINUTE, minute);
String format = DateUtils.format(calendar.getTime(),"yyyy-MM-dd HH:mm"); format = DateUtils.format(calendar.getTime(),"yyyy-MM-dd HH:mm");
allTime.add(format); allTime.add(format);
date = format.substring(0, 10); date = format.substring(0, 10);
time = format.substring(11, 16); time = format.substring(11, 16);
@ -997,8 +999,22 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
String value1 = commonInfoService.findOne(395).getValue(); String value1 = commonInfoService.findOne(395).getValue();
Integer tripWay = orders.getTripWay(); Integer tripWay = orders.getTripWay();
BigDecimal taxiMoney = BigDecimal.ZERO; BigDecimal taxiMoney = BigDecimal.ZERO;
String isTravelFree = commonInfoService.findOne(460).getValue();
if(isTravelFree.equals("")){
taxiMoney = BigDecimal.ZERO;
tripWay = 3;
orders.setTripWay(3);
}
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime(),tripWay);
// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!");
}
taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
orders.setTaxiMoney(taxiMoney);
orders.setKm(travelPriceVo.getKilometerNum());
if (orders.getParentId() == null || orders.getParentId() == 0) { if (orders.getParentId() == null || orders.getParentId() == 0) {
String serveTime = orders.getServeTime(); String serveTime = orders.getServeTime();
String date = serveTime.substring(0, 10); String date = serveTime.substring(0, 10);
@ -1017,14 +1033,6 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if(map.get("code").toString().equals("1")){ if(map.get("code").toString().equals("1")){
return Result.error("预约时间正忙,请更换其他时间!"); return Result.error("预约时间正忙,请更换其他时间!");
} }
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime());
// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!");
}
taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
orders.setTaxiMoney(taxiMoney);
orders.setKm(travelPriceVo.getKilometerNum());
// WSSsdrAddress wsSsdrAddress = AddressUtil.resolveAddress(orders.getAddress()); // WSSsdrAddress wsSsdrAddress = AddressUtil.resolveAddress(orders.getAddress());
// Map<String, Object> result = selectTaxiMoney(orders.getArtificerId(), orders.getLatitude(), orders.getLongitude(), wsSsdrAddress.getCity()); // Map<String, Object> result = selectTaxiMoney(orders.getArtificerId(), orders.getLatitude(), orders.getLongitude(), wsSsdrAddress.getCity());
@ -1189,8 +1197,32 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if (oldOrders.getStatus() == 4) { if (oldOrders.getStatus() == 4) {
return Result.error("已取消的订单不可修改!"); return Result.error("已取消的订单不可修改!");
} }
int dbd = 0;
int sjd = 0;
int xgd = 0;
if(oldOrders.getStatus().equals(11)){
List<Orders> newOrders = baseMapper.getNewOrdersByOld(orders.getOrdersId());
if(newOrders.size()>0){
for(Orders newOrder : newOrders){
if(newOrder.getStatus()==1 || newOrder.getStatus()==4) {
if (newOrder.getIsSupplement().equals(1)) {
dbd = 1;
break;
}
if (newOrder.getIsSupplement().equals(2)) {
sjd = 1;
break;
}
if (newOrder.getIsSupplement().equals(3) || newOrder.getIsSupplement().equals(4)) {
xgd = 1;
break;
}
}
}
}
}
//待补单修改 //待补单修改
if (oldOrders.getStatus() == 10) { if (oldOrders.getStatus() == 10 || dbd == 1) {
//只能修改技师和时间 技师等级大于等于原单据等级 //只能修改技师和时间 技师等级大于等于原单据等级
Long massageTypeId; Long massageTypeId;
if (orders.getOrdersMassageList() != null) { if (orders.getOrdersMassageList() != null) {
@ -1253,7 +1285,16 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if (travelPriceVo == null) { if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }
//删除未支付无用的升级新单据
List<Orders> newList = baseMapper.getNewOrdersByOld(oldOrders.getOrdersId());
if(newList.size()>0){
for(Orders newOrder : newList){
if(newOrder.getStatus()==1 || newOrder.getStatus()==4){
baseMapper.deleteById(newOrder.getOrdersId());
ordersMassageService.removeByOrdersId(newOrder.getOrdersId());
}
}
}
BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP); taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP);
orders.setTaxiMoney(taxiMoney); orders.setTaxiMoney(taxiMoney);
@ -1390,7 +1431,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.success().put("data", orders); return Result.success().put("data", orders);
} }
//进行中项目升级 //进行中项目升级
if (oldOrders.getStatus() == 6) { if (oldOrders.getStatus() == 6 || sjd == 1) {
//升级项目操作只能修改项目金额大于等于当前项目金额 //升级项目操作只能修改项目金额大于等于当前项目金额
if (StringUtils.isNotBlank(orders.getServeTime()) && !orders.getServeTime().equals(oldOrders.getServeTime())) { if (StringUtils.isNotBlank(orders.getServeTime()) && !orders.getServeTime().equals(oldOrders.getServeTime())) {
return Result.error("当前订单无法修改时间!"); return Result.error("当前订单无法修改时间!");
@ -1439,7 +1480,16 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("预约时间正忙,请更换其他时间!"); return Result.error("预约时间正忙,请更换其他时间!");
} }
} }
//删除未支付无用的升级新单据
List<Orders> newList = baseMapper.getNewOrdersByOld(oldOrders.getOrdersId());
if(newList.size()>0){
for(Orders newOrder : newList){
if(newOrder.getStatus()==1 || newOrder.getStatus()==4){
baseMapper.deleteById(newOrder.getOrdersId());
ordersMassageService.removeByOrdersId(newOrder.getOrdersId());
}
}
}
//使用原价计算差额 //使用原价计算差额
orders.setUserId(oldOrders.getUserId()); orders.setUserId(oldOrders.getUserId());
orders.setUserName(oldOrders.getUserName()); orders.setUserName(oldOrders.getUserName());
@ -1929,7 +1979,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.success().put("data", orders); return Result.success().put("data", orders);
} }
} }
if (oldOrders.getStatus() == 2 || oldOrders.getStatus() == 9) { if (oldOrders.getStatus() == 2 || oldOrders.getStatus() == 9 || xgd == 1) {
//只能修改技师和时间 技师等级大于等于原单据等级 //只能修改技师和时间 技师等级大于等于原单据等级
//判断是否是可修改状态2 9 //判断是否是可修改状态2 9
boolean canUpdate = commonInfoService.isCheckEditOrder(DateUtils.stringToDate(oldOrders.getServeTime(), "yyyy-MM-dd HH:mm"), new Date()); boolean canUpdate = commonInfoService.isCheckEditOrder(DateUtils.stringToDate(oldOrders.getServeTime(), "yyyy-MM-dd HH:mm"), new Date());
@ -2042,6 +2092,17 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }
//删除未支付无用的升级新单据
List<Orders> newList = baseMapper.getNewOrdersByOld(oldOrders.getOrdersId());
if(newList.size()>0){
for(Orders newOrder : newList){
if(newOrder.getStatus()==1 || newOrder.getStatus()==4){
baseMapper.deleteById(newOrder.getOrdersId());
ordersMassageService.removeByOrdersId(newOrder.getOrdersId());
}
}
}
BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice()); BigDecimal taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP); taxiMoney = taxiMoney.setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal oldTaxiMoney = oldOrders.getTaxiMoney(); BigDecimal oldTaxiMoney = oldOrders.getTaxiMoney();
@ -2366,11 +2427,113 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
return Result.error("此状态单据无法修改操作!"); return Result.error("此状态单据无法修改操作!");
}catch (Exception e){ }catch (Exception e){
e.printStackTrace();
return Result.error(e.getMessage()); return Result.error(e.getMessage());
} }
} }
@Override @Override
public Result cancelOrdersMoney(Long userId, Long ordersId) {
Orders orders = baseMapper.selectById(ordersId);
if (orders.getStatus() == 4) {
return Result.error("订单已经取消了!");
} else if (orders.getStatus() == 3 || orders.getStatus() == 5) {
return Result.error("订单已经完成了,无法取消!");
}else if (orders.getStatus() == 6) {
if(orders.getOldOrdersId() != null && orders.getOldOrdersId() != 0){
return Result.error("项目升级之后,无法取消!");
}
if(orders.getParentId() != null && orders.getParentId() != 0){
return Result.error("项目加钟之后,无法取消!");
}
}
//按时间扣款获取扣款金额
CommonInfo commonInfo = commonInfoService.isCheckChangeOrder(DateUtils.stringToDate(orders.getServeTime(),"yyyy-MM-dd HH:mm") ,new Date());
CommonEnum commonEnum = CommonConfigUtil.getCommonEnumByKey(commonInfo.getType());
String[] values = CommonConfigUtil.getArrayValue(commonInfo.getValue());
BigDecimal massageDeduction = BigDecimal.ZERO;
BigDecimal trafficDeduction = BigDecimal.ZERO;
BigDecimal massageRate = BigDecimal.ZERO;
BigDecimal trafficRate = BigDecimal.ZERO;
if(CommonEnum.V3_ORDER_FORM_CANCEL_NOT_START_01 == commonEnum){
//距离服务开始n分钟以上免费取消,全额退服务费和车费
massageDeduction = BigDecimal.ZERO;
trafficDeduction = BigDecimal.ZERO;
massageRate = BigDecimal.ZERO;
trafficRate = BigDecimal.ZERO;
}
if(CommonEnum.V3_ORDER_FORM_CANCEL_NOT_START_02 == commonEnum){
//距离服务开始前取消n-n分钟内收取n元扣服务费全额退车费
massageDeduction = new BigDecimal(values[2]);
trafficDeduction = BigDecimal.ZERO;
massageRate = BigDecimal.ZERO;
trafficRate = BigDecimal.ZERO;
}
if(CommonEnum.V3_ORDER_FORM_CANCEL_NOT_START_03 == commonEnum){
//距离服务开始前取消少于n分钟内收取n元扣服务费全额退车费
massageDeduction = new BigDecimal(values[1]);
trafficDeduction = BigDecimal.ZERO;
massageRate = BigDecimal.ZERO;
trafficRate = BigDecimal.ZERO;
}
if(CommonEnum.V3_ORDER_FORM_CANCEL_START_01 == commonEnum){
//服务开始n分钟内取消订单扣项目费用n%车费全扣n%,扣服务费和车费
massageDeduction = BigDecimal.ZERO;
trafficDeduction = BigDecimal.ZERO;
massageRate = new BigDecimal(values[1]).divide(new BigDecimal(100));
trafficRate = new BigDecimal(values[2]).divide(new BigDecimal(100));
}
if(orders.getUserPackageDetailId() !=null){
return cancelPackageOrdersMoney(userId,orders,trafficDeduction,trafficRate);
}else{
return cancelMassageOrdersMoney(userId,orders,massageDeduction,trafficDeduction,massageRate,trafficRate);
}
}
private Result cancelMassageOrdersMoney(Long userId, Orders orders, BigDecimal massageDeduction, BigDecimal trafficDeduction, BigDecimal massageRate, BigDecimal trafficRate) {
//项目扣款
BigDecimal massageMoneyDeduction = BigDecimal.ZERO;
if(massageRate.compareTo(BigDecimal.ZERO) == 0){
massageMoneyDeduction = massageDeduction;
}else{
massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney()).multiply(massageRate).setScale(2, BigDecimal.ROUND_HALF_UP);
}
if(orders.getPayMoney().subtract(orders.getTaxiMoney()).compareTo(massageDeduction) < 0){
massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney());
}
//车费扣款
BigDecimal taxiMoneyDeduction = BigDecimal.ZERO;
if(trafficRate.compareTo(BigDecimal.ZERO) == 0){
taxiMoneyDeduction = trafficDeduction;
}else{
taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate).setScale(2, BigDecimal.ROUND_HALF_UP);
}
if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){
taxiMoneyDeduction = orders.getTaxiMoney();
}
//项目总扣款数
BigDecimal sumMoney = massageMoneyDeduction.add(taxiMoneyDeduction);//总扣费
String remarks = "取消订单将扣除:"+sumMoney+"元的手续费,其中项目费将扣除:"+massageMoneyDeduction+"元,车费将扣除:"+taxiMoneyDeduction+"元!";
return Result.success().put("data",remarks);
}
private Result cancelPackageOrdersMoney(Long userId, Orders orders, BigDecimal trafficDeduction, BigDecimal trafficRate){
//车费扣款
BigDecimal taxiMoneyDeduction = BigDecimal.ZERO;
if(trafficRate.compareTo(BigDecimal.ZERO) == 0){
taxiMoneyDeduction = trafficDeduction;
}else{
taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate);
}
if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){
taxiMoneyDeduction = orders.getTaxiMoney();
}
String remarks = "取消订单将扣除:"+taxiMoneyDeduction+"元的手续费,其中车费将扣除:"+taxiMoneyDeduction+"元!";
return Result.success().put("data",remarks);
}
@Override
@Transactional @Transactional
public Result cancelOrders(Long userId, Long ordersId) { public Result cancelOrders(Long userId, Long ordersId) {
Orders orders = baseMapper.selectById(ordersId); Orders orders = baseMapper.selectById(ordersId);
@ -2572,6 +2735,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费
BigDecimal pingTaxiMoney = BigDecimal.ZERO; BigDecimal pingTaxiMoney = BigDecimal.ZERO;
BigDecimal artificerMoney = rate.multiply(artificer.getRate()); //技师获得扣款提成 BigDecimal artificerMoney = rate.multiply(artificer.getRate()); //技师获得扣款提成
orders.setProjectBenefits(artificerMoney);
BigDecimal pingMoney = massageMoneyDeduction.subtract(artificerMoney);//平台获得项目扣款
String taxi = commonInfoService.findOne(394).getValue(); String taxi = commonInfoService.findOne(394).getValue();
if ("".equals(taxi)) { if ("".equals(taxi)) {
@ -2615,11 +2780,6 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setSumArtificerMoney(artificerMoney); orders.setSumArtificerMoney(artificerMoney);
//平台扣款 //平台扣款
BigDecimal pingMoney = orders.getPayMoney();
pingMoney = pingMoney.subtract(artificerMoney);
pingMoney = pingMoney.subtract(shopMoney);
pingMoney = pingMoney.subtract(oneArtificerMoney);
UserEntity user = userService.selectUserById(orders.getUserId()); UserEntity user = userService.selectUserById(orders.getUserId());
UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode());
BigDecimal oneUserMoney = BigDecimal.ZERO; BigDecimal oneUserMoney = BigDecimal.ZERO;
@ -2631,6 +2791,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
orders.setOneUserMoney(oneUserMoney); orders.setOneUserMoney(oneUserMoney);
pingMoney = pingMoney.subtract(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney);
pingMoney = pingMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setPingMoney(pingMoney); orders.setPingMoney(pingMoney);
//分账 //分账
@ -2810,6 +2971,16 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
artificerService.updateById(artificer2); artificerService.updateById(artificer2);
messageService.saveBody(messageInfo); messageService.saveBody(messageInfo);
} }
}else{
orders.setProjectBenefits(BigDecimal.ZERO);
orders.setArtificerTaxiMoney(BigDecimal.ZERO);
orders.setPingTaxiMoney(BigDecimal.ZERO);
orders.setOneArtificerMoney(BigDecimal.ZERO);
orders.setShopMoney(BigDecimal.ZERO);
orders.setArtificerMoney(BigDecimal.ZERO);
orders.setSumArtificerMoney(BigDecimal.ZERO);
orders.setOneUserMoney(BigDecimal.ZERO);
orders.setPingMoney(BigDecimal.ZERO);
} }
UserEntity userEntity = userService.selectUserById(orders.getUserId()); UserEntity userEntity = userService.selectUserById(orders.getUserId());
@ -2866,7 +3037,6 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
baseMapper.updateById(ordersOld);//原单暂变成挂单状态 baseMapper.updateById(ordersOld);//原单暂变成挂单状态
} }
return Result.success(); return Result.success();
} }
@ -2886,9 +3056,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
//车费扣款 //车费扣款
BigDecimal taxiMoneyDeduction = BigDecimal.ZERO; BigDecimal taxiMoneyDeduction = BigDecimal.ZERO;
if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ if(trafficRate.compareTo(BigDecimal.ZERO) == 0){
taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate);
}else{
taxiMoneyDeduction = trafficDeduction; taxiMoneyDeduction = trafficDeduction;
}else{
taxiMoneyDeduction = orders.getTaxiMoney().multiply(trafficRate);
} }
if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){
taxiMoneyDeduction = orders.getTaxiMoney(); taxiMoneyDeduction = orders.getTaxiMoney();
@ -2948,6 +3118,14 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 BigDecimal sumMoney = taxiMoneyDeduction;//总扣费
if(sumMoney.compareTo(BigDecimal.ZERO)>0){ if(sumMoney.compareTo(BigDecimal.ZERO)>0){
orders.setProjectBenefits(BigDecimal.ZERO);
orders.setOneArtificerMoney(BigDecimal.ZERO);
orders.setShopMoney(BigDecimal.ZERO);
orders.setArtificerMoney(BigDecimal.ZERO);
orders.setSumArtificerMoney(BigDecimal.ZERO);
orders.setOneUserMoney(BigDecimal.ZERO);
orders.setPingMoney(BigDecimal.ZERO);
//按照比例 将扣除的钱进行分佣 //按照比例 将扣除的钱进行分佣
BigDecimal taxiMoney = taxiMoneyDeduction; BigDecimal taxiMoney = taxiMoneyDeduction;
Artificer artificer = artificerService.getById(orders.getArtificerId()); Artificer artificer = artificerService.getById(orders.getArtificerId());
@ -2988,21 +3166,21 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setSumArtificerMoney(artificerTaxiMoney); orders.setSumArtificerMoney(artificerTaxiMoney);
//平台扣款 //平台扣款
BigDecimal pingMoney = orders.getPayMoney(); // BigDecimal pingMoney = orders.getPayMoney();
pingMoney = pingMoney.subtract(artificerTaxiMoney); // pingMoney = pingMoney.subtract(artificerTaxiMoney);
pingMoney = pingMoney.subtract(shopMoney); // pingMoney = pingMoney.subtract(shopMoney);
pingMoney = pingMoney.subtract(oneArtificerMoney); // pingMoney = pingMoney.subtract(oneArtificerMoney);
UserEntity user = userService.selectUserById(orders.getUserId()); // UserEntity user = userService.selectUserById(orders.getUserId());
UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); // UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode());
BigDecimal oneUserMoney = BigDecimal.ZERO; // BigDecimal oneUserMoney = BigDecimal.ZERO;
if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { // if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) {
orders.setOneUserId(oneUser.getUserId()); // orders.setOneUserId(oneUser.getUserId());
orders.setOneUserName(oneUser.getUserName()); // orders.setOneUserName(oneUser.getUserName());
} // }
orders.setOneUserMoney(oneUserMoney); // orders.setOneUserMoney(oneUserMoney);
pingMoney = pingMoney.subtract(oneUserMoney); // pingMoney = pingMoney.subtract(oneUserMoney);
orders.setPingMoney(pingMoney); // orders.setPingMoney(pingMoney);
userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue());
userMoneyDetails = new UserMoneyDetails(); userMoneyDetails = new UserMoneyDetails();
@ -3103,6 +3281,16 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
artificerService.updateById(artificer2); artificerService.updateById(artificer2);
messageService.saveBody(messageInfo); messageService.saveBody(messageInfo);
} }
}else{
orders.setProjectBenefits(BigDecimal.ZERO);
orders.setArtificerTaxiMoney(BigDecimal.ZERO);
orders.setPingTaxiMoney(BigDecimal.ZERO);
orders.setOneArtificerMoney(BigDecimal.ZERO);
orders.setShopMoney(BigDecimal.ZERO);
orders.setArtificerMoney(BigDecimal.ZERO);
orders.setSumArtificerMoney(BigDecimal.ZERO);
orders.setOneUserMoney(BigDecimal.ZERO);
orders.setPingMoney(BigDecimal.ZERO);
} }
UserEntity userEntity = userService.selectUserById(orders.getUserId()); UserEntity userEntity = userService.selectUserById(orders.getUserId());

View File

@ -112,6 +112,11 @@ public class MassagePackage implements Serializable {
*/ */
private Long classifyId; private Long classifyId;
/**
* 等级 3新手 4专家 5资深
*/
private Integer level;
/** /**
* 类型名称 * 类型名称
*/ */

View File

@ -125,6 +125,11 @@ public class UserPackage implements Serializable {
*/ */
private Integer status; private Integer status;
/**
* 等级 3新手 4专家 5资深
*/
private Integer level;
/** /**
* 次数 * 次数
*/ */

View File

@ -128,6 +128,11 @@ public class UserPackageDetail implements Serializable {
*/ */
private String applyPeople; private String applyPeople;
/**
* 等级 3新手 4专家 5资深
*/
private Integer level;
/** /**
* 简介 * 简介
*/ */

View File

@ -36,6 +36,7 @@ import com.sqx.modules.coupon.service.CouponUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -279,6 +280,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
} }
@Override @Override
@Transactional
public Result payOrder(Long ordersId) { public Result payOrder(Long ordersId) {
try { try {
UserPackageOrder orders = baseMapper.getById(ordersId); UserPackageOrder orders = baseMapper.getById(ordersId);
@ -350,6 +352,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
userPackage.setLabels(massagePackage.getLabels()); userPackage.setLabels(massagePackage.getLabels());
userPackage.setCity(massagePackage.getCity()); userPackage.setCity(massagePackage.getCity());
userPackage.setClassifyId(massagePackage.getClassifyId()); userPackage.setClassifyId(massagePackage.getClassifyId());
userPackage.setLevel(massagePackage.getLevel());
userPackageService.insert(userPackage); userPackageService.insert(userPackage);
Long mainId = userPackage.getId(); Long mainId = userPackage.getId();
//拆分插入用户服务器项目详情 //拆分插入用户服务器项目详情
@ -361,6 +364,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
UserPackageDetail upd = userPackageDetailList.get(j); UserPackageDetail upd = userPackageDetailList.get(j);
upd.setMainId(mainId); upd.setMainId(mainId);
upd.setCreateTime(simpleDateFormat.format(new Date())); upd.setCreateTime(simpleDateFormat.format(new Date()));
upd.setLevel(massagePackage.getLevel());
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);
@ -373,6 +377,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("钱包支付服务包订单异常:" + e.getMessage(), e); log.error("钱包支付服务包订单异常:" + e.getMessage(), e);
return Result.error();
} }
return Result.success(); return Result.success();
} }

View File

@ -802,10 +802,14 @@ public class AliPayController {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(orders.getPayMoney()); if(orders.getUserPackageDetailId() != null){
userMoneyDetails.setMoney(orders.getTaxiMoney());
}else{
userMoneyDetails.setMoney(orders.getPayMoney());
}
userMoneyDetails.setUserId(orders.getUserId()); userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付服务包订单"); userMoneyDetails.setTitle("支付服订单");
userMoneyDetails.setType(2); userMoneyDetails.setType(2);
userMoneyDetails.setState(2); userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@ -1110,6 +1114,7 @@ public class AliPayController {
userPackage.setLabels(massagePackage.getLabels()); userPackage.setLabels(massagePackage.getLabels());
userPackage.setCity(massagePackage.getCity()); userPackage.setCity(massagePackage.getCity());
userPackage.setClassifyId(massagePackage.getClassifyId()); userPackage.setClassifyId(massagePackage.getClassifyId());
userPackage.setLevel(massagePackage.getLevel());
userPackageService.insert(userPackage); userPackageService.insert(userPackage);
Long mainId = userPackage.getId(); Long mainId = userPackage.getId();
//拆分插入用户服务器项目详情 //拆分插入用户服务器项目详情
@ -1121,6 +1126,7 @@ public class AliPayController {
UserPackageDetail upd = userPackageDetailList.get(j); UserPackageDetail upd = userPackageDetailList.get(j);
upd.setMainId(mainId); upd.setMainId(mainId);
upd.setCreateTime(sdf.format(new Date())); upd.setCreateTime(sdf.format(new Date()));
upd.setLevel(massagePackage.getLevel());
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);
@ -1288,30 +1294,34 @@ public class AliPayController {
} }
} }
//通知页面地址 String isTravelFree = commonInfoService.findOne(460).getValue();
CommonInfo one = commonInfoService.findOne(19); if(isTravelFree.equals("")){
String returnUrl = one.getValue() + "/#/pages/task/recharge"; payPackageOrderResult(orders.getOrdersNo());
CommonInfo one3 = commonInfoService.findOne(12); }else {
String name = one3.getValue(); //通知页面地址
PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo()); CommonInfo one = commonInfoService.findOne(19);
if(payDetails1==null){ String returnUrl = one.getValue() + "/#/pages/task/recharge";
PayDetails payDetails = new PayDetails(); CommonInfo one3 = commonInfoService.findOne(12);
payDetails.setState(0); String name = one3.getValue();
payDetails.setCreateTime(sdf.format(new Date())); PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo());
payDetails.setOrderId(orders.getOrdersNo()); if (payDetails1 == null) {
payDetails.setUserId(orders.getUserId()); PayDetails payDetails = new PayDetails();
if(orders.getUserPackageDetailId() !=null ){ payDetails.setState(0);
payDetails.setMoney(orders.getTaxiMoney().doubleValue()); payDetails.setCreateTime(sdf.format(new Date()));
}else{ payDetails.setOrderId(orders.getOrdersNo());
payDetails.setMoney(orders.getPayMoney().doubleValue()); payDetails.setUserId(orders.getUserId());
if (orders.getUserPackageDetailId() != null) {
payDetails.setMoney(orders.getTaxiMoney().doubleValue());
} else {
payDetails.setMoney(orders.getPayMoney().doubleValue());
}
payDetails.setClassify(6);
payDetails.setType(1);
payDetailsDao.insert(payDetails);
} else {
payDetails1.setClassify(6);
payDetailsDao.updateById(payDetails1);
} }
payDetails.setClassify(6);
payDetails.setType(1);
payDetailsDao.insert(payDetails);
}else{
payDetails1.setClassify(6);
payDetailsDao.updateById(payDetails1);
}
// if (type == 1) { // if (type == 1) {
// if(orders.getUserPackageDetailId() !=null ){ // if(orders.getUserPackageDetailId() !=null ){
// return payApp(name, orders.getOrdersNo(), orders.getTaxiMoney().doubleValue()); // return payApp(name, orders.getOrdersNo(), orders.getTaxiMoney().doubleValue());
@ -1325,9 +1335,248 @@ public class AliPayController {
// return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl); // return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl);
// } // }
// } // }
payOrderResult(orders.getOrdersNo()); payOrderResult(orders.getOrdersNo());
}
return Result.success(); return Result.success();
}
/**
* 套餐下单车费免费开启时调用此方法
* @param ordersNo
* @return
*/
private Result payPackageOrderResult(String ordersNo){
Orders orders = ordersService.selectOrdersByOrderNo(ordersNo);
if(orders.getIsSupplement() != null){
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}else{
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}
orders.setPayWay(6);
orders.setPayTime(sdf.format(new Date()));
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() == 2){
taxiMoney = BigDecimal.ZERO;
}else{
taxiMoney = orders.getTaxiMoney();
}
if(taxiMoney==null){
taxiMoney = BigDecimal.ZERO;
}
BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal artificerTaxiPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算
if ("".equals(taxi)) {
//计算技师应该收取的出租车费用
artificerTaxiPrice = taxiMoney.multiply(artificer.getRate());
artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
//计算出租车扣款
BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiPrice);
//赋值技师出租收款
orders.setArtificerTaxiMoney(artificerTaxiPrice);
//赋值出租车扣款
orders.setPingTaxiMoney(pingTaxiMoney);
} else {
//平台不扣费 出租车收益全由技师收取
artificerTaxiPrice = taxiMoney;
orders.setArtificerTaxiMoney(taxiMoney);
//设置出租车扣款为0
orders.setPingTaxiMoney(BigDecimal.ZERO);
}
BigDecimal subtract = BigDecimal.ZERO;
//用户支付减去通行费用
if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
subtract = orders.getPayMoney();
}else{
subtract = orders.getPayMoney().subtract(taxiMoney);
}
//计算用户收益 计算前先减去通行费用再计算技师抽成
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);
//用户收益不含交通费
artificerPrice = artificerPrice.multiply(rate);
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setProjectBenefits(artificerPrice);
UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
BigDecimal oneArtificerMoney = BigDecimal.ZERO;
if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) {
orders.setOneArtificerUserId(oneArtificerUser.getUserId());
orders.setOneArtificerUserName(oneArtificerUser.getUserName());
oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate());
oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
}
orders.setOneArtificerMoney(oneArtificerMoney);
BigDecimal shopMoney = BigDecimal.ZERO;
if (artificerUser.getConsortiaId() != null) {
Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId());
if (consortia != null && consortia.getUserId() != null) {
UserEntity consortiaUser = userService.getById(consortia.getUserId());
if (consortiaUser != null) {
orders.setConsortiaId(consortia.getConsortiaId());
orders.setShopUserId(consortiaUser.getUserId());
orders.setShopUserName(consortiaUser.getUserName());
shopMoney = artificerPrice.multiply(consortia.getRate());
shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
}
}
}
orders.setShopMoney(shopMoney);
artificerPrice = artificerPrice.subtract(oneArtificerMoney);
artificerPrice = artificerPrice.subtract(shopMoney);
if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){
}else{
//用户收益加上通行费用
artificerPrice = artificerPrice.add(artificerTaxiPrice);
}
orders.setArtificerMoney(artificerPrice);
orders.setSumArtificerMoney(artificerPrice);
//平台扣款
BigDecimal pingMoney = orders.getPayMoney();
pingMoney = pingMoney.subtract(artificerPrice);
pingMoney = pingMoney.subtract(shopMoney);
pingMoney = pingMoney.subtract(oneArtificerMoney);
UserEntity user = userService.selectUserById(orders.getUserId());
UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode());
BigDecimal oneUserMoney = BigDecimal.ZERO;
if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) {
orders.setOneUserId(oneUser.getUserId());
orders.setOneUserName(oneUser.getUserName());
oneUserMoney = pingMoney.multiply(oneUser.getUserRate());
oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
}
orders.setOneUserMoney(oneUserMoney);
pingMoney = pingMoney.subtract(oneUserMoney);
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){
Calendar calendar=Calendar.getInstance();
Orders orders1 = ordersDao.selectById(orders.getParentId());
if(orders1.getAddNum()==null){
orders1.setAddNum(1);
}else{
orders1.setAddNum(orders1.getAddNum()+1);
}
//获取加钟项目的时长
if(orders1.getAddTime()!=null){
orders1.setAddTime(orders1.getAddTime()+orders.getAddTime());
}else{
orders1.setAddTime(orders.getAddTime());
}
boolean flag2 = false;
if (StringUtils.isNotBlank(orders1.getEndTime())) {
Calendar calendar2 = Calendar.getInstance();
Date date = DateUtils.stringToDate(orders1.getEndTime(), "yyyy-MM-dd HH:mm:ss");
calendar2.setTime(date);
calendar2.add(Calendar.MINUTE, orders.getAddTime());
orders1.setEndTime(DateUtils.format(calendar2.getTime()));
flag2 = true;
}
if(orders1.getAddMoney()!=null){
orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney()));
orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney()));
}else{
orders1.setAddMoney(orders.getPayMoney());
orders1.setAddArtificerMoney(orders.getArtificerMoney());
}
orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney()));
orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney()));
orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney()));
orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney()));
orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney()));
orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney()));
if(orders1.getStatus().equals(6)){
// ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders1.getOrdersId()));
// massageType = massageTypeService.getById(ordersMassage.getMassageId());
// duration=massageType.getDuration();
String endTime = orders1.getEndTime();
Date date = DateUtils.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss");
calendar=Calendar.getInstance();
if(date.getTime()>System.currentTimeMillis()){
calendar.setTime(date);
}
calendar.add(Calendar.MINUTE,orders.getDuration());
orders1.setEndTime(endTime);
}
orders1.setAddPrice(orders.getPrice());
orders1.setAddMassageTypeId(orders.getMassageTypeId());
orders1.setAddEntryName(orders.getEntryName());
ordersDao.updateById(orders1);
if (flag2) {
ordersDao.update(null, Wrappers.<Orders>lambdaUpdate()
.set(Orders::getWarning, null)
.eq(Orders::getOrdersId, orders1.getOrdersId()));
}
}else{
MessageInfo messageInfo=new MessageInfo();
messageInfo.setState("16");
messageInfo.setTitle("新订单通知");
messageInfo.setUserId("0");
messageInfo.setIsSee("0");
messageService.saveBody(messageInfo);
//电话通知 add 2024-06-20 by caolei
messageService.sendNoticeByCall(artificer.getUserId());
}
ordersService.sendMsg(orders);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(orders.getTaxiMoney());
userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("服务包下单");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
return Result.success();
} }
@Login @Login
@ -1736,10 +1985,14 @@ public class AliPayController {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(orders.getPayMoney()); if(orders.getUserPackageDetailId() != null){
userMoneyDetails.setMoney(orders.getTaxiMoney());
}else{
userMoneyDetails.setMoney(orders.getPayMoney());
}
userMoneyDetails.setUserId(orders.getUserId()); userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付服务包订单"); userMoneyDetails.setTitle("支付订单");
userMoneyDetails.setType(2); userMoneyDetails.setType(2);
userMoneyDetails.setState(2); userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@ -2046,6 +2299,7 @@ public class AliPayController {
userPackage.setLabels(massagePackage.getLabels()); userPackage.setLabels(massagePackage.getLabels());
userPackage.setCity(massagePackage.getCity()); userPackage.setCity(massagePackage.getCity());
userPackage.setClassifyId(massagePackage.getClassifyId()); userPackage.setClassifyId(massagePackage.getClassifyId());
userPackage.setLevel(massagePackage.getLevel());
userPackageService.insert(userPackage); userPackageService.insert(userPackage);
Long mainId = userPackage.getId(); Long mainId = userPackage.getId();
//拆分插入用户服务器项目详情 //拆分插入用户服务器项目详情
@ -2057,6 +2311,7 @@ public class AliPayController {
UserPackageDetail upd = userPackageDetailList.get(j); UserPackageDetail upd = userPackageDetailList.get(j);
upd.setMainId(mainId); upd.setMainId(mainId);
upd.setCreateTime(sdf.format(new Date())); upd.setCreateTime(sdf.format(new Date()));
upd.setLevel(massagePackage.getLevel());
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);

View File

@ -644,31 +644,36 @@ public class WxServiceImpl implements WxService {
} }
} }
PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo()); String isTravelFree = commonInfoService.findOne(460).getValue();
if(payDetails1==null){ if(isTravelFree.equals("")){
PayDetails payDetails = new PayDetails(); payPackageOrderResult(orders.getOrdersNo(),classify);
payDetails.setState(0); }else {
payDetails.setCreateTime(sdf.format(new Date())); PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo());
payDetails.setOrderId(orders.getOrdersNo()); if (payDetails1 == null) {
payDetails.setUserId(orders.getUserId()); PayDetails payDetails = new PayDetails();
if(orders.getUserPackageDetailId() !=null ){ payDetails.setState(0);
payDetails.setMoney(orders.getTaxiMoney().doubleValue()); payDetails.setCreateTime(sdf.format(new Date()));
}else{ payDetails.setOrderId(orders.getOrdersNo());
payDetails.setMoney(orders.getPayMoney().doubleValue()); payDetails.setUserId(orders.getUserId());
if (orders.getUserPackageDetailId() != null) {
payDetails.setMoney(orders.getTaxiMoney().doubleValue());
} else {
payDetails.setMoney(orders.getPayMoney().doubleValue());
}
payDetails.setClassify(classify);
payDetails.setType(1);
payDetailsDao.insert(payDetails);
} else {
payDetails1.setClassify(classify);
payDetailsDao.updateById(payDetails1);
} }
payDetails.setClassify(classify);
payDetails.setType(1);
payDetailsDao.insert(payDetails);
}else{
payDetails1.setClassify(classify);
payDetailsDao.updateById(payDetails1);
}
// if(orders.getUserPackageDetailId() !=null ){ // if(orders.getUserPackageDetailId() !=null ){
// return pay(orders.getTaxiMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request); // return pay(orders.getTaxiMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
// }else{ // }else{
// return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request); // return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
// } // }
payOrderResult(orders.getOrdersNo()); payOrderResult(orders.getOrdersNo());
}
return Result.success(); return Result.success();
} }
@ -687,7 +692,7 @@ public class WxServiceImpl implements WxService {
} }
PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo()); PayDetails payDetails1 = payDetailsDao.selectByOrderId(orders.getOrdersNo());
if(payDetails1==null){ if (payDetails1 == null) {
PayDetails payDetails = new PayDetails(); PayDetails payDetails = new PayDetails();
payDetails.setState(0); payDetails.setState(0);
payDetails.setCreateTime(sdf.format(new Date())); payDetails.setCreateTime(sdf.format(new Date()));
@ -697,13 +702,249 @@ public class WxServiceImpl implements WxService {
payDetails.setClassify(classify); payDetails.setClassify(classify);
payDetails.setType(7); payDetails.setType(7);
payDetailsDao.insert(payDetails); payDetailsDao.insert(payDetails);
}else{ } else {
payDetails1.setClassify(classify); payDetails1.setClassify(classify);
payDetails1.setType(7); payDetails1.setType(7);
payDetailsDao.updateById(payDetails1); payDetailsDao.updateById(payDetails1);
} }
// return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request); // return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
payOrderResult(orders.getOrdersNo()); payOrderResult(orders.getOrdersNo());
return Result.success();
}
private Result payPackageOrderResult(String ordersNo,Integer classify){
Orders orders = ordersService.selectOrdersByOrderNo(ordersNo);
if(orders.getIsSupplement() != null){
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}else{
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}
orders.setPayWay(classify);
orders.setPayTime(sdf.format(new Date()));
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() == 2){
taxiMoney = BigDecimal.ZERO;
}else{
taxiMoney = orders.getTaxiMoney();
}
if(taxiMoney==null){
taxiMoney = BigDecimal.ZERO;
}
BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal artificerTaxiPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算
if ("".equals(taxi)) {
//计算技师应该收取的出租车费用
artificerTaxiPrice = taxiMoney.multiply(artificer.getRate());
artificerTaxiPrice = artificerTaxiPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
//计算出租车扣款
BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiPrice);
//赋值技师出租收款
orders.setArtificerTaxiMoney(artificerTaxiPrice);
//赋值出租车扣款
orders.setPingTaxiMoney(pingTaxiMoney);
} else {
//平台不扣费 出租车收益全由技师收取
artificerTaxiPrice = taxiMoney;
orders.setArtificerTaxiMoney(taxiMoney);
//设置出租车扣款为0
orders.setPingTaxiMoney(BigDecimal.ZERO);
}
BigDecimal subtract = BigDecimal.ZERO;
//用户支付减去通行费用
if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
subtract = orders.getPayMoney();
}else{
subtract = orders.getPayMoney().subtract(taxiMoney);
}
//计算用户收益 计算前先减去通行费用再计算技师抽成
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);
//用户收益不含交通费
artificerPrice = artificerPrice.multiply(rate);
artificerPrice = artificerPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
orders.setProjectBenefits(artificerPrice);
UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
BigDecimal oneArtificerMoney = BigDecimal.ZERO;
if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) {
orders.setOneArtificerUserId(oneArtificerUser.getUserId());
orders.setOneArtificerUserName(oneArtificerUser.getUserName());
oneArtificerMoney = artificerPrice.multiply(oneArtificerUser.getShopRate());
oneArtificerMoney = oneArtificerMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
}
orders.setOneArtificerMoney(oneArtificerMoney);
BigDecimal shopMoney = BigDecimal.ZERO;
if (artificerUser.getConsortiaId() != null) {
Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId());
if (consortia != null && consortia.getUserId() != null) {
UserEntity consortiaUser = userService.getById(consortia.getUserId());
if (consortiaUser != null) {
orders.setConsortiaId(consortia.getConsortiaId());
orders.setShopUserId(consortiaUser.getUserId());
orders.setShopUserName(consortiaUser.getUserName());
shopMoney = artificerPrice.multiply(consortia.getRate());
shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
}
}
}
orders.setShopMoney(shopMoney);
artificerPrice = artificerPrice.subtract(oneArtificerMoney);
artificerPrice = artificerPrice.subtract(shopMoney);
if(orders.getIsSupplement()!=null && orders.getIsSupplement().equals(2)){
}else{
//用户收益加上通行费用
artificerPrice = artificerPrice.add(artificerTaxiPrice);
}
orders.setArtificerMoney(artificerPrice);
orders.setSumArtificerMoney(artificerPrice);
//平台扣款
BigDecimal pingMoney = orders.getPayMoney();
pingMoney = pingMoney.subtract(artificerPrice);
pingMoney = pingMoney.subtract(shopMoney);
pingMoney = pingMoney.subtract(oneArtificerMoney);
UserEntity user = userService.selectUserById(orders.getUserId());
UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode());
BigDecimal oneUserMoney = BigDecimal.ZERO;
if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) {
orders.setOneUserId(oneUser.getUserId());
orders.setOneUserName(oneUser.getUserName());
oneUserMoney = pingMoney.multiply(oneUser.getUserRate());
oneUserMoney = oneUserMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
}
orders.setOneUserMoney(oneUserMoney);
pingMoney = pingMoney.subtract(oneUserMoney);
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){
Calendar calendar=Calendar.getInstance();
Orders orders1 = ordersDao.selectById(orders.getParentId());
if(orders1.getAddNum()==null){
orders1.setAddNum(1);
}else{
orders1.setAddNum(orders1.getAddNum()+1);
}
//获取加钟项目的时长
if(orders1.getAddTime()!=null){
orders1.setAddTime(orders1.getAddTime()+orders.getAddTime());
}else{
orders1.setAddTime(orders.getAddTime());
}
boolean flag2 = false;
if (StringUtils.isNotBlank(orders1.getEndTime())) {
Calendar calendar2 = Calendar.getInstance();
Date date = DateUtils.stringToDate(orders1.getEndTime(), "yyyy-MM-dd HH:mm:ss");
calendar2.setTime(date);
calendar2.add(Calendar.MINUTE, orders.getAddTime());
orders1.setEndTime(DateUtils.format(calendar2.getTime()));
flag2 = true;
}
if(orders1.getAddMoney()!=null){
orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney()));
orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney()));
}else{
orders1.setAddMoney(orders.getPayMoney());
orders1.setAddArtificerMoney(orders.getArtificerMoney());
}
orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney()));
orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney()));
orders1.setOneArtificerMoney(orders1.getOneArtificerMoney().add(orders.getOneArtificerMoney()));
orders1.setShopMoney(orders1.getShopMoney().add(orders.getShopMoney()));
orders1.setOneUserMoney(orders1.getOneUserMoney().add(orders.getOneUserMoney()));
orders1.setPingMoney(orders1.getPingMoney().add(orders.getPingMoney()));
if(orders1.getStatus().equals(6)){
// ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders1.getOrdersId()));
// massageType = massageTypeService.getById(ordersMassage.getMassageId());
// duration=massageType.getDuration();
String endTime = orders1.getEndTime();
Date date = DateUtils.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss");
calendar=Calendar.getInstance();
if(date.getTime()>System.currentTimeMillis()){
calendar.setTime(date);
}
calendar.add(Calendar.MINUTE,orders.getDuration());
orders1.setEndTime(endTime);
}
orders1.setAddPrice(orders.getPrice());
orders1.setAddMassageTypeId(orders.getMassageTypeId());
orders1.setAddEntryName(orders.getEntryName());
ordersDao.updateById(orders1);
if (flag2) {
ordersDao.update(null, Wrappers.<Orders>lambdaUpdate()
.set(Orders::getWarning, null)
.eq(Orders::getOrdersId, orders1.getOrdersId()));
}
}else{
MessageInfo messageInfo=new MessageInfo();
messageInfo.setState("16");
messageInfo.setTitle("新订单通知");
messageInfo.setUserId("0");
messageInfo.setIsSee("0");
messageService.saveBody(messageInfo);
//电话通知 add 2024-06-20 by caolei
messageService.sendNoticeByCall(artificer.getUserId());
}
ordersService.sendMsg(orders);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(orders.getTaxiMoney());
userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("服务包下单");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
return Result.success(); return Result.success();
} }
@ -1326,10 +1567,14 @@ public class WxServiceImpl implements WxService {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(orders.getPayMoney()); if(orders.getUserPackageDetailId() != null){
userMoneyDetails.setMoney(orders.getTaxiMoney());
}else{
userMoneyDetails.setMoney(orders.getPayMoney());
}
userMoneyDetails.setUserId(orders.getUserId()); userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付服务包订单"); userMoneyDetails.setTitle("支付订单");
userMoneyDetails.setType(2); userMoneyDetails.setType(2);
userMoneyDetails.setState(2); userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@ -1635,6 +1880,7 @@ public class WxServiceImpl implements WxService {
userPackage.setLabels(massagePackage.getLabels()); userPackage.setLabels(massagePackage.getLabels());
userPackage.setCity(massagePackage.getCity()); userPackage.setCity(massagePackage.getCity());
userPackage.setClassifyId(massagePackage.getClassifyId()); userPackage.setClassifyId(massagePackage.getClassifyId());
userPackage.setLevel(massagePackage.getLevel());
userPackageService.insert(userPackage); userPackageService.insert(userPackage);
Long mainId = userPackage.getId(); Long mainId = userPackage.getId();
//拆分插入用户服务器项目详情 //拆分插入用户服务器项目详情
@ -1646,6 +1892,7 @@ public class WxServiceImpl implements WxService {
UserPackageDetail upd = userPackageDetailList.get(j); UserPackageDetail upd = userPackageDetailList.get(j);
upd.setMainId(mainId); upd.setMainId(mainId);
upd.setCreateTime(sdf.format(new Date())); upd.setCreateTime(sdf.format(new Date()));
upd.setLevel(massagePackage.getLevel());
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);
@ -1968,10 +2215,14 @@ public class WxServiceImpl implements WxService {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(orders.getPayMoney()); if(orders.getUserPackageDetailId() != null){
userMoneyDetails.setMoney(orders.getTaxiMoney());
}else{
userMoneyDetails.setMoney(orders.getPayMoney());
}
userMoneyDetails.setUserId(orders.getUserId()); userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!"); userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付服务包订单"); userMoneyDetails.setTitle("支付订单");
userMoneyDetails.setType(2); userMoneyDetails.setType(2);
userMoneyDetails.setState(2); userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@ -2277,6 +2528,7 @@ public class WxServiceImpl implements WxService {
userPackage.setLabels(massagePackage.getLabels()); userPackage.setLabels(massagePackage.getLabels());
userPackage.setCity(massagePackage.getCity()); userPackage.setCity(massagePackage.getCity());
userPackage.setClassifyId(massagePackage.getClassifyId()); userPackage.setClassifyId(massagePackage.getClassifyId());
userPackage.setLevel(massagePackage.getLevel());
userPackageService.insert(userPackage); userPackageService.insert(userPackage);
Long mainId = userPackage.getId(); Long mainId = userPackage.getId();
//拆分插入用户服务器项目详情 //拆分插入用户服务器项目详情
@ -2288,6 +2540,7 @@ public class WxServiceImpl implements WxService {
UserPackageDetail upd = userPackageDetailList.get(j); UserPackageDetail upd = userPackageDetailList.get(j);
upd.setMainId(mainId); upd.setMainId(mainId);
upd.setCreateTime(sdf.format(new Date())); upd.setCreateTime(sdf.format(new Date()));
upd.setLevel(massagePackage.getLevel());
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);

View File

@ -36,6 +36,7 @@ public interface TravelConfService extends IService<TravelConf> {
* @return * @return
*/ */
TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime); TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime);
TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime, Integer tripWay);
// TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude); // TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude);
/** /**

View File

@ -221,6 +221,15 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
String latitude = artificerInfo.getLatitude(); String latitude = artificerInfo.getLatitude();
return calcTravelPrice(travelType, freeKilometers, longitude, latitude, toLongitude, toLatitude,serveTime); return calcTravelPrice(travelType, freeKilometers, longitude, latitude, toLongitude, toLatitude,serveTime);
} }
@Override
public TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime, Integer tripWay){
Artificer artificerInfo = artificerService.getById(artificerId);
Integer mfgls = artificerInfo.getTripWayNum();//免费公里数
BigDecimal freeKilometers = new BigDecimal(mfgls);
String longitude = artificerInfo.getLongitude();
String latitude = artificerInfo.getLatitude();
return calcTravelPrice(tripWay, freeKilometers, longitude, latitude, toLongitude, toLatitude,serveTime);
}
@Override @Override
public TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude, String serveTime){ public TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude, String serveTime){

View File

@ -706,14 +706,16 @@
LEFT JOIN bl_user_package_detail bl ON bl.id = om.massage_id LEFT JOIN bl_user_package_detail bl ON bl.id = om.massage_id
where o.artificer_id = #{artificerId} where o.artificer_id = #{artificerId}
and o.old_orders_id is not null and o.old_orders_id is not null
and o.status not in (4,11,15) and o.status not in (11,15)
<if test="type==1"> <if test="type==1">
and date_format(o.serve_time,'%Y-%m-%d %H:%i') >= date_format(DATE_ADD(now(), INTERVAL -12 HOUR),'%Y-%m-%d %H:%i') and date_format(o.serve_time,'%Y-%m-%d %H:%i') >= date_format(DATE_ADD(now(), INTERVAL -12 HOUR),'%Y-%m-%d %H:%i')
and date_format(o.serve_time,'%Y-%m-%d %H:%i') &lt;= date_format(DATE_ADD(now(), INTERVAL 24 HOUR),'%Y-%m-%d %H:%i') and date_format(o.serve_time,'%Y-%m-%d %H:%i') &lt;= date_format(DATE_ADD(now(), INTERVAL 24 HOUR),'%Y-%m-%d %H:%i')
and o.status in (2,3,5,6,7,8,9) and o.pay_time is not null
and o.status in (2,3,4,5,6,7,8,9)
</if> </if>
<if test="type==2"> <if test="type==2">
and o.status in (2,6,7,8,9) and o.status in (2,4,6,7,8,9)
and o.pay_time is not null
<if test="startTime!=null and startTime!=''"> <if test="startTime!=null and startTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if> </if>
@ -731,7 +733,8 @@
</if> </if>
</if> </if>
<if test="type==4"> <if test="type==4">
and o.status in (2,3,5,6,7,8) and o.status in (2,3,4,5,6,7,8)
and o.pay_time is not null
<if test="startTime!=null and startTime!=''"> <if test="startTime!=null and startTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if> </if>
@ -757,20 +760,22 @@
and o.orders_id not in ( and o.orders_id not in (
select orders_id from orders select orders_id from orders
where old_orders_id is not null where old_orders_id is not null
and status != 4 and pay_time is not null
) )
and o.orders_id not in ( and o.orders_id not in (
select old_orders_id from orders select old_orders_id from orders
where old_orders_id is not null where old_orders_id is not null
and status != 4 and pay_time is not null
) )
<if test="type==1"> <if test="type==1">
and date_format(o.serve_time,'%Y-%m-%d %H:%i') >= date_format(DATE_ADD(now(), INTERVAL -12 HOUR),'%Y-%m-%d %H:%i') and date_format(o.serve_time,'%Y-%m-%d %H:%i') >= date_format(DATE_ADD(now(), INTERVAL -12 HOUR),'%Y-%m-%d %H:%i')
and date_format(o.serve_time,'%Y-%m-%d %H:%i') &lt;= date_format(DATE_ADD(now(), INTERVAL 24 HOUR),'%Y-%m-%d %H:%i') and date_format(o.serve_time,'%Y-%m-%d %H:%i') &lt;= date_format(DATE_ADD(now(), INTERVAL 24 HOUR),'%Y-%m-%d %H:%i')
and o.status in (2,3,5,6,7,8,9) and o.status in (2,3,4,5,6,7,8,9)
and o.pay_time is not null
</if> </if>
<if test="type==2"> <if test="type==2">
and o.status in (2,6,7,8,9) and o.status in (2,4,6,7,8,9)
and o.pay_time is not null
<if test="startTime!=null and startTime!=''"> <if test="startTime!=null and startTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if> </if>
@ -788,7 +793,8 @@
</if> </if>
</if> </if>
<if test="type==4"> <if test="type==4">
and o.status in (2,3,5,6,7,8) and o.status in (2,3,4,5,6,7,8,9)
and o.pay_time is not null
<if test="startTime!=null and startTime!=''"> <if test="startTime!=null and startTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d') and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if> </if>
@ -1736,6 +1742,12 @@
where parent_id = #{parentId} where parent_id = #{parentId}
</select> </select>
<select id="getNewOrdersByOld" resultType="com.sqx.modules.artificer.entity.Orders">
select o.*
from orders o
where old_orders_id = #{ordersId}
</select>
<select id="selectSumRefund" resultType="java.math.BigDecimal"> <select id="selectSumRefund" resultType="java.math.BigDecimal">
select IFNULL(SUM(artificer_money),0) AS currentEarnings select IFNULL(SUM(artificer_money),0) AS currentEarnings
from ( from (

View File

@ -18,6 +18,9 @@
<if test="params.type!=null and params.type!=''"> <if test="params.type!=null and params.type!=''">
and m.type=#{params.type} and m.type=#{params.type}
</if> </if>
<if test="params.level!=null and params.level!=''">
and m.level=#{params.level}
</if>
<if test="params.classifyId!=null and params.classifyId!=''"> <if test="params.classifyId!=null and params.classifyId!=''">
and m.classify_id=#{params.classifyId} and m.classify_id=#{params.classifyId}
</if> </if>

View File

@ -21,7 +21,8 @@
content_img, content_img,
labels, labels,
city, city,
classify_id classify_id,
level
from bl_user_package from bl_user_package
where orders_id = #{ordersId} where orders_id = #{ordersId}
order by id order by id
@ -39,7 +40,8 @@
a.content_img, a.content_img,
a.labels, a.labels,
a.city, a.city,
a.classify_id a.classify_id,
a.level
from bl_massage_package a inner join bl_user_package_order_mapping b on a.id = b.package_id from bl_massage_package a inner join bl_user_package_order_mapping b on a.id = b.package_id
where b.orders_id = #{ordersId} where b.orders_id = #{ordersId}
order by a.id order by a.id
@ -61,7 +63,8 @@
content_img, content_img,
labels, labels,
city, city,
classify_id classify_id,
level
)values( )values(
#{userId}, #{userId},
#{packageId}, #{packageId},
@ -77,7 +80,8 @@
#{contentImg}, #{contentImg},
#{labels}, #{labels},
#{city}, #{city},
#{classifyId} #{classifyId},
#{level}
) )
</insert> </insert>
@ -107,6 +111,7 @@
a.city, a.city,
a.classify_id, a.classify_id,
b.value as classifyName, b.value as classifyName,
a.level,
c.sales, c.sales,
c.esteem_rate, c.esteem_rate,
(select count(*) from bl_user_package_detail d where d.main_id = a.id) as service_count (select count(*) from bl_user_package_detail d where d.main_id = a.id) as service_count
@ -141,6 +146,7 @@
a.city, a.city,
a.classify_id, a.classify_id,
b.value as classifyName, b.value as classifyName,
a.level,
c.sales, c.sales,
c.esteem_rate, c.esteem_rate,
(select count(*) from bl_user_package_detail d where d.main_id = a.id) as service_count (select count(*) from bl_user_package_detail d where d.main_id = a.id) as service_count

View File

@ -26,7 +26,8 @@
parent_id, parent_id,
classify_id, classify_id,
apply_people, apply_people,
jianjie jianjie,
level
from bl_user_package_detail from bl_user_package_detail
where main_id = #{mainId} where main_id = #{mainId}
</select> </select>
@ -117,7 +118,8 @@
parent_id, parent_id,
classify_id, classify_id,
apply_people, apply_people,
jianjie jianjie,
level
)values( )values(
#{mainId}, #{mainId},
#{packageDetailId}, #{packageDetailId},
@ -139,7 +141,8 @@
#{parentId}, #{parentId},
#{classifyId}, #{classifyId},
#{applyPeople}, #{applyPeople},
#{jianjie} #{jianjie},
#{level}
) )
</insert> </insert>
@ -167,6 +170,7 @@
a.classify_id, a.classify_id,
a.apply_people, a.apply_people,
a.jianjie, a.jianjie,
a.level,
m.sales m.sales
from bl_user_package_detail a left join massage_type m on a.massage_type_id = m.massage_type_id from bl_user_package_detail a left join massage_type m on a.massage_type_id = m.massage_type_id
where a.id = #{id} where a.id = #{id}
@ -196,6 +200,7 @@
a.classify_id, a.classify_id,
a.apply_people, a.apply_people,
a.jianjie, a.jianjie,
a.level,
m.sales m.sales
from bl_user_package_detail a from bl_user_package_detail a
left join massage_type m on a.massage_type_id = m.massage_type_id left join massage_type m on a.massage_type_id = m.massage_type_id