diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java index a18617f..9cb4701 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java @@ -96,22 +96,22 @@ public class UserMoneyServiceImpl extends ServiceImpl i // } //技师获得打赏 - UserEntity userEntity = userService.queryByUserId(userId); - updateMoney(1, artificerId, money.doubleValue()); - UserMoney userNowMoney2 = selectUserMoneyByUserId(artificerId); + UserEntity userEntity = userService.queryByUserId(artificer.getUserId()); + updateMoney(1, userEntity.getUserId(), money.doubleValue()); + UserMoney userNowMoney2 = selectUserMoneyByUserId(userEntity.getUserId()); UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(); userMoneyDetails2.setBalance(userNowMoney2.getMoney()); userMoneyDetails2.setClassify(8); userMoneyDetails2.setManipulateType(2); - userMoneyDetails2.setUserId(artificerId); + userMoneyDetails2.setUserId(userEntity.getUserId()); userMoneyDetails2.setTitle("用户钱包打赏"); userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”钱包打赏:"+money); userMoneyDetails2.setType(1); userMoneyDetails2.setState(2); userMoneyDetails2.setMoney(money); userMoneyDetails2.setCreateTime(sdf.format(new Date())); - userMoneyDetails.setBlRole(2); - userMoneyDetails.setBlFlag(1); + userMoneyDetails2.setBlRole(2); + userMoneyDetails2.setBlFlag(1); userMoneyDetailsDao.insert(userMoneyDetails2); return Result.success(); diff --git a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java index 0418827..78f24f0 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java @@ -220,19 +220,27 @@ public class AppArtificerController { return ordersService.updateOrders(orders); } - @Login @GetMapping("/selectOrdersList") @ApiOperation("查询订单列表") - public Result selectOrdersList(@RequestAttribute("userId") Long userId,Integer page,Integer limit,Integer status,String city, - String userName,String phone,Long artificerId,Long parentId,String startTime,String endTime, - Integer isAdd,String ordersNo,String artificerName, + public Result selectOrdersList(Long userId,Integer page,Integer limit,Integer status,String city, + String name,String phone,Long artificerId,Long parentId,String startTime, + String endTime,Integer isAdd,String ordersNo,String artificerName, String oneUserName,String oneArtificerUserName, - String startServeTime,String endServeTime,Integer overTimeOrders, - Long shopId,String shopName,Integer warning,String title,String classifyId, Long userPackageId){ - return ordersService.selectOrdersList(userId, page, limit, status, city, userName, phone, artificerId, - parentId, startTime, endTime, isAdd, ordersNo, artificerName, oneUserName, oneArtificerUserName, - startServeTime, endServeTime,overTimeOrders,shopId,shopName,warning,title,classifyId, userPackageId); + String startServeTime,String endServeTime,Integer overTimeOrders,Long shopId, + String shopName,Integer warning,String title,String classifyId, Long userPackageId){ + return ordersService.selectOrdersList(userId, page, limit, status, city, name, phone, + artificerId, parentId, startTime, endTime, isAdd, ordersNo, artificerName, + 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 diff --git a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java index ee58164..2f7dbd7 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java @@ -26,7 +26,9 @@ public interface OrdersDao extends BaseMapper { @Param("endTime") String endTime,@Param("isAdd") Integer isAdd,String ordersNo,String artificerName, String oneUserName,String oneArtificerUserName, 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 selectAppOrdersList(Page page,@Param("userId") Long userId,@Param("status") Integer status,@Param("userPackageId") Long userPackageId); List excelOrdersList(@Param("userId") Long userId,@Param("status") Integer status, @Param("city") String city,@Param("userName") String userName,@Param("phone") String phone, @@ -52,7 +54,7 @@ public interface OrdersDao extends BaseMapper { int selectCountOrderByUserId(Long userId,Integer status,String time); - IPage selectTodayOrder(Page pages,@Param("artificerId") Long artificerId,@Param("type") Integer type,@Param("startTime") String startTime,@Param("endTime") String endTime); + IPage selectTodayOrder(Page pages,@Param("artificerId") Long artificerId,@Param("type") Integer type,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("minutes") Integer minutes); IPage selectArtificerOrder(Page pages, Long userId, Integer status); @@ -132,4 +134,6 @@ public interface OrdersDao extends BaseMapper { List getDdczList(Long userId, String startTime, String endTime); List getZxscList(Long userId, String startTime, String endTime); + + List getParentOrders(Long parentId); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/entity/Orders.java b/src/main/java/com/sqx/modules/artificer/entity/Orders.java index 1487bbf..62e418b 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Orders.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Orders.java @@ -76,6 +76,18 @@ public class Orders implements Serializable { */ 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 oldArtificerMoney; /** * 技师完成服务承诺 多个按照逗号分割 @@ -408,12 +424,23 @@ public class Orders implements Serializable { */ private Integer oldMassageDuration; + /** + * 取消描述 + */ + private String cancelRemark; + + /** + * 用户钱包支付技师提成百分比 + */ + private BigDecimal walletRate; /** * 项目名称 */ private String entryName; @TableField(exist = false) private List ordersMassageList; + @TableField(exist = false) + private List oldOrdersMassageList; @TableField(exist = false) private Artificer artificer; @@ -489,5 +516,8 @@ public class Orders implements Serializable { @TableField(exist = false) private List couponUserList; + @TableField(exist = false) + private Integer isCanSupplement; + public Orders() {} } diff --git a/src/main/java/com/sqx/modules/artificer/service/OrdersService.java b/src/main/java/com/sqx/modules/artificer/service/OrdersService.java index 7ab1119..8b504c4 100644 --- a/src/main/java/com/sqx/modules/artificer/service/OrdersService.java +++ b/src/main/java/com/sqx/modules/artificer/service/OrdersService.java @@ -35,6 +35,8 @@ public interface OrdersService extends IService { String startServeTime,String endServeTime,Integer overTimeOrders,Long shopId, 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, String name,String phone,Long artificerId,Long parentId,String startTime, String endTime,Integer isAdd,String ordersNo,String artificerName, diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java index 1f817e2..52ef0f2 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java @@ -365,6 +365,19 @@ public class OrdersServiceImpl extends ServiceImpl implements if (orders.getParentId() != null && orders.getParentId() != 0) { orders.setAddTime(massageType.getDuration()); + List 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()); } @@ -1014,8 +1027,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setArtificerRate(artificer.getRate()); orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); orders.setIsSupplement(1); - orders.setOldMassageMoney(oldOrders.getMassageMoney()); - orders.setOldOrdersId(oldOrders.getOrdersId()); + orders.setTechnicianType(artificer.getTechnicianType()); orders.setVipRate(oldOrders.getVipRate()); orders.setMassagePrice(oldOrders.getMassagePrice()); @@ -1024,6 +1036,17 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setPrice(oldOrders.getPrice()); orders.setCouponMoney(oldOrders.getCouponMoney()); 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); ordersMassageService.removeByOrdersId(orders.getOrdersId()); @@ -1121,12 +1144,13 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setEndTime(oldOrders.getEndTime()); orders.setStartImg(oldOrders.getStartImg()); orders.setOldOrdersId(oldOrders.getOrdersId()); - orders.setOldMassageMoney(oldOrders.getMassageMoney()); + 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()); //获取用户VIP的优惠信息 BigDecimal vipRate = new BigDecimal(100); @@ -1693,6 +1717,9 @@ public class OrdersServiceImpl extends ServiceImpl implements massageTypeId = ordersMassageList.get(0).getMassageId(); massageType = massageTypeService.getById(massageTypeId); for (OrdersMassage ordersMassage : ordersMassageList) { + orders.setMassagePrice(massageType.getPrice()); + orders.setDuration(massageType.getDuration()); + orders.setMassageNum(ordersMassage.getNum()); price = massageType.getPrice().multiply(BigDecimal.valueOf(ordersMassage.getNum())); } orders.setMassageTypeId(massageTypeId); @@ -1918,8 +1945,13 @@ public class OrdersServiceImpl extends ServiceImpl implements } orders.setCreateTime(DateUtils.format(new Date())); orders.setSumMoney(orders.getPayMoney().setScale(2, BigDecimal.ROUND_HALF_UP)); - orders.setOldMassageMoney(oldOrders.getMassageMoney()); 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.setCouponMoney(oldOrders.getCouponMoney()); //保存订单 @@ -1977,6 +2009,36 @@ public class OrdersServiceImpl extends ServiceImpl implements 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("项目加钟之后,无法取消!"); + } + } + 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()); @@ -2053,6 +2115,9 @@ public class OrdersServiceImpl extends ServiceImpl implements }else{ massageMoneyDeduction = massageDeduction; } + 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){ @@ -2060,32 +2125,42 @@ public class OrdersServiceImpl extends ServiceImpl implements }else{ taxiMoneyDeduction = trafficDeduction; } + if(orders.getTaxiMoney().compareTo(taxiMoneyDeduction) < 0){ + taxiMoneyDeduction = orders.getTaxiMoney(); + } + //项目总扣款数 BigDecimal rate = massageMoneyDeduction; //退款金额 BigDecimal userMoney = orders.getPayMoney().subtract(rate).subtract(taxiMoneyDeduction); - + if(userMoney.compareTo(BigDecimal.ZERO) < 0 ){ + userMoney = BigDecimal.ZERO; + } UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); if (orders.getPayWay() == 1 || orders.getPayWay() == 2 || orders.getPayWay() == 3 || orders.getPayWay() == 4) { - boolean refund = wxService.refund(orders.getOrdersNo(), orders.getPayMoney(), userMoney, orders.getPayWay()); - if (!refund) { - return Result.error("退款失败,请联系客服!"); + if(userMoney.compareTo(BigDecimal.ZERO) > 0){ + boolean refund = wxService.refund(orders.getOrdersNo(), orders.getPayMoney(), userMoney, orders.getPayWay()); + if (!refund) { + return Result.error("退款失败,请联系客服!"); + } } userMoneyDetails.setManipulateType(1); userMoneyDetails.setBlFlag(2); } else if (orders.getPayWay() == 6) { - String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney); - if (StringUtils.isNotBlank(data)) { - log.error(data); - JSONObject jsonObject = JSON.parseObject(data); - JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); - String code1 = alipay_trade_refund_response.getString("code"); - if (!"10000".equals(code1)) { - return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); + if(userMoney.compareTo(BigDecimal.ZERO) > 0) { + String data = aliPayController.alipayRefund(orders.getOrdersNo(), userMoney); + if (StringUtils.isNotBlank(data)) { + log.error(data); + JSONObject jsonObject = JSON.parseObject(data); + JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); + String code1 = alipay_trade_refund_response.getString("code"); + if (!"10000".equals(code1)) { + return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); + } + } else { + return Result.error("退款失败!"); } - } else { - return Result.error("退款失败!"); } userMoneyDetails.setManipulateType(1); userMoneyDetails.setBlFlag(2); @@ -2095,7 +2170,9 @@ public class OrdersServiceImpl extends ServiceImpl implements // // userMoneyArtificerService.updateMoney(1, orders.getUserId(), orders.getArtificerId(), userMoney.doubleValue()); // } else { - userMoneyService.updateMoney(1, orders.getUserId(), userMoney.doubleValue()); + if(userMoney.compareTo(BigDecimal.ZERO) > 0) { + userMoneyService.updateMoney(1, orders.getUserId(), userMoney.doubleValue()); + } // } //查询用户当前余额 UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(orders.getUserId()); @@ -2117,259 +2194,261 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setBlRole(1); userMoneyDetailsService.save(userMoneyDetails); - //按照比例 将扣除的钱进行分佣 - BigDecimal taxiMoney = taxiMoneyDeduction; - BigDecimal sumMoney = rate.add(taxiMoneyDeduction);//总扣费 - Artificer artificer = artificerService.getById(orders.getArtificerId()); - BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 - BigDecimal pingTaxiMoney = BigDecimal.ZERO; - BigDecimal artificerMoney = rate.multiply(artificer.getRate()); //技师获得扣款提成 + if(orders.getSumArtificerMoney().compareTo(BigDecimal.ZERO) > 0){ - String taxi = commonInfoService.findOne(394).getValue(); - if ("是".equals(taxi)) { - artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); - } + //按照比例 将扣除的钱进行分佣 + BigDecimal taxiMoney = taxiMoneyDeduction; + BigDecimal sumMoney = rate.add(taxiMoneyDeduction);//总扣费 + Artificer artificer = artificerService.getById(orders.getArtificerId()); + BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 + BigDecimal pingTaxiMoney = BigDecimal.ZERO; + BigDecimal artificerMoney = rate.multiply(artificer.getRate()); //技师获得扣款提成 - UserEntity user = userService.selectUserById(orders.getUserId()); + String taxi = commonInfoService.findOne(394).getValue(); + if ("是".equals(taxi)) { + artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); + pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); + } - UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); + UserEntity user = userService.selectUserById(orders.getUserId()); - BigDecimal oneUserMoney = BigDecimal.ZERO; - if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { - orders.setOneUserId(oneUser.getUserId()); - orders.setOneUserName(oneUser.getUserName()); - oneUserMoney = rate.multiply(oneUser.getUserRate()); - } + UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); - UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); + BigDecimal oneUserMoney = BigDecimal.ZERO; + if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1) { + orders.setOneUserId(oneUser.getUserId()); + orders.setOneUserName(oneUser.getUserName()); + oneUserMoney = rate.multiply(oneUser.getUserRate()); + } - UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); + UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); - BigDecimal oneArtificerMoney = BigDecimal.ZERO; - if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { - orders.setOneArtificerUserId(oneArtificerUser.getUserId()); - orders.setOneArtificerUserName(oneArtificerUser.getUserName()); - oneArtificerMoney = rate.multiply(oneArtificerUser.getShopRate()); - } + UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); - 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) { - shopMoney = rate.multiply(consortia.getRate()); + BigDecimal oneArtificerMoney = BigDecimal.ZERO; + if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1) { + orders.setOneArtificerUserId(oneArtificerUser.getUserId()); + orders.setOneArtificerUserName(oneArtificerUser.getUserName()); + oneArtificerMoney = rate.multiply(oneArtificerUser.getShopRate()); + } + + 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) { + shopMoney = rate.multiply(consortia.getRate()); + } } } - } - rate = rate.subtract(artificerMoney); - rate = rate.subtract(oneUserMoney); - rate = rate.subtract(shopMoney); - rate = rate.subtract(oneArtificerMoney).setScale(2, BigDecimal.ROUND_DOWN); - orders.setShopMoney(shopMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setArtificerMoney(artificerMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setSumArtificerMoney(artificerMoney.add(artificerTaxiMoney).setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneUserMoney(oneUserMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneArtificerMoney(oneArtificerMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingMoney(rate.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - //分账 - userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney1 = userMoneyService.selectUserMoneyByUserId(artificerUser.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney1.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getSumArtificerMoney()); - userMoneyDetails.setUserId(artificerUser.getUserId()); - userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); - String value = commonInfoService.findOne(394).getValue(); - if ("是".equals(value)) { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } - } else { - if (orders.getShopUserId() != null) { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } else { - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - } - } - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(2); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - - if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1 && orders.getOneUserMoney().compareTo(BigDecimal.ZERO) !=0) { - userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); + rate = rate.subtract(artificerMoney); + rate = rate.subtract(oneUserMoney); + rate = rate.subtract(shopMoney); + rate = rate.subtract(oneArtificerMoney).setScale(2, BigDecimal.ROUND_DOWN); + orders.setShopMoney(shopMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setArtificerMoney(artificerMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setSumArtificerMoney(artificerMoney.add(artificerTaxiMoney).setScale(2, BigDecimal.ROUND_DOWN)); + orders.setOneUserMoney(oneUserMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setOneArtificerMoney(oneArtificerMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setPingMoney(rate.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); + //分账 + userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyDetails = new UserMoneyDetails(); //查询用户当前余额 - UserMoney userNowMoney3 = userMoneyService.selectUserMoneyByUserId(oneUser.getUserId()); + UserMoney userNowMoney1 = userMoneyService.selectUserMoneyByUserId(artificerUser.getUserId()); //插入余额 - userMoneyDetails.setBalance(userNowMoney3.getMoney()); + userMoneyDetails.setBalance(userNowMoney1.getMoney()); //插入操作类型为已操作用户余额 userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneUserMoney()); - userMoneyDetails.setUserId(oneUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setTitle("推广用户收益"); + userMoneyDetails.setMoney(orders.getSumArtificerMoney()); + userMoneyDetails.setUserId(artificerUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + String value = commonInfoService.findOne(394).getValue(); + if ("是".equals(value)) { + if (orders.getShopUserId() != null) { + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); + } else { + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); + } + } else { + if (orders.getShopUserId() != null) { + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); + } else { + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); + } + } userMoneyDetails.setType(1); userMoneyDetails.setState(2); - userMoneyDetails.setClassify(5); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(1); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - - orders.setOneUserId(oneUser.getUserId()); - orders.setOneUserName(oneUser.getUserName()); - } - - - if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1 && orders.getOneArtificerMoney().compareTo(BigDecimal.ZERO)!=0) { - userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney4 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney4.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getOneArtificerMoney()); - userMoneyDetails.setUserId(oneArtificerUser.getUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setTitle("推广师傅收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(6); userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); userMoneyDetails.setBlRole(2); userMoneyDetails.setBlFlag(1); userMoneyDetailsService.save(userMoneyDetails); - orders.setOneArtificerUserId(oneArtificerUser.getUserId()); - orders.setOneArtificerUserName(oneArtificerUser.getUserName()); - } - - if (orders.getShopUserId() != null && orders.getShopMoney().compareTo(BigDecimal.ZERO)!=0) { - userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney5 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney5.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getShopMoney()); - userMoneyDetails.setUserId(orders.getShopUserId()); - userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setTitle("商家收益"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setClassify(7); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(3); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - } - - - List ordersList = baseMapper.selectList(new QueryWrapper().isNotNull("pay_way").eq("parent_id", orders.getOrdersId())); - for (Orders orders1 : ordersList) { - userMoneyDetails = new UserMoneyDetails(); - if (orders1.getPayWay() == 1 || orders1.getPayWay() == 2 || orders1.getPayWay() == 3 || orders1.getPayWay() == 4) { - boolean refund = wxService.refund(orders1.getOrdersNo(), orders1.getPayMoney(), orders1.getPayMoney(), orders1.getPayWay()); - if (!refund) { - return Result.error("退款失败,请联系客服!"); - } - userMoneyDetails.setManipulateType(1); - userMoneyDetails.setBlFlag(2); - } else if (orders1.getPayWay() == 6) { - String data = aliPayController.alipayRefund(orders1.getOrdersNo(), orders1.getPayMoney()); - if (StringUtils.isNotBlank(data)) { - log.error(data); - JSONObject jsonObject = JSON.parseObject(data); - JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); - String code1 = alipay_trade_refund_response.getString("code"); - if (!"10000".equals(code1)) { - return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); - } - } else { - return Result.error("退款失败!"); - } - userMoneyDetails.setManipulateType(1); - userMoneyDetails.setBlFlag(2); - } else { -// if (orders1.getUserArtificerMoney() != null && orders1.getUserArtificerMoney() == 1) { -// userMoneyArtificerService.updateMoney(1, orders1.getUserId(), orders1.getArtificerId(), orders1.getPayMoney().doubleValue()); -// } else { - userMoneyService.updateMoney(1, orders1.getUserId(), orders1.getPayMoney().doubleValue()); -// } + if (oneUser != null && oneUser.getIsAgency() != null && oneUser.getIsAgency() == 1 && orders.getOneUserMoney().compareTo(BigDecimal.ZERO) !=0) { + userMoneyService.updateMoney(1, oneUser.getUserId(), orders.getOneUserMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); //查询用户当前余额 - UserMoney userNowMoney6 = userMoneyService.selectUserMoneyByUserId(orders1.getUserId()); + UserMoney userNowMoney3 = userMoneyService.selectUserMoneyByUserId(oneUser.getUserId()); //插入余额 - userMoneyDetails.setBalance(userNowMoney6.getMoney()); + userMoneyDetails.setBalance(userNowMoney3.getMoney()); //插入操作类型为已操作用户余额 userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneUserMoney()); + userMoneyDetails.setUserId(oneUser.getUserId()); + userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setTitle("推广用户收益"); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(5); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(1); userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + + orders.setOneUserId(oneUser.getUserId()); + orders.setOneUserName(oneUser.getUserName()); } - userMoneyDetails.setMoney(orders1.getPayMoney()); - userMoneyDetails.setUserId(orders1.getUserId()); - userMoneyDetails.setContent("订单号:" + orders1.getOrdersNo() + ",已原路退款!"); - userMoneyDetails.setTitle("订单退款"); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setCreateTime(time); - userMoneyDetails.setArtificerId(orders.getArtificerId()); - userMoneyDetails.setBlRole(1); - userMoneyDetailsService.save(userMoneyDetails); - orders1.setStatus(4); - baseMapper.updateById(orders1); - } - orders.setStatus(4); - Artificer artificer2 = artificerService.getById(orders.getArtificerId()); - if (userId != null && artificer2.getUserId().equals(userId)) { - BigDecimal newCreditScore = BigDecimal.ZERO; - MessageInfo messageInfo = new MessageInfo(); - messageInfo.setState("8"); - messageInfo.setUserId(String.valueOf(artificer2.getUserId())); - messageInfo.setTitle("取消订单:" + orders.getOrdersNo()); - String value1 = commonInfoService.findOne(384).getValue(); - BigDecimal creditScore = new BigDecimal(value1); - newCreditScore = artificer2.getCreditScore().subtract(creditScore); - messageInfo.setContent("扣除信誉分:" + creditScore); - artificer2.setCreditScore(newCreditScore); - String value2 = commonInfoService.findOne(385).getValue(); - BigDecimal minScore = new BigDecimal(value2); - if (artificer2.getCreditScore().doubleValue() < minScore.doubleValue()) { - artificer2.setStatus(2); + if (oneArtificerUser != null && oneArtificerUser.getIsAgency() != null && oneArtificerUser.getIsAgency() == 1 && orders.getOneArtificerMoney().compareTo(BigDecimal.ZERO)!=0) { + userMoneyService.updateMoney(1, oneArtificerUser.getUserId(), orders.getOneArtificerMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney4 = userMoneyService.selectUserMoneyByUserId(oneArtificerUser.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney4.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getOneArtificerMoney()); + userMoneyDetails.setUserId(oneArtificerUser.getUserId()); + userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setTitle("推广师傅收益"); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(6); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + + orders.setOneArtificerUserId(oneArtificerUser.getUserId()); + orders.setOneArtificerUserName(oneArtificerUser.getUserName()); } - artificerService.updateById(artificer2); - messageService.saveBody(messageInfo); - } + if (orders.getShopUserId() != null && orders.getShopMoney().compareTo(BigDecimal.ZERO)!=0) { + userMoneyService.updateMoney(1, orders.getShopUserId(), orders.getShopMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney5 = userMoneyService.selectUserMoneyByUserId(orders.getShopUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney5.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getShopMoney()); + userMoneyDetails.setUserId(orders.getShopUserId()); + userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setTitle("商家收益"); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setClassify(7); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(3); + userMoneyDetails.setBlFlag(1); + userMoneyDetailsService.save(userMoneyDetails); + } + + + List ordersList = baseMapper.selectList(new QueryWrapper().isNotNull("pay_way").eq("parent_id", orders.getOrdersId())); + for (Orders orders1 : ordersList) { + userMoneyDetails = new UserMoneyDetails(); + if (orders1.getPayWay() == 1 || orders1.getPayWay() == 2 || orders1.getPayWay() == 3 || orders1.getPayWay() == 4) { + boolean refund = wxService.refund(orders1.getOrdersNo(), orders1.getPayMoney(), orders1.getPayMoney(), orders1.getPayWay()); + if (!refund) { + return Result.error("退款失败,请联系客服!"); + } + userMoneyDetails.setManipulateType(1); + userMoneyDetails.setBlFlag(2); + } else if (orders1.getPayWay() == 6) { + String data = aliPayController.alipayRefund(orders1.getOrdersNo(), orders1.getPayMoney()); + if (StringUtils.isNotBlank(data)) { + log.error(data); + JSONObject jsonObject = JSON.parseObject(data); + JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); + String code1 = alipay_trade_refund_response.getString("code"); + if (!"10000".equals(code1)) { + return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); + } + } else { + return Result.error("退款失败!"); + } + userMoneyDetails.setManipulateType(1); + userMoneyDetails.setBlFlag(2); + } else { + // if (orders1.getUserArtificerMoney() != null && orders1.getUserArtificerMoney() == 1) { + // userMoneyArtificerService.updateMoney(1, orders1.getUserId(), orders1.getArtificerId(), orders1.getPayMoney().doubleValue()); + // } else { + userMoneyService.updateMoney(1, orders1.getUserId(), orders1.getPayMoney().doubleValue()); + // } + //查询用户当前余额 + UserMoney userNowMoney6 = userMoneyService.selectUserMoneyByUserId(orders1.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney6.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setBlFlag(1); + } + + userMoneyDetails.setMoney(orders1.getPayMoney()); + userMoneyDetails.setUserId(orders1.getUserId()); + userMoneyDetails.setContent("订单号:" + orders1.getOrdersNo() + ",已原路退款!"); + userMoneyDetails.setTitle("订单退款"); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setCreateTime(time); + userMoneyDetails.setArtificerId(orders.getArtificerId()); + userMoneyDetails.setBlRole(1); + userMoneyDetailsService.save(userMoneyDetails); + orders1.setStatus(4); + baseMapper.updateById(orders1); + } + orders.setStatus(4); + + Artificer artificer2 = artificerService.getById(orders.getArtificerId()); + if (userId != null && artificer2.getUserId().equals(userId)) { + BigDecimal newCreditScore = BigDecimal.ZERO; + MessageInfo messageInfo = new MessageInfo(); + messageInfo.setState("8"); + messageInfo.setUserId(String.valueOf(artificer2.getUserId())); + messageInfo.setTitle("取消订单:" + orders.getOrdersNo()); + String value1 = commonInfoService.findOne(384).getValue(); + BigDecimal creditScore = new BigDecimal(value1); + newCreditScore = artificer2.getCreditScore().subtract(creditScore); + messageInfo.setContent("扣除信誉分:" + creditScore); + artificer2.setCreditScore(newCreditScore); + String value2 = commonInfoService.findOne(385).getValue(); + BigDecimal minScore = new BigDecimal(value2); + if (artificer2.getCreditScore().doubleValue() < minScore.doubleValue()) { + artificer2.setStatus(2); + } + artificerService.updateById(artificer2); + messageService.saveBody(messageInfo); + } + } UserEntity userEntity = userService.selectUserById(orders.getUserId()); @@ -2493,125 +2572,127 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetails.setBlRole(1); userMoneyDetailsService.save(userMoneyDetails); - //按照比例 将扣除的钱进行分佣 - BigDecimal taxiMoney = taxiMoneyDeduction; - BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 - Artificer artificer = artificerService.getById(orders.getArtificerId()); - BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 - BigDecimal pingTaxiMoney = BigDecimal.ZERO; + if(orders.getSumArtificerMoney().compareTo(BigDecimal.ZERO)>0){ - String taxi = commonInfoService.findOne(394).getValue(); - if ("是".equals(taxi)) { - artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); - pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); - } + //按照比例 将扣除的钱进行分佣 + BigDecimal taxiMoney = taxiMoneyDeduction; + BigDecimal sumMoney = taxiMoneyDeduction;//总扣费 + Artificer artificer = artificerService.getById(orders.getArtificerId()); + BigDecimal artificerTaxiMoney = taxiMoneyDeduction;//扣车费 + BigDecimal pingTaxiMoney = BigDecimal.ZERO; - orders.setShopMoney(BigDecimal.ZERO); - orders.setArtificerMoney(BigDecimal.ZERO); - orders.setSumArtificerMoney(sumMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setOneUserMoney(BigDecimal.ZERO); - orders.setOneArtificerMoney(BigDecimal.ZERO); - orders.setPingMoney(BigDecimal.ZERO); - orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - - UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); - userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); - userMoneyDetails = new UserMoneyDetails(); - //查询用户当前余额 - UserMoney userNowMoney1 = userMoneyService.selectUserMoneyByUserId(artificerUser.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney1.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setMoney(orders.getSumArtificerMoney()); - userMoneyDetails.setUserId(artificerUser.getUserId()); - userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); - userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + - ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + - ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + - ",到账总金额:" + orders.getSumArtificerMoney()); - userMoneyDetails.setType(1); - userMoneyDetails.setState(2); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setBlRole(2); - userMoneyDetails.setBlFlag(1); - userMoneyDetailsService.save(userMoneyDetails); - - - List ordersList = baseMapper.selectList(new QueryWrapper().isNotNull("pay_way").eq("parent_id", orders.getOrdersId())); - for (Orders orders1 : ordersList) { - userMoneyDetails = new UserMoneyDetails(); - if (orders1.getPayWay() == 1 || orders1.getPayWay() == 2 || orders1.getPayWay() == 3 || orders1.getPayWay() == 4) { - boolean refund = wxService.refund(orders1.getOrdersNo(), orders1.getPayMoney(), orders1.getPayMoney(), orders1.getPayWay()); - if (!refund) { - return Result.error("退款失败,请联系客服!"); - } - userMoneyDetails.setManipulateType(1); - userMoneyDetails.setBlFlag(2); - } else if (orders1.getPayWay() == 6) { - String data = aliPayController.alipayRefund(orders1.getOrdersNo(), orders1.getPayMoney()); - if (StringUtils.isNotBlank(data)) { - log.error(data); - JSONObject jsonObject = JSON.parseObject(data); - JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); - String code1 = alipay_trade_refund_response.getString("code"); - if (!"10000".equals(code1)) { - return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); - } - } else { - return Result.error("退款失败!"); - } - userMoneyDetails.setManipulateType(1); - userMoneyDetails.setBlFlag(2); - } else { - userMoneyService.updateMoney(1, orders1.getUserId(), orders1.getPayMoney().doubleValue()); - //查询用户当前余额 - UserMoney userNowMoney6 = userMoneyService.selectUserMoneyByUserId(orders1.getUserId()); - //插入余额 - userMoneyDetails.setBalance(userNowMoney6.getMoney()); - //插入操作类型为已操作用户余额 - userMoneyDetails.setManipulateType(2); - userMoneyDetails.setBlFlag(1); + String taxi = commonInfoService.findOne(394).getValue(); + if ("是".equals(taxi)) { + artificerTaxiMoney = taxiMoney.multiply(artificer.getRate()); + pingTaxiMoney = taxiMoney.subtract(artificerTaxiMoney); } + orders.setShopMoney(BigDecimal.ZERO); + orders.setArtificerMoney(BigDecimal.ZERO); + orders.setSumArtificerMoney(sumMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setOneUserMoney(BigDecimal.ZERO); + orders.setOneArtificerMoney(BigDecimal.ZERO); + orders.setPingMoney(BigDecimal.ZERO); + orders.setArtificerTaxiMoney(artificerTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); + orders.setPingTaxiMoney(pingTaxiMoney.setScale(2, BigDecimal.ROUND_DOWN)); - userMoneyDetails.setMoney(orders1.getPayMoney()); - userMoneyDetails.setUserId(orders1.getUserId()); - userMoneyDetails.setContent("订单号:" + orders1.getOrdersNo() + ",已原路退款!"); - userMoneyDetails.setTitle("订单退款"); + UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); + userMoneyService.updateMoney(1, artificerUser.getUserId(), orders.getSumArtificerMoney().doubleValue()); + userMoneyDetails = new UserMoneyDetails(); + //查询用户当前余额 + UserMoney userNowMoney1 = userMoneyService.selectUserMoneyByUserId(artificerUser.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney1.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setMoney(orders.getSumArtificerMoney()); + userMoneyDetails.setUserId(artificerUser.getUserId()); + userMoneyDetails.setTitle("订单号:" + orders.getOrdersNo() + ",订单取消!"); + userMoneyDetails.setContent("用户取消订单,总扣除:" + sumMoney + ",平台扣除:" + orders.getPingMoney() + + ",商家扣除:" + orders.getShopMoney() + ",用户代理扣除:" + orders.getOneUserMoney() + ",技师代理扣除:" + orders.getOneArtificerMoney() + + ",打车费:" + orders.getTaxiMoney() + ",平台扣除打车费:" + orders.getPingTaxiMoney() + ",到账打车费:" + orders.getArtificerTaxiMoney() + + ",到账总金额:" + orders.getSumArtificerMoney()); userMoneyDetails.setType(1); userMoneyDetails.setState(2); - userMoneyDetails.setCreateTime(time); - userMoneyDetails.setArtificerId(orders.getArtificerId()); - userMoneyDetails.setBlRole(1); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setBlRole(2); + userMoneyDetails.setBlFlag(1); userMoneyDetailsService.save(userMoneyDetails); - orders1.setStatus(4); - baseMapper.updateById(orders1); - } - orders.setStatus(4); - Artificer artificer2 = artificerService.getById(orders.getArtificerId()); - if (userId != null && artificer2.getUserId().equals(userId)) { - BigDecimal newCreditScore = BigDecimal.ZERO; - MessageInfo messageInfo = new MessageInfo(); - messageInfo.setState("8"); - messageInfo.setUserId(String.valueOf(artificer2.getUserId())); - messageInfo.setTitle("取消订单:" + orders.getOrdersNo()); - String value1 = commonInfoService.findOne(384).getValue(); - BigDecimal creditScore = new BigDecimal(value1); - newCreditScore = artificer2.getCreditScore().subtract(creditScore); - messageInfo.setContent("扣除信誉分:" + creditScore); - artificer2.setCreditScore(newCreditScore); - String value2 = commonInfoService.findOne(385).getValue(); - BigDecimal minScore = new BigDecimal(value2); - if (artificer2.getCreditScore().doubleValue() < minScore.doubleValue()) { - artificer2.setStatus(2); + + List ordersList = baseMapper.selectList(new QueryWrapper().isNotNull("pay_way").eq("parent_id", orders.getOrdersId())); + for (Orders orders1 : ordersList) { + userMoneyDetails = new UserMoneyDetails(); + if (orders1.getPayWay() == 1 || orders1.getPayWay() == 2 || orders1.getPayWay() == 3 || orders1.getPayWay() == 4) { + boolean refund = wxService.refund(orders1.getOrdersNo(), orders1.getPayMoney(), orders1.getPayMoney(), orders1.getPayWay()); + if (!refund) { + return Result.error("退款失败,请联系客服!"); + } + userMoneyDetails.setManipulateType(1); + userMoneyDetails.setBlFlag(2); + } else if (orders1.getPayWay() == 6) { + String data = aliPayController.alipayRefund(orders1.getOrdersNo(), orders1.getPayMoney()); + if (StringUtils.isNotBlank(data)) { + log.error(data); + JSONObject jsonObject = JSON.parseObject(data); + JSONObject alipay_trade_refund_response = jsonObject.getJSONObject("alipay_trade_refund_response"); + String code1 = alipay_trade_refund_response.getString("code"); + if (!"10000".equals(code1)) { + return Result.error("退款失败!" + alipay_trade_refund_response.getString("sub_msg")); + } + } else { + return Result.error("退款失败!"); + } + userMoneyDetails.setManipulateType(1); + userMoneyDetails.setBlFlag(2); + } else { + userMoneyService.updateMoney(1, orders1.getUserId(), orders1.getPayMoney().doubleValue()); + //查询用户当前余额 + UserMoney userNowMoney6 = userMoneyService.selectUserMoneyByUserId(orders1.getUserId()); + //插入余额 + userMoneyDetails.setBalance(userNowMoney6.getMoney()); + //插入操作类型为已操作用户余额 + userMoneyDetails.setManipulateType(2); + userMoneyDetails.setBlFlag(1); + } + + + userMoneyDetails.setMoney(orders1.getPayMoney()); + userMoneyDetails.setUserId(orders1.getUserId()); + userMoneyDetails.setContent("订单号:" + orders1.getOrdersNo() + ",已原路退款!"); + userMoneyDetails.setTitle("订单退款"); + userMoneyDetails.setType(1); + userMoneyDetails.setState(2); + userMoneyDetails.setCreateTime(time); + userMoneyDetails.setArtificerId(orders.getArtificerId()); + userMoneyDetails.setBlRole(1); + userMoneyDetailsService.save(userMoneyDetails); + orders1.setStatus(4); + baseMapper.updateById(orders1); } - artificerService.updateById(artificer2); - messageService.saveBody(messageInfo); - } + orders.setStatus(4); + Artificer artificer2 = artificerService.getById(orders.getArtificerId()); + if (userId != null && artificer2.getUserId().equals(userId)) { + BigDecimal newCreditScore = BigDecimal.ZERO; + MessageInfo messageInfo = new MessageInfo(); + messageInfo.setState("8"); + messageInfo.setUserId(String.valueOf(artificer2.getUserId())); + messageInfo.setTitle("取消订单:" + orders.getOrdersNo()); + String value1 = commonInfoService.findOne(384).getValue(); + BigDecimal creditScore = new BigDecimal(value1); + newCreditScore = artificer2.getCreditScore().subtract(creditScore); + messageInfo.setContent("扣除信誉分:" + creditScore); + artificer2.setCreditScore(newCreditScore); + String value2 = commonInfoService.findOne(385).getValue(); + BigDecimal minScore = new BigDecimal(value2); + if (artificer2.getCreditScore().doubleValue() < minScore.doubleValue()) { + artificer2.setStatus(2); + } + artificerService.updateById(artificer2); + messageService.saveBody(messageInfo); + } + } UserEntity userEntity = userService.selectUserById(orders.getUserId()); @@ -2798,9 +2879,17 @@ public class OrdersServiceImpl extends ServiceImpl implements data.put("time14", new TemplateMessageItem(DateUtils.format(new Date()), "#d71345")); userService.sendWxMessage(apkey, data, userEntity.getWxOpenId()); } - } 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 sumMoney = orders.getTaxiMoney();//总扣费 @@ -2854,9 +2943,13 @@ public class OrdersServiceImpl extends ServiceImpl implements baseMapper.updateById(orders); cancelSupplementOrders(userId, orders.getOldOrdersId(), isAuto, 1);//退原单,原单的车费已被退/扣,所以只退项目 }else{ + BigDecimal taxiMoney = orders.getTaxiMoney(); + BigDecimal artificerMoney = orders.getArtificerMoney().subtract(taxiMoney); orders.setRefusalContent(""); orders.setTaxiMoney(BigDecimal.ZERO); orders.setStatus(10); + orders.setArtificerMoney(artificerMoney); + orders.setSumArtificerMoney(artificerMoney); baseMapper.updateById(orders); } } @@ -3632,12 +3725,27 @@ public class OrdersServiceImpl extends ServiceImpl implements @Override public Result selectOrdersDetails(Long ordersId) { + Integer minutes = Integer.valueOf(commonInfoService.findOne(452).getValue()); 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 ordersMassageList = ordersMassageService.list(new QueryWrapper().eq("orders_id", ordersId)); for (OrdersMassage ordersMassage : ordersMassageList) { ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId())); } orders.setOrdersMassageList(ordersMassageList); + List oldOrdersMassageList = ordersMassageService.list(new QueryWrapper().eq("orders_id", orders.getOldOrdersId())); + for (OrdersMassage ordersMassage : oldOrdersMassageList) { + ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId())); + } + orders.setOldOrdersMassageList(oldOrdersMassageList); Artificer artificer = artificerService.getById(orders.getArtificerId()); if (artificer != null) { UserEntity userEntity = userService.selectUserById(artificer.getUserId()); @@ -3646,31 +3754,33 @@ public class OrdersServiceImpl extends ServiceImpl implements } 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){ - QueryWrapper ordersQueryWrapper = new QueryWrapper(); - ordersQueryWrapper.eq("parent_id",orders.getOrdersId()); - ordersQueryWrapper.ne("status",4); - Orders jzOrder = baseMapper.selectOne(ordersQueryWrapper); - orders.setJzName(jzOrder.getEntryName()); + orders.setPayMoneyTotal(orders.getPayMoneyTotal().add(orders.getAddMoney())); + orders.setArtificerMoneyTotal(orders.getArtificerMoneyTotal().add(orders.getAddArtificerMoney())); } //获取是否有改价订单 - if(orders.getIsSupplement()!=null){ + if(orders.getOldOrdersId()!=null){ QueryWrapper ordersQueryWrapper = new QueryWrapper(); - ordersQueryWrapper.eq("old_orders_id",orders.getOldOrdersId()); + ordersQueryWrapper.eq("orders_id",orders.getOldOrdersId()); ordersQueryWrapper.ne("status",4); - Orders jzOrder = baseMapper.selectOne(ordersQueryWrapper); - orders.setGjName(jzOrder.getEntryName()); - BigDecimal massageMoney = orders.getMassageMoney(); - BigDecimal payMoney = jzOrder.getPayMoney(); - if(massageMoney == null){ - massageMoney = BigDecimal.ZERO; + List list = baseMapper.selectList(ordersQueryWrapper); + if(list!=null && list.size()>0) { + for(Orders vo : list){ + BigDecimal payMoney = vo.getPayMoney(); + BigDecimal artificerMoney = vo.getArtificerMoney(); + 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); } @@ -3704,6 +3814,28 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.success().put("data", new PageUtils(ordersIPage)); } + @Override + public Result selectAppOrdersList(Long userId, Integer page, Integer limit, Integer status, Long userPackageId) { + Page pages = new Page<>(page, limit); + IPage ordersIPage = baseMapper.selectAppOrdersList(pages, userId, status, userPackageId); + List records = ordersIPage.getRecords(); + for (Orders orders : records) { + List ordersMassageList = ordersMassageService.list(new QueryWrapper().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 public ExcelData excelOrdersList(Long userId, Integer status, String city, String name, String phone, Long artificerId, Long parentId, String startTime, @@ -4000,13 +4132,16 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setStatus(9);//用户已支付技师待接单 } }else{ - orders.setStatus(9);//用户已支付技师待接单 + if(orders.getParentId()!=null && orders.getParentId()!=0){ + orders.setStatus(6); + }else{ + orders.setStatus(9);//用户已支付技师待接单 + } } orders.setPayWay(5); orders.setPayTime(simpleDateFormat.format(new Date())); BigDecimal pingMoney = orders.getPayMoney(); - UserEntity user = userService.selectUserById(orders.getUserId()); UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode()); BigDecimal oneUserMoney = BigDecimal.ZERO; @@ -4017,7 +4152,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } Artificer artificer = artificerService.getById(orders.getArtificerId()); - UserEntity artificerUser = userService.selectUserById(artificer.getUserId()); UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode()); BigDecimal oneArtificerMoney = BigDecimal.ZERO; @@ -4042,10 +4176,13 @@ public class OrdersServiceImpl extends ServiceImpl 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(); //计算技师出租车收益(按照技师表收益计算) @@ -4065,16 +4202,28 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setArtificerTaxiMoney(orders.getTaxiMoney()); //设置出租车扣款为0 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()); + //储值扣费 + valueStorageDeduction = artificerPrice.multiply(storageRate); //用户收益加上通行费用 - artificerPrice = artificerPrice.multiply(rate).add(taxiMoney); + if(orders.getIsSupplement()!=null && orders.getIsSupplement() == 2){ + artificerPrice = artificerPrice.multiply(rate); + }else{ + 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(oneUserMoney); @@ -4115,7 +4264,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders1.setAddArtificerMoney(orders.getArtificerMoney()); } 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(); oneUserMoney = BigDecimal.ZERO; @@ -4294,7 +4443,21 @@ public class OrdersServiceImpl extends ServiceImpl implements userMoneyDetailsService.save(userMoneyDetails); // } - orders.setStatus(9);//用户已支付技师待接单 + 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(5); orders.setPayTime(simpleDateFormat.format(new Date())); @@ -4331,6 +4494,46 @@ public class OrdersServiceImpl extends ServiceImpl 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(oneUserMoney); pingMoney = pingMoney.subtract(shopMoney); @@ -4788,6 +4991,7 @@ public class OrdersServiceImpl extends ServiceImpl implements //修改订单下所有加钟的状态为待评价 UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("parent_id", orders.getOrdersId()); + updateWrapper.notIn("status", "1,4"); Orders orders2 = new Orders(); orders2.setStatus(3); baseMapper.update(orders2,updateWrapper); @@ -5217,8 +5421,15 @@ public class OrdersServiceImpl extends ServiceImpl implements @Override 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 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); } @@ -5585,6 +5796,7 @@ public class OrdersServiceImpl extends ServiceImpl implements List ordersList = baseMapper.selectOrdersStatusByTime(value1); for (Orders orders : ordersList) { orders.setStatus(4); + orders.setCancelRemark("未支付-系统"); baseMapper.updateById(orders); artificerTimeService.remove(new QueryWrapper().eq("orders_id", orders.getOrdersId())); if (orders.getCouponId() != null && orders.getOldOrdersId()==null) { diff --git a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java index 8d1e9ae..faa8341 100644 --- a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java +++ b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageOrderServiceImpl.java @@ -251,7 +251,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpllambdaUpdate().eq(CouponUser::getId, couponUser.getId()).set(CouponUser::getStatus, 1)); } userPackageOrder.setCouponUserList(CouponUserList); diff --git a/src/main/java/com/sqx/modules/coupon/service/impl/CouponIssueServiceImpl.java b/src/main/java/com/sqx/modules/coupon/service/impl/CouponIssueServiceImpl.java index 6483e57..940c3de 100644 --- a/src/main/java/com/sqx/modules/coupon/service/impl/CouponIssueServiceImpl.java +++ b/src/main/java/com/sqx/modules/coupon/service/impl/CouponIssueServiceImpl.java @@ -95,7 +95,7 @@ public class CouponIssueServiceImpl extends ServiceImpl detailList = payClassifyDetailService.findList(payClassify.getPayClassifyId()); + payClassify.setDetailList(detailList); for(PayClassifyDetail classifyDetail : detailList){ Integer giveNum = classifyDetail.getGiveNum(); sb.append(giveNum); @@ -57,7 +58,7 @@ public class AppPayClassifyController { Coupon coupon = classifyDetail.getCoupon(); BigDecimal couponMoney = coupon.getMoney(); sb.append(couponMoney); - sb.append("元卷"); + sb.append("元券"); sb.append(" "); BigDecimal sumCouponMoney = couponMoney.multiply(new BigDecimal(giveNum)); sumMoney = sumMoney.add(sumCouponMoney); diff --git a/src/main/java/com/sqx/modules/pay/entity/PayDetails.java b/src/main/java/com/sqx/modules/pay/entity/PayDetails.java index 47f81d8..aa588b3 100644 --- a/src/main/java/com/sqx/modules/pay/entity/PayDetails.java +++ b/src/main/java/com/sqx/modules/pay/entity/PayDetails.java @@ -76,6 +76,11 @@ public class PayDetails implements Serializable { */ private Long artificerId; + /** + * 服务项目订单ID + */ + private Long massageOrdersId; + @TableField(exist = false) private String refundContent; diff --git a/src/main/java/com/sqx/modules/pay/service/WxService.java b/src/main/java/com/sqx/modules/pay/service/WxService.java index 1d0e543..63cf64d 100644 --- a/src/main/java/com/sqx/modules/pay/service/WxService.java +++ b/src/main/java/com/sqx/modules/pay/service/WxService.java @@ -14,7 +14,7 @@ import java.math.BigDecimal; */ 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; diff --git a/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java b/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java index 3a2ff04..58b77b9 100644 --- a/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java +++ b/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java @@ -136,7 +136,7 @@ public class WxServiceImpl implements WxService { private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @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); String generalOrder = getGeneralOrder(); PayDetails payDetails = new PayDetails(); @@ -149,6 +149,7 @@ public class WxServiceImpl implements WxService { payDetails.setType(3); payDetails.setArtificerId(artificerId); payDetails.setRemark(String.valueOf(payClassifyId)); + payDetails.setMassageOrdersId(ordersId); payDetailsDao.insert(payDetails); //用户在服务中充值余额,算技师业绩增加userRecharge表, modify 2024-06-17 by caolei 改到支付成功后技师获取积分 //查询用户在服务中的技师的订单id @@ -931,6 +932,7 @@ public class WxServiceImpl implements WxService { o.setType("2"); o.setUserId(payDetails.getUserId()); o.setArtificerId(payDetails.getArtificerId()); + o.setOrdersId(payDetails.getMassageOrdersId()); o.setCreateTime(DateUtils.format(new Date())); userRechargeDao.insert(o); } @@ -948,7 +950,7 @@ public class WxServiceImpl implements WxService { userMoneyDetails.setManipulateType(1); userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney())); userMoneyDetails.setUserId(payDetails.getUserId()); - userMoneyDetails.setTitle("微信购买优惠券,卷包:"+couponIssue.getCouponIssueName()); + userMoneyDetails.setTitle("微信购买优惠券,券包:"+couponIssue.getCouponIssueName()); userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney()); userMoneyDetails.setCreateTime(DateUtils.format(new Date())); userMoneyDetails.setBlRole(1); @@ -1072,16 +1074,16 @@ public class WxServiceImpl implements WxService { userMoneyDetails.setBlFlag(2); userMoneyDetailsService.save(userMoneyDetails); //技师流水 - UserEntity userEntity = userService.queryByUserId(payDetails.getUserId()); - userMoneyDao.updateMayMoney(1, artificerId, money); + UserEntity userEntity = userService.queryByUserId(artificer.getUserId()); + userMoneyDao.updateMayMoney(1, userEntity.getUserId(), money); //查询技师当前余额 - UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(artificerId); + UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(userEntity.getUserId()); UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(); //插入余额 userMoneyDetails2.setBalance(userNowMoney.getMoney()); userMoneyDetails2.setManipulateType(2); userMoneyDetails2.setClassify(8); - userMoneyDetails2.setUserId(artificerId); + userMoneyDetails2.setUserId(userEntity.getUserId()); userMoneyDetails2.setTitle("用户微信打赏"); userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”微信打赏:"+money); userMoneyDetails2.setType(1); diff --git a/src/main/resources/mapper/artificer/OrdersDao.xml b/src/main/resources/mapper/artificer/OrdersDao.xml index ed162e0..0d70223 100644 --- a/src/main/resources/mapper/artificer/OrdersDao.xml +++ b/src/main/resources/mapper/artificer/OrdersDao.xml @@ -373,6 +373,82 @@ order by o.create_time desc + + + + \ No newline at end of file