This commit is contained in:
yangjun 2024-07-01 15:38:52 +08:00
commit 6f4398d058
15 changed files with 854 additions and 416 deletions

View File

@ -96,22 +96,22 @@ public class UserMoneyServiceImpl extends ServiceImpl<UserMoneyDao, UserMoney> i
// } // }
//技师获得打赏 //技师获得打赏
UserEntity userEntity = userService.queryByUserId(userId); UserEntity userEntity = userService.queryByUserId(artificer.getUserId());
updateMoney(1, artificerId, money.doubleValue()); updateMoney(1, userEntity.getUserId(), money.doubleValue());
UserMoney userNowMoney2 = selectUserMoneyByUserId(artificerId); UserMoney userNowMoney2 = selectUserMoneyByUserId(userEntity.getUserId());
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails();
userMoneyDetails2.setBalance(userNowMoney2.getMoney()); userMoneyDetails2.setBalance(userNowMoney2.getMoney());
userMoneyDetails2.setClassify(8); userMoneyDetails2.setClassify(8);
userMoneyDetails2.setManipulateType(2); userMoneyDetails2.setManipulateType(2);
userMoneyDetails2.setUserId(artificerId); userMoneyDetails2.setUserId(userEntity.getUserId());
userMoneyDetails2.setTitle("用户钱包打赏"); userMoneyDetails2.setTitle("用户钱包打赏");
userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”钱包打赏:"+money); userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”钱包打赏:"+money);
userMoneyDetails2.setType(1); userMoneyDetails2.setType(1);
userMoneyDetails2.setState(2); userMoneyDetails2.setState(2);
userMoneyDetails2.setMoney(money); userMoneyDetails2.setMoney(money);
userMoneyDetails2.setCreateTime(sdf.format(new Date())); userMoneyDetails2.setCreateTime(sdf.format(new Date()));
userMoneyDetails.setBlRole(2); userMoneyDetails2.setBlRole(2);
userMoneyDetails.setBlFlag(1); userMoneyDetails2.setBlFlag(1);
userMoneyDetailsDao.insert(userMoneyDetails2); userMoneyDetailsDao.insert(userMoneyDetails2);
return Result.success(); return Result.success();

View File

@ -220,19 +220,27 @@ public class AppArtificerController {
return ordersService.updateOrders(orders); return ordersService.updateOrders(orders);
} }
@Login @Login
@GetMapping("/selectOrdersList") @GetMapping("/selectOrdersList")
@ApiOperation("查询订单列表") @ApiOperation("查询订单列表")
public Result selectOrdersList(@RequestAttribute("userId") Long userId,Integer page,Integer limit,Integer status,String city, public Result selectOrdersList(Long userId,Integer page,Integer limit,Integer status,String city,
String userName,String phone,Long artificerId,Long parentId,String startTime,String endTime, String name,String phone,Long artificerId,Long parentId,String startTime,
Integer isAdd,String ordersNo,String artificerName, String endTime,Integer isAdd,String ordersNo,String artificerName,
String oneUserName,String oneArtificerUserName, String oneUserName,String oneArtificerUserName,
String startServeTime,String endServeTime,Integer overTimeOrders, String startServeTime,String endServeTime,Integer overTimeOrders,Long shopId,
Long shopId,String shopName,Integer warning,String title,String classifyId, Long userPackageId){ String shopName,Integer warning,String title,String classifyId, Long userPackageId){
return ordersService.selectOrdersList(userId, page, limit, status, city, userName, phone, artificerId, return ordersService.selectOrdersList(userId, page, limit, status, city, name, phone,
parentId, startTime, endTime, isAdd, ordersNo, artificerName, oneUserName, oneArtificerUserName, artificerId, parentId, startTime, endTime, isAdd, ordersNo, artificerName,
startServeTime, endServeTime,overTimeOrders,shopId,shopName,warning,title,classifyId, userPackageId); oneUserName, oneArtificerUserName, startServeTime, endServeTime,overTimeOrders,shopId,shopName,warning,title,classifyId, userPackageId);
}
@Login
@GetMapping("/selectAppOrdersList")
@ApiOperation("查询订单列表")
public Result selectAppOrdersList(@RequestAttribute("userId") Long userId,
Integer page,Integer limit,
Integer status,Long userPackageId){
return ordersService.selectAppOrdersList(userId, page, limit, status, userPackageId);
} }
@Login @Login

View File

@ -26,7 +26,9 @@ public interface OrdersDao extends BaseMapper<Orders> {
@Param("endTime") String endTime,@Param("isAdd") Integer isAdd,String ordersNo,String artificerName, @Param("endTime") String endTime,@Param("isAdd") Integer isAdd,String ordersNo,String artificerName,
String oneUserName,String oneArtificerUserName, String oneUserName,String oneArtificerUserName,
String startServeTime,String endServeTime,Integer overTimeOrders,Long shopId,String shopName,Integer warning, String startServeTime,String endServeTime,Integer overTimeOrders,Long shopId,String shopName,Integer warning,
String title,String classifyId,Long userPackageId); String title,String classifyId,@Param("userPackageId")Long userPackageId);
IPage<Orders> selectAppOrdersList(Page<Orders> page,@Param("userId") Long userId,@Param("status") Integer status,@Param("userPackageId") Long userPackageId);
List<Orders> excelOrdersList(@Param("userId") Long userId,@Param("status") Integer status, List<Orders> excelOrdersList(@Param("userId") Long userId,@Param("status") Integer status,
@Param("city") String city,@Param("userName") String userName,@Param("phone") String phone, @Param("city") String city,@Param("userName") String userName,@Param("phone") String phone,
@ -52,7 +54,7 @@ public interface OrdersDao extends BaseMapper<Orders> {
int selectCountOrderByUserId(Long userId,Integer status,String time); int selectCountOrderByUserId(Long userId,Integer status,String time);
IPage<Orders> selectTodayOrder(Page<Orders> pages,@Param("artificerId") Long artificerId,@Param("type") Integer type,@Param("startTime") String startTime,@Param("endTime") String endTime); IPage<Orders> selectTodayOrder(Page<Orders> pages,@Param("artificerId") Long artificerId,@Param("type") Integer type,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("minutes") Integer minutes);
IPage<Orders> selectArtificerOrder(Page<Orders> pages, Long userId, Integer status); IPage<Orders> selectArtificerOrder(Page<Orders> pages, Long userId, Integer status);
@ -132,4 +134,6 @@ public interface OrdersDao extends BaseMapper<Orders> {
List<Orders> getDdczList(Long userId, String startTime, String endTime); List<Orders> getDdczList(Long userId, String startTime, String endTime);
List<Orders> getZxscList(Long userId, String startTime, String endTime); List<Orders> getZxscList(Long userId, String startTime, String endTime);
List<Orders> getParentOrders(Long parentId);
} }

View File

@ -76,6 +76,18 @@ public class Orders implements Serializable {
*/ */
private BigDecimal payMoney; private BigDecimal payMoney;
/**
* 实付总金额
*/
@TableField(exist = false)
private BigDecimal payMoneyTotal;
/**
* 技师获取总金额
*/
@TableField(exist = false)
private BigDecimal artificerMoneyTotal;
/** /**
* 服务费用 * 服务费用
*/ */
@ -359,6 +371,10 @@ public class Orders implements Serializable {
*/ */
private BigDecimal oldMassageMoney; private BigDecimal oldMassageMoney;
/**
* 原技师金额
*/
private BigDecimal oldArtificerMoney;
/** /**
* 技师完成服务承诺 多个按照逗号分割 * 技师完成服务承诺 多个按照逗号分割
@ -408,12 +424,23 @@ public class Orders implements Serializable {
*/ */
private Integer oldMassageDuration; private Integer oldMassageDuration;
/**
* 取消描述
*/
private String cancelRemark;
/**
* 用户钱包支付技师提成百分比
*/
private BigDecimal walletRate;
/** /**
* 项目名称 * 项目名称
*/ */
private String entryName; private String entryName;
@TableField(exist = false) @TableField(exist = false)
private List<OrdersMassage> ordersMassageList; private List<OrdersMassage> ordersMassageList;
@TableField(exist = false)
private List<OrdersMassage> oldOrdersMassageList;
@TableField(exist = false) @TableField(exist = false)
private Artificer artificer; private Artificer artificer;
@ -489,5 +516,8 @@ public class Orders implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<CouponUser> couponUserList; private List<CouponUser> couponUserList;
@TableField(exist = false)
private Integer isCanSupplement;
public Orders() {} public Orders() {}
} }

View File

@ -35,6 +35,8 @@ public interface OrdersService extends IService<Orders> {
String startServeTime,String endServeTime,Integer overTimeOrders,Long shopId, String startServeTime,String endServeTime,Integer overTimeOrders,Long shopId,
String shopName,Integer warning,String title,String classifyId, Long userPackageId); String shopName,Integer warning,String title,String classifyId, Long userPackageId);
Result selectAppOrdersList(Long userId,Integer page,Integer limit,Integer status,Long userPackageId);
ExcelData excelOrdersList(Long userId,Integer status,String city, ExcelData excelOrdersList(Long userId,Integer status,String city,
String name,String phone,Long artificerId,Long parentId,String startTime, String name,String phone,Long artificerId,Long parentId,String startTime,
String endTime,Integer isAdd,String ordersNo,String artificerName, String endTime,Integer isAdd,String ordersNo,String artificerName,

View File

@ -365,6 +365,19 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if (orders.getParentId() != null && orders.getParentId() != 0) { if (orders.getParentId() != null && orders.getParentId() != 0) {
orders.setAddTime(massageType.getDuration()); orders.setAddTime(massageType.getDuration());
List<Orders> parentList = baseMapper.getParentOrders(orders.getParentId());
if(parentList.size()>0){
for(Orders parentOrder : parentList){
if(parentOrder.getStatus()==1 || parentOrder.getStatus()==4){
baseMapper.deleteById(parentOrder.getOrdersId());
ordersMassageService.removeByOrdersId(parentOrder.getOrdersId());
}
}
}
parentList = baseMapper.getParentOrders(orders.getParentId());
if(parentList.size()>0){
return Result.error("当前订单已有加钟订单,无法继续加钟!");
}
} }
orders.setMassageTypeId(massageType.getMassageTypeId()); orders.setMassageTypeId(massageType.getMassageTypeId());
} }
@ -1014,8 +1027,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setArtificerRate(artificer.getRate()); orders.setArtificerRate(artificer.getRate());
orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP));
orders.setIsSupplement(1); orders.setIsSupplement(1);
orders.setOldMassageMoney(oldOrders.getMassageMoney());
orders.setOldOrdersId(oldOrders.getOrdersId());
orders.setTechnicianType(artificer.getTechnicianType()); orders.setTechnicianType(artificer.getTechnicianType());
orders.setVipRate(oldOrders.getVipRate()); orders.setVipRate(oldOrders.getVipRate());
orders.setMassagePrice(oldOrders.getMassagePrice()); orders.setMassagePrice(oldOrders.getMassagePrice());
@ -1024,6 +1036,17 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setPrice(oldOrders.getPrice()); orders.setPrice(oldOrders.getPrice());
orders.setCouponMoney(oldOrders.getCouponMoney()); orders.setCouponMoney(oldOrders.getCouponMoney());
orders.setTechnicianRate(oldOrders.getTechnicianRate()); orders.setTechnicianRate(oldOrders.getTechnicianRate());
orders.setDuration(oldOrders.getDuration());
orders.setOldOrdersId(oldOrders.getOrdersId());
orders.setOldMassageMoney(oldOrders.getPayMoney());
orders.setOldMassageTypeId(oldOrders.getMassageTypeId());
orders.setOldEntryName(oldOrders.getEntryName());
orders.setOldMassagePrice(oldOrders.getMassagePrice());
orders.setOldMassageNum(oldOrders.getMassageNum());
orders.setOldMassageDuration(oldOrders.getDuration());
orders.setOldArtificerMoney(oldOrders.getArtificerMoney());
baseMapper.insert(orders); baseMapper.insert(orders);
ordersMassageService.removeByOrdersId(orders.getOrdersId()); ordersMassageService.removeByOrdersId(orders.getOrdersId());
@ -1121,12 +1144,13 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setEndTime(oldOrders.getEndTime()); orders.setEndTime(oldOrders.getEndTime());
orders.setStartImg(oldOrders.getStartImg()); orders.setStartImg(oldOrders.getStartImg());
orders.setOldOrdersId(oldOrders.getOrdersId()); orders.setOldOrdersId(oldOrders.getOrdersId());
orders.setOldMassageMoney(oldOrders.getMassageMoney()); orders.setOldMassageMoney(oldOrders.getPayMoney());
orders.setOldMassageTypeId(oldOrders.getMassageTypeId()); orders.setOldMassageTypeId(oldOrders.getMassageTypeId());
orders.setOldEntryName(oldOrders.getEntryName()); orders.setOldEntryName(oldOrders.getEntryName());
orders.setOldMassagePrice(oldOrders.getMassagePrice()); orders.setOldMassagePrice(oldOrders.getMassagePrice());
orders.setOldMassageNum(oldOrders.getMassageNum()); orders.setOldMassageNum(oldOrders.getMassageNum());
orders.setOldMassageDuration(oldOrders.getDuration()); orders.setOldMassageDuration(oldOrders.getDuration());
orders.setOldArtificerMoney(oldOrders.getArtificerMoney());
//获取用户VIP的优惠信息 //获取用户VIP的优惠信息
BigDecimal vipRate = new BigDecimal(100); BigDecimal vipRate = new BigDecimal(100);
@ -1693,6 +1717,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
massageTypeId = ordersMassageList.get(0).getMassageId(); massageTypeId = ordersMassageList.get(0).getMassageId();
massageType = massageTypeService.getById(massageTypeId); massageType = massageTypeService.getById(massageTypeId);
for (OrdersMassage ordersMassage : ordersMassageList) { for (OrdersMassage ordersMassage : ordersMassageList) {
orders.setMassagePrice(massageType.getPrice());
orders.setDuration(massageType.getDuration());
orders.setMassageNum(ordersMassage.getNum());
price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum()));
} }
orders.setMassageTypeId(massageTypeId); orders.setMassageTypeId(massageTypeId);
@ -1918,8 +1945,13 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
orders.setCreateTime(DateUtils.format(new Date())); orders.setCreateTime(DateUtils.format(new Date()));
orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP));
orders.setOldMassageMoney(oldOrders.getMassageMoney());
orders.setOldOrdersId(oldOrders.getOrdersId()); orders.setOldOrdersId(oldOrders.getOrdersId());
orders.setOldMassageMoney(oldOrders.getPayMoney());
orders.setOldMassageTypeId(oldOrders.getMassageTypeId());
orders.setOldEntryName(oldOrders.getEntryName());
orders.setOldMassagePrice(oldOrders.getMassagePrice());
orders.setOldMassageNum(oldOrders.getMassageNum());
orders.setOldMassageDuration(oldOrders.getDuration());
orders.setCouponName(oldOrders.getCouponName()); orders.setCouponName(oldOrders.getCouponName());
orders.setCouponMoney(oldOrders.getCouponMoney()); orders.setCouponMoney(oldOrders.getCouponMoney());
//保存订单 //保存订单
@ -1977,6 +2009,36 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("订单已经取消了!"); return Result.error("订单已经取消了!");
} else if (orders.getStatus() == 3 || orders.getStatus() == 5) { } else if (orders.getStatus() == 3 || orders.getStatus() == 5) {
return Result.error("订单已经完成了,无法取消!"); 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("项目加钟之后,无法取消!");
}
}
switch (orders.getStatus()){
case 1:
orders.setCancelRemark("未支付-手动");
break;
case 2:
orders.setCancelRemark("待服务-手动");
break;
case 6:
orders.setCancelRemark("进行中-手动");
break;
case 7:
orders.setCancelRemark("已出发-手动");
break;
case 8:
orders.setCancelRemark("已到达-手动");
break;
case 9:
orders.setCancelRemark("待接单-手动");
break;
case 10:
orders.setCancelRemark("待补单-手动");
break;
} }
//按时间扣款获取扣款金额 //按时间扣款获取扣款金额
CommonInfo commonInfo = commonInfoService.isCheckChangeOrder(DateUtils.stringToDate(orders.getServeTime(),"yyyy-MM-dd HH:mm") ,new Date()); CommonInfo commonInfo = commonInfoService.isCheckChangeOrder(DateUtils.stringToDate(orders.getServeTime(),"yyyy-MM-dd HH:mm") ,new Date());
@ -2053,6 +2115,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
}else{ }else{
massageMoneyDeduction = massageDeduction; massageMoneyDeduction = massageDeduction;
} }
if(orders.getPayMoney().subtract(orders.getTaxiMoney()).compareTo(massageDeduction) < 0){
massageMoneyDeduction = orders.getPayMoney().subtract(orders.getTaxiMoney());
}
//车费扣款 //车费扣款
BigDecimal taxiMoneyDeduction = BigDecimal.ZERO; BigDecimal taxiMoneyDeduction = BigDecimal.ZERO;
if(trafficRate.compareTo(BigDecimal.ZERO) == 0){ if(trafficRate.compareTo(BigDecimal.ZERO) == 0){
@ -2060,21 +2125,30 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
}else{ }else{
taxiMoneyDeduction = trafficDeduction; taxiMoneyDeduction = trafficDeduction;
} }
if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){
taxiMoneyDeduction = orders.getTaxiMoney();
}
//项目总扣款数 //项目总扣款数
BigDecimal rate = massageMoneyDeduction; BigDecimal rate = massageMoneyDeduction;
//退款金额 //退款金额
BigDecimal userMoney = orders.getPayMoney().subtract(rate).subtract(taxiMoneyDeduction); BigDecimal userMoney = orders.getPayMoney().subtract(rate).subtract(taxiMoneyDeduction);
if(userMoney.compareTo(BigDecimal.ZERO) < 0 ){
userMoney = BigDecimal.ZERO;
}
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
if (orders.getPayWay() == 1 || orders.getPayWay() == 2 || orders.getPayWay() == 3 || orders.getPayWay() == 4) { if (orders.getPayWay() == 1 || orders.getPayWay() == 2 || orders.getPayWay() == 3 || orders.getPayWay() == 4) {
if(userMoney.compareTo(BigDecimal.ZERO) > 0){
boolean refund = wxService.refund(orders.getOrdersNo(), orders.getPayMoney(), userMoney, orders.getPayWay()); boolean refund = wxService.refund(orders.getOrdersNo(), orders.getPayMoney(), userMoney, orders.getPayWay());
if (!refund) { if (!refund) {
return Result.error("退款失败,请联系客服!"); return Result.error("退款失败,请联系客服!");
} }
}
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setBlFlag(2); userMoneyDetails.setBlFlag(2);
} else if (orders.getPayWay() == 6) { } else if (orders.getPayWay() == 6) {
if(userMoney.compareTo(BigDecimal.ZERO) > 0) {
String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney); String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney);
if (StringUtils.isNotBlank(data)) { if (StringUtils.isNotBlank(data)) {
log.error(data); log.error(data);
@ -2087,6 +2161,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} else { } else {
return Result.error("退款失败!"); return Result.error("退款失败!");
} }
}
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setBlFlag(2); userMoneyDetails.setBlFlag(2);
} else { } else {
@ -2095,7 +2170,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
// //
// userMoneyArtificerService.updateMoney(1, orders.getUserId(), orders.getArtificerId(), userMoney.doubleValue()); // userMoneyArtificerService.updateMoney(1, orders.getUserId(), orders.getArtificerId(), userMoney.doubleValue());
// } else { // } else {
if(userMoney.compareTo(BigDecimal.ZERO) > 0) {
userMoneyService.updateMoney(1, orders.getUserId(), userMoney.doubleValue()); userMoneyService.updateMoney(1, orders.getUserId(), userMoney.doubleValue());
}
// } // }
//查询用户当前余额 //查询用户当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId());
@ -2117,6 +2194,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
userMoneyDetails.setBlRole(1); userMoneyDetails.setBlRole(1);
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);
if(orders.getSumArtificerMoney().compareTo(BigDecimal.ZERO) > 0){
//按照比例 将扣除的钱进行分佣 //按照比例 将扣除的钱进行分佣
BigDecimal taxiMoney = taxiMoneyDeduction; BigDecimal taxiMoney = taxiMoneyDeduction;
BigDecimal sumMoney = rate.add(taxiMoneyDeduction);//总扣费 BigDecimal sumMoney = rate.add(taxiMoneyDeduction);//总扣费
@ -2369,7 +2448,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
artificerService.updateById(artificer2); artificerService.updateById(artificer2);
messageService.saveBody(messageInfo); messageService.saveBody(messageInfo);
} }
}
UserEntity userEntity = userService.selectUserById(orders.getUserId()); UserEntity userEntity = userService.selectUserById(orders.getUserId());
@ -2493,6 +2572,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
userMoneyDetails.setBlRole(1); userMoneyDetails.setBlRole(1);
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);
if(orders.getSumArtificerMoney().compareTo(BigDecimal.ZERO)>0){
//按照比例 将扣除的钱进行分佣 //按照比例 将扣除的钱进行分佣
BigDecimal taxiMoney = taxiMoneyDeduction; BigDecimal taxiMoney = taxiMoneyDeduction;
BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 BigDecimal sumMoney = taxiMoneyDeduction;//总扣费
@ -2611,7 +2692,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
artificerService.updateById(artificer2); artificerService.updateById(artificer2);
messageService.saveBody(messageInfo); messageService.saveBody(messageInfo);
} }
}
UserEntity userEntity = userService.selectUserById(orders.getUserId()); UserEntity userEntity = userService.selectUserById(orders.getUserId());
@ -2798,9 +2879,17 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
data.put("time14", new TemplateMessageItem(DateUtils.format(new Date()), "#d71345")); data.put("time14", new TemplateMessageItem(DateUtils.format(new Date()), "#d71345"));
userService.sendWxMessage(apkey, data, userEntity.getWxOpenId()); userService.sendWxMessage(apkey, data, userEntity.getWxOpenId());
} }
} }
if(isAuto == 1){ if(isAuto == 1){
Integer minutes = Integer.valueOf(commonInfoService.findOne(452).getValue());
String serveTime = orders.getServeTime();
Date serveTimeDate = DateUtils.stringToDate(serveTime,"yyyy-MM-dd HH:mm");
serveTimeDate = DateUtils.addDateMinutes(serveTimeDate,minutes);
Date currentDate = new Date();
if(currentDate.getTime()>serveTimeDate.getTime()){
}else{
return Result.error("当前单据不满足待补单条件!");
}
//按照比例 将扣除的车费钱 //按照比例 将扣除的车费钱
BigDecimal taxiMoney = orders.getTaxiMoney(); BigDecimal taxiMoney = orders.getTaxiMoney();
BigDecimal sumMoney = orders.getTaxiMoney();//总扣费 BigDecimal sumMoney = orders.getTaxiMoney();//总扣费
@ -2854,9 +2943,13 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
baseMapper.updateById(orders); baseMapper.updateById(orders);
cancelSupplementOrders(userId, orders.getOldOrdersId(), isAuto, 1);//退原单原单的车费已被退/所以只退项目 cancelSupplementOrders(userId, orders.getOldOrdersId(), isAuto, 1);//退原单原单的车费已被退/所以只退项目
}else{ }else{
BigDecimal taxiMoney = orders.getTaxiMoney();
BigDecimal artificerMoney = orders.getArtificerMoney().subtract(taxiMoney);
orders.setRefusalContent(""); orders.setRefusalContent("");
orders.setTaxiMoney(BigDecimal.ZERO); orders.setTaxiMoney(BigDecimal.ZERO);
orders.setStatus(10); orders.setStatus(10);
orders.setArtificerMoney(artificerMoney);
orders.setSumArtificerMoney(artificerMoney);
baseMapper.updateById(orders); baseMapper.updateById(orders);
} }
} }
@ -3632,12 +3725,27 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
@Override @Override
public Result selectOrdersDetails(Long ordersId) { public Result selectOrdersDetails(Long ordersId) {
Integer minutes = Integer.valueOf(commonInfoService.findOne(452).getValue());
Orders orders = baseMapper.selectById(ordersId); Orders orders = baseMapper.selectById(ordersId);
String serveTime = orders.getServeTime();
Date serveTimeDate = DateUtils.stringToDate(serveTime,"yyyy-MM-dd HH:mm");
serveTimeDate = DateUtils.addDateMinutes(serveTimeDate,minutes);
Date currentDate = new Date();
if(currentDate.getTime()>serveTimeDate.getTime()){
orders.setIsCanSupplement(1);
}else{
orders.setIsCanSupplement(0);
}
List<OrdersMassage> ordersMassageList = ordersMassageService.list(new QueryWrapper<OrdersMassage>().eq("orders_id", ordersId)); List<OrdersMassage> ordersMassageList = ordersMassageService.list(new QueryWrapper<OrdersMassage>().eq("orders_id", ordersId));
for (OrdersMassage ordersMassage : ordersMassageList) { for (OrdersMassage ordersMassage : ordersMassageList) {
ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId())); ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId()));
} }
orders.setOrdersMassageList(ordersMassageList); orders.setOrdersMassageList(ordersMassageList);
List<OrdersMassage> oldOrdersMassageList = ordersMassageService.list(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOldOrdersId()));
for (OrdersMassage ordersMassage : oldOrdersMassageList) {
ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId()));
}
orders.setOldOrdersMassageList(oldOrdersMassageList);
Artificer artificer = artificerService.getById(orders.getArtificerId()); Artificer artificer = artificerService.getById(orders.getArtificerId());
if (artificer != null) { if (artificer != null) {
UserEntity userEntity = userService.selectUserById(artificer.getUserId()); UserEntity userEntity = userService.selectUserById(artificer.getUserId());
@ -3646,31 +3754,33 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
orders.setArtificer(artificer); orders.setArtificer(artificer);
} }
orders.setPayMoneyTotal(orders.getPayMoney());
orders.setArtificerMoneyTotal(orders.getArtificerMoney());
if(orders.getPayMoneyTotal() == null){
orders.setPayMoneyTotal(BigDecimal.ZERO);
}
if(orders.getArtificerMoneyTotal() == null){
orders.setArtificerMoneyTotal(BigDecimal.ZERO);
}
//获取是否有加钟订单 //获取是否有加钟订单
if(orders.getAddNum()!=null){ if(orders.getAddNum()!=null){
QueryWrapper<Orders> ordersQueryWrapper = new QueryWrapper<Orders>(); orders.setPayMoneyTotal(orders.getPayMoneyTotal().add(orders.getAddMoney()));
ordersQueryWrapper.eq("parent_id",orders.getOrdersId()); orders.setArtificerMoneyTotal(orders.getArtificerMoneyTotal().add(orders.getAddArtificerMoney()));
ordersQueryWrapper.ne("status",4);
Orders jzOrder = baseMapper.selectOne(ordersQueryWrapper);
orders.setJzName(jzOrder.getEntryName());
} }
//获取是否有改价订单 //获取是否有改价订单
if(orders.getIsSupplement()!=null){ if(orders.getOldOrdersId()!=null){
QueryWrapper<Orders> ordersQueryWrapper = new QueryWrapper<Orders>(); QueryWrapper<Orders> ordersQueryWrapper = new QueryWrapper<Orders>();
ordersQueryWrapper.eq("old_orders_id",orders.getOldOrdersId()); ordersQueryWrapper.eq("orders_id",orders.getOldOrdersId());
ordersQueryWrapper.ne("status",4); ordersQueryWrapper.ne("status",4);
Orders jzOrder = baseMapper.selectOne(ordersQueryWrapper); List<Orders> list = baseMapper.selectList(ordersQueryWrapper);
orders.setGjName(jzOrder.getEntryName()); if(list!=null && list.size()>0) {
BigDecimal massageMoney = orders.getMassageMoney(); for(Orders vo : list){
BigDecimal payMoney = jzOrder.getPayMoney(); BigDecimal payMoney = vo.getPayMoney();
if(massageMoney == null){ BigDecimal artificerMoney = vo.getArtificerMoney();
massageMoney = BigDecimal.ZERO; orders.setPayMoneyTotal(orders.getPayMoneyTotal().add(payMoney));
orders.setArtificerMoneyTotal(orders.getArtificerMoneyTotal().add(artificerMoney));
} }
if(payMoney == null){
payMoney = BigDecimal.ZERO;
} }
orders.setGjPrice(payMoney.add(massageMoney));
orders.setGjcePrice(jzOrder.getPayMoney());
} }
return Result.success().put("data", orders); return Result.success().put("data", orders);
} }
@ -3704,6 +3814,28 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.success().put("data", new PageUtils(ordersIPage)); return Result.success().put("data", new PageUtils(ordersIPage));
} }
@Override
public Result selectAppOrdersList(Long userId, Integer page, Integer limit, Integer status, Long userPackageId) {
Page<Orders> pages = new Page<>(page, limit);
IPage<Orders> ordersIPage = baseMapper.selectAppOrdersList(pages, userId, status, userPackageId);
List<Orders> records = ordersIPage.getRecords();
for (Orders orders : records) {
List<OrdersMassage> ordersMassageList = ordersMassageService.list(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
for (OrdersMassage ordersMassage : ordersMassageList) {
MassageType massageType = massageTypeService.getById(ordersMassage.getMassageId());
ordersMassage.setMassageType(massageType);
if (massageType != null) {
SysDictEntity sysDictEntity = sysDictService.getById(massageType.getClassifyId());
if (sysDictEntity != null) {
massageType.setClassifyName(sysDictEntity.getValue());
}
}
}
orders.setOrdersMassageList(ordersMassageList);
}
return Result.success().put("data", new PageUtils(ordersIPage));
}
@Override @Override
public ExcelData excelOrdersList(Long userId, Integer status, String city, public ExcelData excelOrdersList(Long userId, Integer status, String city,
String name, String phone, Long artificerId, Long parentId, String startTime, String name, String phone, Long artificerId, Long parentId, String startTime,
@ -3999,14 +4131,17 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
}else{ }else{
orders.setStatus(9);//用户已支付技师待接单 orders.setStatus(9);//用户已支付技师待接单
} }
}else{
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{ }else{
orders.setStatus(9);//用户已支付技师待接单 orders.setStatus(9);//用户已支付技师待接单
} }
}
orders.setPayWay(5); orders.setPayWay(5);
orders.setPayTime(simpleDateFormat.format(new Date())); orders.setPayTime(simpleDateFormat.format(new Date()));
BigDecimal pingMoney = orders.getPayMoney(); BigDecimal pingMoney = orders.getPayMoney();
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;
@ -4017,7 +4152,6 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
Artificer artificer = artificerService.getById(orders.getArtificerId()); Artificer artificer = artificerService.getById(orders.getArtificerId());
UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
BigDecimal oneArtificerMoney = BigDecimal.ZERO; BigDecimal oneArtificerMoney = BigDecimal.ZERO;
@ -4042,10 +4176,13 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue()); BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue());
orders.setWalletRate(rate);
rate = rate.divide(new BigDecimal(100)); rate = rate.divide(new BigDecimal(100));
BigDecimal storageRate = BigDecimal.ONE.subtract(rate);
//钱包支付技师提成 //钱包支付技师提成
BigDecimal taxiMoney = orders.getTaxiMoney(); BigDecimal taxiMoney = orders.getTaxiMoney();
BigDecimal artificerPrice = BigDecimal.ZERO; BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费 //查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue(); String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算 //计算技师出租车收益按照技师表收益计算
@ -4065,16 +4202,28 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setArtificerTaxiMoney(orders.getTaxiMoney()); orders.setArtificerTaxiMoney(orders.getTaxiMoney());
//设置出租车扣款为0 //设置出租车扣款为0
orders.setPingTaxiMoney(BigDecimal.ZERO); orders.setPingTaxiMoney(BigDecimal.ZERO);
BigDecimal subtract = BigDecimal.ZERO;
//用户支付减去通行费用 //用户支付减去通行费用
BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney); if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
subtract = orders.getPayMoney();
}else{
subtract = orders.getPayMoney().subtract(taxiMoney);
}
//计算用户收益 计算前先减去通行费用再计算技师抽成 //计算用户收益 计算前先减去通行费用再计算技师抽成
artificerPrice = subtract.multiply(artificer.getRate()); artificerPrice = subtract.multiply(artificer.getRate());
//储值扣费
valueStorageDeduction = artificerPrice.multiply(storageRate);
//用户收益加上通行费用 //用户收益加上通行费用
if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){
artificerPrice = artificerPrice.multiply(rate);
}else{
artificerPrice = artificerPrice.multiply(rate).add(taxiMoney); artificerPrice = artificerPrice.multiply(rate).add(taxiMoney);
} }
}
orders.setProjectBenefits(orders.getProjectBenefits().multiply(rate)); orders.setProjectBenefits(orders.getProjectBenefits().multiply(rate));
orders.setArtificerMoney(artificerPrice); orders.setArtificerMoney(artificerPrice);
orders.setSumArtificerMoney(orders.getArtificerMoney()); orders.setSumArtificerMoney(orders.getArtificerMoney());
orders.setValueStorageDeduction(valueStorageDeduction);
pingMoney = pingMoney.subtract(orders.getArtificerMoney()); pingMoney = pingMoney.subtract(orders.getArtificerMoney());
pingMoney = pingMoney.subtract(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney);
@ -4115,7 +4264,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders1.setAddArtificerMoney(orders.getArtificerMoney()); orders1.setAddArtificerMoney(orders.getArtificerMoney());
} }
orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney())); orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney()));
orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().multiply(rate).add(orders.getArtificerMoney())); orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney()));
pingMoney = orders1.getSumMoney(); pingMoney = orders1.getSumMoney();
oneUserMoney = BigDecimal.ZERO; oneUserMoney = BigDecimal.ZERO;
@ -4294,7 +4443,21 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);
// } // }
if(orders.getIsSupplement() != null){
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
}else{
orders.setStatus(9);//用户已支付技师待接单 orders.setStatus(9);//用户已支付技师待接单
}
}else{
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}
orders.setPayWay(5); orders.setPayWay(5);
orders.setPayTime(simpleDateFormat.format(new Date())); orders.setPayTime(simpleDateFormat.format(new Date()));
@ -4331,6 +4494,46 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
} }
BigDecimal rate = new BigDecimal(commonInfoService.findOne(449).getValue());
orders.setWalletRate(rate);
rate = rate.divide(new BigDecimal(100));
BigDecimal storageRate = BigDecimal.ONE.subtract(rate);
BigDecimal taxiMoney = orders.getTaxiMoney();
BigDecimal artificerPrice = BigDecimal.ZERO;
BigDecimal valueStorageDeduction = BigDecimal.ZERO;
//查询是否计算出租车扣费
String taxi = commonInfoService.findOne(394).getValue();
//计算技师出租车收益按照技师表收益计算
if ("".equals(taxi)) {
//计算技师应该收取的出租车费用
BigDecimal artificerTaxiMoney = taxiMoney.multiply(artificer.getRate());
//计算出租车扣款
BigDecimal pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney);
//赋值技师出租收款
orders.setArtificerTaxiMoney(artificerTaxiMoney);
//赋值出租车扣款
orders.setPingTaxiMoney(pingTaxiMoney);
//赋值技师收益
artificerPrice = orders.getPayMoney().multiply(artificer.getRate()).multiply(rate);
} else {
//平台不扣费 出租车收益全由技师收取
orders.setArtificerTaxiMoney(orders.getTaxiMoney());
//设置出租车扣款为0
orders.setPingTaxiMoney(BigDecimal.ZERO);
//用户支付减去通行费用
BigDecimal subtract = orders.getPayMoney().subtract(taxiMoney);
//计算用户收益 计算前先减去通行费用再计算技师抽成
artificerPrice = subtract.multiply(artificer.getRate());
//储值扣费
valueStorageDeduction = artificerPrice.multiply(storageRate);
//用户收益加上通行费用
artificerPrice = artificerPrice.multiply(rate).add(taxiMoney);
}
orders.setProjectBenefits(orders.getProjectBenefits().multiply(rate));
orders.setArtificerMoney(artificerPrice);
orders.setSumArtificerMoney(orders.getArtificerMoney());
orders.setValueStorageDeduction(valueStorageDeduction);
pingMoney = pingMoney.subtract(orders.getArtificerMoney()); pingMoney = pingMoney.subtract(orders.getArtificerMoney());
pingMoney = pingMoney.subtract(oneUserMoney); pingMoney = pingMoney.subtract(oneUserMoney);
pingMoney = pingMoney.subtract(shopMoney); pingMoney = pingMoney.subtract(shopMoney);
@ -4788,6 +4991,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
//修改订单下所有加钟的状态为待评价 //修改订单下所有加钟的状态为待评价
UpdateWrapper<Orders> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<Orders> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("parent_id", orders.getOrdersId()); updateWrapper.eq("parent_id", orders.getOrdersId());
updateWrapper.notIn("status", "1,4");
Orders orders2 = new Orders(); Orders orders2 = new Orders();
orders2.setStatus(3); orders2.setStatus(3);
baseMapper.update(orders2,updateWrapper); baseMapper.update(orders2,updateWrapper);
@ -5217,8 +5421,15 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
@Override @Override
public Result selectTodayOrder(Long artificerId, Integer page, Integer limit, Integer type, String startTime, String endTime) { public Result selectTodayOrder(Long artificerId, Integer page, Integer limit, Integer type, String startTime, String endTime) {
Integer minutes = Integer.valueOf(commonInfoService.findOne(452).getValue());
if(page == null){
page = 1;
}
if(limit == null){
limit = 10;
}
Page<Orders> pages = new Page<>(page, limit); Page<Orders> pages = new Page<>(page, limit);
PageUtils pageUtils = new PageUtils(ordersDao.selectTodayOrder(pages, artificerId, type, startTime, endTime)); PageUtils pageUtils = new PageUtils(ordersDao.selectTodayOrder(pages, artificerId, type, startTime, endTime,minutes));
return Result.success().put("data", pageUtils); return Result.success().put("data", pageUtils);
} }
@ -5585,6 +5796,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
List<Orders> ordersList = baseMapper.selectOrdersStatusByTime(value1); List<Orders> ordersList = baseMapper.selectOrdersStatusByTime(value1);
for (Orders orders : ordersList) { for (Orders orders : ordersList) {
orders.setStatus(4); orders.setStatus(4);
orders.setCancelRemark("未支付-系统");
baseMapper.updateById(orders); baseMapper.updateById(orders);
artificerTimeService.remove(new QueryWrapper<ArtificerTime>().eq("orders_id", orders.getOrdersId())); artificerTimeService.remove(new QueryWrapper<ArtificerTime>().eq("orders_id", orders.getOrdersId()));
if (orders.getCouponId() != null && orders.getOldOrdersId()==null) { if (orders.getCouponId() != null && orders.getOldOrdersId()==null) {

View File

@ -251,7 +251,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
upo.setCouponName(couponUser.getCouponName()); upo.setCouponName(couponUser.getCouponName());
upo.setCouponMoney(couponUser.getMoney()); upo.setCouponMoney(couponUser.getMoney());
baseMapper.insertCoupon(upo); baseMapper.insertCoupon(upo);
//更新用户代金 //更新用户代金
couponUserService.update(Wrappers.<CouponUser>lambdaUpdate().eq(CouponUser::getId, couponUser.getId()).set(CouponUser::getStatus, 1)); couponUserService.update(Wrappers.<CouponUser>lambdaUpdate().eq(CouponUser::getId, couponUser.getId()).set(CouponUser::getStatus, 1));
} }
userPackageOrder.setCouponUserList(CouponUserList); userPackageOrder.setCouponUserList(CouponUserList);

View File

@ -95,7 +95,7 @@ public class CouponIssueServiceImpl extends ServiceImpl<CouponIssueDao, CouponIs
userMoneyDetails.setManipulateType(2); userMoneyDetails.setManipulateType(2);
userMoneyDetails.setMoney(couponIssue.getPrice()); userMoneyDetails.setMoney(couponIssue.getPrice());
userMoneyDetails.setUserId(userId); userMoneyDetails.setUserId(userId);
userMoneyDetails.setTitle("零钱购买优惠券,包:"+couponIssue.getCouponIssueName()); userMoneyDetails.setTitle("零钱购买优惠券,包:"+couponIssue.getCouponIssueName());
userMoneyDetails.setContent("购买优惠券费用:"+couponIssue.getPrice()); userMoneyDetails.setContent("购买优惠券费用:"+couponIssue.getPrice());
userMoneyDetails.setType(2); userMoneyDetails.setType(2);
userMoneyDetails.setCreateTime(createTime); userMoneyDetails.setCreateTime(createTime);

View File

@ -458,6 +458,7 @@ public class AliPayController {
o.setType("2"); o.setType("2");
o.setUserId(payDetails.getUserId()); o.setUserId(payDetails.getUserId());
o.setArtificerId(payDetails.getArtificerId()); o.setArtificerId(payDetails.getArtificerId());
o.setOrdersId(payDetails.getMassageOrdersId());
o.setCreateTime(DateUtils.format(new Date())); o.setCreateTime(DateUtils.format(new Date()));
userRechargeDao.insert(o); userRechargeDao.insert(o);
} }
@ -475,7 +476,7 @@ public class AliPayController {
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney())); userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
userMoneyDetails.setUserId(payDetails.getUserId()); userMoneyDetails.setUserId(payDetails.getUserId());
userMoneyDetails.setTitle("微信购买优惠券,包:"+couponIssue.getCouponIssueName()); userMoneyDetails.setTitle("微信购买优惠券,包:"+couponIssue.getCouponIssueName());
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney()); userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
userMoneyDetails.setCreateTime(DateUtils.format(new Date())); userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
userMoneyDetails.setBlRole(1); userMoneyDetails.setBlRole(1);
@ -599,16 +600,16 @@ public class AliPayController {
userMoneyDetails.setBlFlag(2); userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);
//技师流水 //技师流水
UserEntity userEntity = userService.queryByUserId(payDetails.getUserId()); UserEntity userEntity = userService.queryByUserId(artificer.getUserId());
userMoneyDao.updateMayMoney(1, artificerId, money); userMoneyDao.updateMayMoney(1, userEntity.getUserId(), money);
//查询技师当前余额 //查询技师当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(artificerId); UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(userEntity.getUserId());
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails();
//插入余额 //插入余额
userMoneyDetails2.setBalance(userNowMoney.getMoney()); userMoneyDetails2.setBalance(userNowMoney.getMoney());
userMoneyDetails2.setManipulateType(2); userMoneyDetails2.setManipulateType(2);
userMoneyDetails2.setClassify(8); userMoneyDetails2.setClassify(8);
userMoneyDetails2.setUserId(artificerId); userMoneyDetails2.setUserId(userEntity.getUserId());
userMoneyDetails2.setTitle("用户支付宝打赏"); userMoneyDetails2.setTitle("用户支付宝打赏");
userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”支付宝打赏:"+money); userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”支付宝打赏:"+money);
userMoneyDetails2.setType(1); userMoneyDetails2.setType(1);
@ -903,7 +904,7 @@ public class AliPayController {
// return payH5(name, generalOrder, payClassify.getPrice().doubleValue(), returnUrl); // return payH5(name, generalOrder, payClassify.getPrice().doubleValue(), returnUrl);
// } // }
// } // }
public Result payOrderMoney(@RequestAttribute Long userId, Long payClassifyId, Integer type, Long artificerId) { public Result payOrderMoney(@RequestAttribute Long userId, Long payClassifyId, Integer type, Long artificerId, Long ordersId) {
//通知页面地址 //通知页面地址
CommonInfo one = commonInfoService.findOne(19); CommonInfo one = commonInfoService.findOne(19);
String returnUrl = one.getValue() + "/#/pages/my/index"; String returnUrl = one.getValue() + "/#/pages/my/index";
@ -921,6 +922,7 @@ public class AliPayController {
payDetails.setType(3); payDetails.setType(3);
payDetails.setArtificerId(artificerId); payDetails.setArtificerId(artificerId);
payDetails.setRemark(String.valueOf(payClassifyId)); payDetails.setRemark(String.valueOf(payClassifyId));
payDetails.setMassageOrdersId(ordersId);
payDetailsDao.insert(payDetails); payDetailsDao.insert(payDetails);
payOrderResult(generalOrder); payOrderResult(generalOrder);
return Result.success(); return Result.success();
@ -1217,6 +1219,7 @@ public class AliPayController {
o.setType("2"); o.setType("2");
o.setUserId(payDetails.getUserId()); o.setUserId(payDetails.getUserId());
o.setArtificerId(payDetails.getArtificerId()); o.setArtificerId(payDetails.getArtificerId());
o.setOrdersId(payDetails.getMassageOrdersId());
o.setCreateTime(DateUtils.format(new Date())); o.setCreateTime(DateUtils.format(new Date()));
userRechargeDao.insert(o); userRechargeDao.insert(o);
} }
@ -1235,7 +1238,7 @@ public class AliPayController {
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney())); userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
userMoneyDetails.setUserId(payDetails.getUserId()); userMoneyDetails.setUserId(payDetails.getUserId());
userMoneyDetails.setTitle("微信购买优惠券,包:"+couponIssue.getCouponIssueName()); userMoneyDetails.setTitle("微信购买优惠券,包:"+couponIssue.getCouponIssueName());
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney()); userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
userMoneyDetails.setCreateTime(DateUtils.format(new Date())); userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
userMoneyDetails.setBlRole(1); userMoneyDetails.setBlRole(1);
@ -1456,7 +1459,7 @@ public class AliPayController {
} }
@Login @Login
@ApiOperation("支付宝购买") @ApiOperation("支付宝购买")
@RequestMapping(value = "/payCoupon", method = RequestMethod.POST) @RequestMapping(value = "/payCoupon", method = RequestMethod.POST)
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result payCoupon(@RequestAttribute Long userId, Integer classify,Long couponIssueId) { public Result payCoupon(@RequestAttribute Long userId, Integer classify,Long couponIssueId) {

View File

@ -37,8 +37,8 @@ public class ApiWeiXinPayController {
@Login @Login
@ApiOperation("微信充值余额") @ApiOperation("微信充值余额")
@PostMapping("/payMoney") @PostMapping("/payMoney")
public Result payMoney(@RequestAttribute("userId") Long userId,Long payClassifyId,Integer type,Long artificerId,HttpServletRequest request) throws Exception { public Result payMoney(@RequestAttribute("userId") Long userId,Long payClassifyId,Integer type,Long artificerId,Long ordersId, HttpServletRequest request) throws Exception {
return wxService.payMoney(userId,payClassifyId,type,artificerId,request); return wxService.payMoney(userId,payClassifyId,type,artificerId,ordersId,request);
} }

View File

@ -50,6 +50,7 @@ public class AppPayClassifyController {
sb.append(" "); sb.append(" ");
} }
List<PayClassifyDetail> detailList = payClassifyDetailService.findList(payClassify.getPayClassifyId()); List<PayClassifyDetail> detailList = payClassifyDetailService.findList(payClassify.getPayClassifyId());
payClassify.setDetailList(detailList);
for(PayClassifyDetail classifyDetail : detailList){ for(PayClassifyDetail classifyDetail : detailList){
Integer giveNum = classifyDetail.getGiveNum(); Integer giveNum = classifyDetail.getGiveNum();
sb.append(giveNum); sb.append(giveNum);
@ -57,7 +58,7 @@ public class AppPayClassifyController {
Coupon coupon = classifyDetail.getCoupon(); Coupon coupon = classifyDetail.getCoupon();
BigDecimal couponMoney = coupon.getMoney(); BigDecimal couponMoney = coupon.getMoney();
sb.append(couponMoney); sb.append(couponMoney);
sb.append(""); sb.append("");
sb.append(" "); sb.append(" ");
BigDecimal sumCouponMoney = couponMoney.multiply(new BigDecimal(giveNum)); BigDecimal sumCouponMoney = couponMoney.multiply(new BigDecimal(giveNum));
sumMoney = sumMoney.add(sumCouponMoney); sumMoney = sumMoney.add(sumCouponMoney);

View File

@ -76,6 +76,11 @@ public class PayDetails implements Serializable {
*/ */
private Long artificerId; private Long artificerId;
/**
* 服务项目订单ID
*/
private Long massageOrdersId;
@TableField(exist = false) @TableField(exist = false)
private String refundContent; private String refundContent;

View File

@ -14,7 +14,7 @@ import java.math.BigDecimal;
*/ */
public interface WxService { public interface WxService {
Result payMoney(Long userId, Long payClassifyId, Integer classify, Long artificerId, HttpServletRequest request) throws Exception; Result payMoney(Long userId, Long payClassifyId, Integer classify, Long artificerId, Long ordersId, HttpServletRequest request) throws Exception;
Result payOrder(Long id, Integer type,HttpServletRequest request) throws Exception; Result payOrder(Long id, Integer type,HttpServletRequest request) throws Exception;

View File

@ -136,7 +136,7 @@ public class WxServiceImpl implements WxService {
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override @Override
public Result payMoney(Long userId,Long payClassifyId,Integer classify, Long artificerId,HttpServletRequest request) throws Exception { public Result payMoney(Long userId,Long payClassifyId,Integer classify, Long artificerId, Long ordersId,HttpServletRequest request) throws Exception {
PayClassify payClassify = payClassifyService.getById(payClassifyId); PayClassify payClassify = payClassifyService.getById(payClassifyId);
String generalOrder = getGeneralOrder(); String generalOrder = getGeneralOrder();
PayDetails payDetails = new PayDetails(); PayDetails payDetails = new PayDetails();
@ -149,6 +149,7 @@ public class WxServiceImpl implements WxService {
payDetails.setType(3); payDetails.setType(3);
payDetails.setArtificerId(artificerId); payDetails.setArtificerId(artificerId);
payDetails.setRemark(String.valueOf(payClassifyId)); payDetails.setRemark(String.valueOf(payClassifyId));
payDetails.setMassageOrdersId(ordersId);
payDetailsDao.insert(payDetails); payDetailsDao.insert(payDetails);
//用户在服务中充值余额算技师业绩增加userRecharge表 modify 2024-06-17 by caolei 改到支付成功后技师获取积分 //用户在服务中充值余额算技师业绩增加userRecharge表 modify 2024-06-17 by caolei 改到支付成功后技师获取积分
//查询用户在服务中的技师的订单id //查询用户在服务中的技师的订单id
@ -931,6 +932,7 @@ public class WxServiceImpl implements WxService {
o.setType("2"); o.setType("2");
o.setUserId(payDetails.getUserId()); o.setUserId(payDetails.getUserId());
o.setArtificerId(payDetails.getArtificerId()); o.setArtificerId(payDetails.getArtificerId());
o.setOrdersId(payDetails.getMassageOrdersId());
o.setCreateTime(DateUtils.format(new Date())); o.setCreateTime(DateUtils.format(new Date()));
userRechargeDao.insert(o); userRechargeDao.insert(o);
} }
@ -948,7 +950,7 @@ public class WxServiceImpl implements WxService {
userMoneyDetails.setManipulateType(1); userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney())); userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
userMoneyDetails.setUserId(payDetails.getUserId()); userMoneyDetails.setUserId(payDetails.getUserId());
userMoneyDetails.setTitle("微信购买优惠券,包:"+couponIssue.getCouponIssueName()); userMoneyDetails.setTitle("微信购买优惠券,包:"+couponIssue.getCouponIssueName());
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney()); userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
userMoneyDetails.setCreateTime(DateUtils.format(new Date())); userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
userMoneyDetails.setBlRole(1); userMoneyDetails.setBlRole(1);
@ -1072,16 +1074,16 @@ public class WxServiceImpl implements WxService {
userMoneyDetails.setBlFlag(2); userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);
//技师流水 //技师流水
UserEntity userEntity = userService.queryByUserId(payDetails.getUserId()); UserEntity userEntity = userService.queryByUserId(artificer.getUserId());
userMoneyDao.updateMayMoney(1, artificerId, money); userMoneyDao.updateMayMoney(1, userEntity.getUserId(), money);
//查询技师当前余额 //查询技师当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(artificerId); UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(userEntity.getUserId());
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails();
//插入余额 //插入余额
userMoneyDetails2.setBalance(userNowMoney.getMoney()); userMoneyDetails2.setBalance(userNowMoney.getMoney());
userMoneyDetails2.setManipulateType(2); userMoneyDetails2.setManipulateType(2);
userMoneyDetails2.setClassify(8); userMoneyDetails2.setClassify(8);
userMoneyDetails2.setUserId(artificerId); userMoneyDetails2.setUserId(userEntity.getUserId());
userMoneyDetails2.setTitle("用户微信打赏"); userMoneyDetails2.setTitle("用户微信打赏");
userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”微信打赏:"+money); userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”微信打赏:"+money);
userMoneyDetails2.setType(1); userMoneyDetails2.setType(1);

View File

@ -373,6 +373,82 @@
order by o.create_time desc order by o.create_time desc
</select> </select>
<select id="selectAppOrdersList" resultType="com.sqx.modules.artificer.entity.Orders">
select o1.*,
(case when o1.status = 4
then o1.pay_money + ifnull(o1.add_money,0)
else o1.pay_money + ifnull(o1.add_money,0) + ifnull(o2.pay_money,0) + ifnull(o2.add_money,0)
end) as pay_money_total,
(case when o1.status = 4
then o1.artificer_money + ifnull(o1.add_artificer_money,0)
else o1.artificer_money + ifnull(o1.add_artificer_money,0) + ifnull(o2.artificer_money,0) + ifnull(o2.add_artificer_money,0)
end) as artificer_money_total,
a.artificer_name as artificerName,a.artificer_img as artificerImg,
a.user_id as artificerUserId,c.consortia_name as shopName,c.address as shopAddress,
c.phone as shopPhone
from orders o1
left join orders o2 on o1.old_orders_id = o2.orders_id and o2.status != 4
left join artificer a on a.artificer_id=o1.artificer_id
left join tb_user u on u.user_id=o1.user_id
left join consortia c on c.consortia_id=o1.consortia_id
where o1.old_orders_id is not null
and o1.status != 11
<if test="userPackageId!=null">
and o1.user_package_id = #{userPackageId}
</if>
<if test="userId!=null">
and o1.user_id=#{userId}
</if>
<if test="status!=null and status!=0 and status!=-1 and status!=2">
and o1.status=#{status}
</if>
<if test="status!=null and status==2">
and o1.status in (2,9)
</if>
union all
select o1.*,
(o1.pay_money + ifnull(o1.add_money,0)) as pay_money_total,
(o1.artificer_money + ifnull(o1.add_artificer_money,0)) as artificer_money_total,
a.artificer_name as artificerName,a.artificer_img as artificerImg,
a.user_id as artificerUserId,c.consortia_name as shopName,c.address as shopAddress,
c.phone as shopPhone
from orders o1
left join artificer a on a.artificer_id=o1.artificer_id
left join tb_user u on u.user_id=o1.user_id
left join consortia c on c.consortia_id=o1.consortia_id
where o1.parent_id = 0
and o1.status != 11
and o1.orders_id not in (
select orders_id from orders
where old_orders_id is not null
<if test="userPackageId!=null">
and o1.user_package_id = #{userPackageId}
</if>
<if test="userId!=null">
and o1.user_id=#{userId}
</if>
<if test="status!=null and status!=0 and status!=-1 and status!=2">
and o1.status=#{status}
</if>
<if test="status!=null and status==2">
and o1.status in (2,9)
</if>
)
<if test="userPackageId!=null">
and o1.user_package_id = #{userPackageId}
</if>
<if test="userId!=null">
and o1.user_id=#{userId}
</if>
<if test="status!=null and status!=0 and status!=-1 and status!=2">
and o1.status=#{status}
</if>
<if test="status!=null and status==2">
and o1.status in (2,9)
</if>
order by serve_time desc
</select>
<select id="excelOrdersList" resultType="com.sqx.modules.artificer.entity.Orders"> <select id="excelOrdersList" resultType="com.sqx.modules.artificer.entity.Orders">
select o.*,a.artificer_name as artificerName,a.artificer_img as artificerImg, select o.*,a.artificer_name as artificerName,a.artificer_img as artificerImg,
a.user_id as artificerUserId,c.consortia_name as shopName,c.address as shopAddress, a.user_id as artificerUserId,c.consortia_name as shopName,c.address as shopAddress,
@ -580,13 +656,21 @@
</select> </select>
<select id="selectTodayOrder" resultType="com.sqx.modules.artificer.entity.Orders"> <select id="selectTodayOrder" resultType="com.sqx.modules.artificer.entity.Orders">
select o.*,m.title,m.massage_img as massageImg from orders o select o.*,m.title,m.massage_img as massageImg,
now() > DATE_ADD(STR_TO_DATE(o.serve_time, '%Y-%m-%d %H:%i'), INTERVAL #{minutes} MINUTE) as is_can_supplement,
(case when o.status = 4
then o.artificer_money + ifnull(o.add_artificer_money,0)
else o.artificer_money + ifnull(o.add_artificer_money,0) + ifnull(o2.artificer_money,0) + ifnull(o2.add_artificer_money,0)
end) as artificer_money_total
from orders o
left join orders o2 on o.old_orders_id = o2.orders_id and o2.status != 4
left join orders_massage om on om.orders_id=o.orders_id left join orders_massage om on om.orders_id=o.orders_id
left join massage_type m on m.massage_type_id=om.massage_id left join massage_type m on m.massage_type_id=om.massage_id
where o.artificer_id = #{artificerId} and o.parent_id = 0 where o.artificer_id = #{artificerId}
and o.old_orders_id is not null
and o.status != 11
<if test="type==1"> <if test="type==1">
and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status in (2,3,5,6,7,8,9) and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status in (2,3,5,6,7,8,9)
</if> </if>
<if test="type==2"> <if test="type==2">
and o.status=2 and o.status=2
@ -618,7 +702,88 @@
<if test="type==5"> <if test="type==5">
and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status=2 and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status=2
</if> </if>
order by o.serve_time desc
union all
select o.*,m.title,m.massage_img as massageImg,
now() > DATE_ADD(STR_TO_DATE(o.serve_time, '%Y-%m-%d %H:%i'), INTERVAL #{minutes} MINUTE) as is_can_supplement,
o.artificer_money + ifnull(o.add_artificer_money,0) as artificer_money_total
from orders o
left join orders_massage om on om.orders_id=o.orders_id
left join massage_type m on m.massage_type_id=om.massage_id
where o.artificer_id = #{artificerId}
and o.parent_id = 0
and o.status != 11
and o.orders_id not in (
select orders_id from orders
where old_orders_id is not null
<if test="type==1">
and date_format(serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and status in (2,3,5,6,7,8,9)
</if>
<if test="type==2">
and status=2
<if test="startTime!=null and startTime!=''">
and date_format(serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime!=null and endTime!=''">
and date_format(serve_time,'%Y-%m-%d') &lt;= date_format(#{endTime},'%Y-%m-%d')
</if>
</if>
<if test="type==3">
and status in (3,5)
<if test="startTime!=null and startTime!=''">
and date_format(serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime!=null and endTime!=''">
and date_format(serve_time,'%Y-%m-%d') &lt;= date_format(#{endTime},'%Y-%m-%d')
</if>
</if>
<if test="type==4">
and status in (2,3,4,5,6,7,8)
<if test="startTime!=null and startTime!=''">
and date_format(serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime!=null and endTime!=''">
and date_format(serve_time,'%Y-%m-%d') &lt;= date_format(#{endTime},'%Y-%m-%d')
</if>
</if>
<if test="type==5">
and date_format(serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and status=2
</if>
)
<if test="type==1">
and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status in (2,3,5,6,7,8,9)
</if>
<if test="type==2">
and o.status=2
<if test="startTime!=null and startTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime!=null and endTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') &lt;= date_format(#{endTime},'%Y-%m-%d')
</if>
</if>
<if test="type==3">
and o.status in (3,5)
<if test="startTime!=null and startTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime!=null and endTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') &lt;= date_format(#{endTime},'%Y-%m-%d')
</if>
</if>
<if test="type==4">
and o.status in (2,3,4,5,6,7,8)
<if test="startTime!=null and startTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') >= date_format(#{startTime},'%Y-%m-%d')
</if>
<if test="endTime!=null and endTime!=''">
and date_format(o.serve_time,'%Y-%m-%d') &lt;= date_format(#{endTime},'%Y-%m-%d')
</if>
</if>
<if test="type==5">
and date_format(o.serve_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') and o.status=2
</if>
order by serve_time desc
</select> </select>
<select id="selectArtificerOrder" resultType="com.sqx.modules.artificer.entity.Orders"> <select id="selectArtificerOrder" resultType="com.sqx.modules.artificer.entity.Orders">
@ -1075,6 +1240,12 @@
GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d') GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d')
</select> </select>
<select id="getParentOrders" resultType="com.sqx.modules.artificer.entity.Orders">
select o.*
from orders o
where parent_id = #{parentId}
</select>
</mapper> </mapper>