From 30778b143d4351842c3c0e60efe500f6c18df209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Mon, 1 Jul 2024 23:38:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A4=90=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/AppUserMoneyController.java | 18 +-- .../sqx/modules/artificer/entity/Orders.java | 6 + .../artificer/entity/OrdersMassage.java | 4 + .../service/impl/ArtificerServiceImpl.java | 7 +- .../service/impl/OrdersServiceImpl.java | 120 ++++++++++++++---- .../bl/order/dao/UserPackageDetailDao.java | 2 + .../modules/bl/order/entity/UserPackage.java | 6 + .../bl/order/entity/UserPackageDetail.java | 6 + .../service/UserPackageDetailService.java | 1 + .../impl/UserPackageDetailServiceImpl.java | 6 +- .../impl/UserPackageOrderServiceImpl.java | 12 ++ .../pay/controller/app/AliPayController.java | 3 + .../pay/service/impl/WxServiceImpl.java | 3 + .../resources/mapper/artificer/OrdersDao.xml | 11 +- .../mapper/bl/order/UserPackageDao.xml | 6 +- .../mapper/bl/order/UserPackageDetailDao.xml | 12 +- 16 files changed, 180 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/sqx/modules/app/controller/app/AppUserMoneyController.java b/src/main/java/com/sqx/modules/app/controller/app/AppUserMoneyController.java index a9d88a1..03367ba 100644 --- a/src/main/java/com/sqx/modules/app/controller/app/AppUserMoneyController.java +++ b/src/main/java/com/sqx/modules/app/controller/app/AppUserMoneyController.java @@ -90,22 +90,24 @@ public class AppUserMoneyController { period.setDetailsType(1); //获取上一周期的最后一天 period.setStartFundData(periodDate.getStartFundData()); - period.setEndFundData(CurrentPeriod); +// period.setEndFundData(CurrentPeriod); + period.setEndFundData(periodDate.getEndFundData()); List filteredPersons = userMoneyDetailsService.selectIncome(period); //进账 - Long incomeLong= filteredPersons.stream() + double incomeLong= filteredPersons.stream() .filter(UserMoneyDetails -> UserMoneyDetails.getType() == 1) - .mapToLong(UserMoneyDetails -> UserMoneyDetails.getMoney().longValue()) + .mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue()) .sum(); //出账 - Long outgoingLong= filteredPersons.stream() + double outgoingLong= filteredPersons.stream() .filter(UserMoneyDetails -> UserMoneyDetails.getType() == 2) .filter(UserMoneyDetails -> !UserMoneyDetails.getContent().contains("管理端减少")) - .mapToLong(UserMoneyDetails -> UserMoneyDetails.getMoney().longValue()) + .mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue()) .sum(); - BigDecimal income = new BigDecimal(incomeLong); - BigDecimal outgoing = new BigDecimal(outgoingLong); - BigDecimal balance = income.subtract(outgoing); + + BigDecimal income = BigDecimal.valueOf(incomeLong).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal outgoing = BigDecimal.valueOf(outgoingLong).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal balance = income.subtract(outgoing).setScale(2,BigDecimal.ROUND_HALF_UP); // BigDecimal ktxje = userMoney.getMoney().subtract(balance); if(balance.compareTo(BigDecimal.ZERO) < 0){ 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 62e418b..c907859 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Orders.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Orders.java @@ -334,6 +334,12 @@ public class Orders implements Serializable { */ private Long userPackageDetailId; + /** + * 服务包类型 + */ + @TableField(exist = false) + private Integer packageType; + /** * 会员优惠比例 */ diff --git a/src/main/java/com/sqx/modules/artificer/entity/OrdersMassage.java b/src/main/java/com/sqx/modules/artificer/entity/OrdersMassage.java index 8438f88..7a3c8a5 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/OrdersMassage.java +++ b/src/main/java/com/sqx/modules/artificer/entity/OrdersMassage.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.sqx.modules.bl.order.entity.UserPackageDetail; import lombok.Data; import java.io.Serializable; @@ -43,5 +44,8 @@ public class OrdersMassage implements Serializable { @TableField(exist = false) private MassageType massageType; + @TableField(exist = false) + private UserPackageDetail userPackageDetail; + public OrdersMassage() {} } diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java index 6e57331..6277e26 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java @@ -65,8 +65,6 @@ public class ArtificerServiceImpl extends ServiceImpl i @Autowired private CommonInfoDao commonInfoDao; - - @Override public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId,String artificerName, String longitude,String latitude,Integer sort,Integer authentication, @@ -635,6 +633,11 @@ public class ArtificerServiceImpl extends ServiceImpl i IPage ordersIPage = null; //当期订单数:计算订单发生了按摩行为的订单数,订单状态经历了开始服务到订单结束。 String currentPeriodOrdersSum = ordersDao.selectOrdersArtificerIntegral(userId, endTime, startTime); + if(currentPeriodOrdersSum.isEmpty() || currentPeriodOrdersSum.equals("0")){ + map.put("data",new PageUtils(pages)); + map.put("earnings","0"); + return Result.success(map); + } //订单数 BigDecimal currentPeriodOrdersSumBig = new BigDecimal(currentPeriodOrdersSum); //查询收益 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 ed4a2c2..7a29edb 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 @@ -30,6 +30,8 @@ import com.sqx.modules.artificer.dao.ArtificerDao; import com.sqx.modules.artificer.dao.OrdersDao; import com.sqx.modules.artificer.entity.*; import com.sqx.modules.artificer.service.*; +import com.sqx.modules.bl.order.entity.UserPackage; +import com.sqx.modules.bl.order.service.UserPackageService; import com.sqx.modules.common.dao.CommonInfoDao; import com.sqx.modules.bl.order.entity.UserPackageDetail; import com.sqx.modules.bl.order.service.UserPackageDetailService; @@ -139,7 +141,9 @@ public class OrdersServiceImpl extends ServiceImpl implements @Autowired private ArtificerDao artificerDao; @Autowired - UserPackageDetailService userPackageDetailService; + private UserPackageDetailService userPackageDetailService; + @Autowired + private UserPackageService userPackageService; @Autowired private MaterialMassageMapper materialMassageMapper; @Autowired @@ -246,10 +250,10 @@ public class OrdersServiceImpl extends ServiceImpl implements return result; } - @Override public Result insertOrders(Orders orders) { - reentrantReadWriteLock.writeLock().lock(); + String msg = ""; +// reentrantReadWriteLock.writeLock().lock(); Artificer artificer1 = artificerDao.selectOne(Wrappers.lambdaQuery() .eq(Artificer::getArtificerId, orders.getArtificerId())); orders.setClassifyId(artificer1.getClassifyId()); @@ -264,10 +268,12 @@ public class OrdersServiceImpl extends ServiceImpl implements } catch (Exception e) { e.printStackTrace(); log.error("添加订单异常" + e.getMessage(), e); + msg = e.getMessage(); } finally { - reentrantReadWriteLock.writeLock().unlock(); +// reentrantReadWriteLock.writeLock().unlock(); } - return Result.error("系统繁忙,请稍后再试!"); + return Result.error(msg); +// return Result.error("系统繁忙,请稍后再试!"); } private Result insertMassageOrders(Orders orders) throws Exception{ @@ -290,7 +296,7 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.error("优惠券已被使用!"); } if(couponUser.getClassifyId()!=0){ - if(orders.getClassifyId() != couponUser.getClassifyId()){ + if(!orders.getClassifyId() .equals(couponUser.getClassifyId())){ return Result.error("优惠券不满足使用条件!"); } } @@ -664,6 +670,7 @@ public class OrdersServiceImpl extends ServiceImpl implements orders.setPrice(price); orders.setEntryName(massageTypeName); orders.setMassageMoney(payMoney); + orders.setVipRate(new BigDecimal(100)); String value1 = commonInfoService.findOne(395).getValue(); int i = 0; @@ -929,7 +936,8 @@ public class OrdersServiceImpl extends ServiceImpl implements } else { return Result.error("当前订单没有选择服务项目!"); } - if (massageTypeId != oldOrders.getMassageTypeId()) { + Long oldMassageTypeId = oldOrders.getMassageTypeId(); + if (!massageTypeId.equals(oldMassageTypeId)) { return Result.error("当前订单无法修改服务项目!"); } Artificer artificer = artificerService.getById(orders.getArtificerId()); @@ -1092,7 +1100,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if (StringUtils.isNotBlank(orders.getServeTime()) && !orders.getServeTime().equals(oldOrders.getServeTime())) { return Result.error("当前订单无法修改时间!"); } - if (orders.getArtificerId() != null && orders.getArtificerId() != oldOrders.getArtificerId()) { + if (orders.getArtificerId() != null && !orders.getArtificerId().equals(oldOrders.getArtificerId())) { return Result.error("当前订单无法修改技师!"); } if (oldOrders.getParentId() != null && oldOrders.getParentId() != 0) { @@ -1236,7 +1244,7 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.error("服务时间不能晚于当前时间!"); } if (oldOrders.getUserPackageDetailId() != null) { - if (massageTypeId != oldOrders.getUserPackageDetailId()) { + if (!massageTypeId.equals(oldOrders.getUserPackageDetailId()) ) { return Result.error("当前套餐类订单无法修改项目!"); } UserPackageDetail userPackageDetail = userPackageDetailService.getById(massageTypeId); @@ -1444,7 +1452,7 @@ public class OrdersServiceImpl extends ServiceImpl implements return Result.error("优惠券已被使用!"); } if (couponUser.getClassifyId() != 0) { - if (orders.getClassifyId() != couponUser.getClassifyId()) { + if (!orders.getClassifyId().equals(couponUser.getClassifyId())) { return Result.error("优惠券不满足使用条件!"); } } @@ -3738,14 +3746,36 @@ public class OrdersServiceImpl extends ServiceImpl implements } List ordersMassageList = ordersMassageService.list(new QueryWrapper().eq("orders_id", ordersId)); for (OrdersMassage ordersMassage : ordersMassageList) { - ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId())); + if(orders.getUserPackageDetailId() !=null){ + UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId()); + UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId()); + orders.setPackageType(userPackage.getType()); + userPackageDetail.setMainTitle(userPackage.getTitle()); + userPackageDetail.setMainPrice(userPackage.getPrice()); + ordersMassage.setUserPackageDetail(userPackageDetail); + }else{ + 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())); + + if(orders.getOldOrdersId()!=null){ + Orders oldOrders = baseMapper.selectById(orders.getOldOrdersId()); + List oldOrdersMassageList = ordersMassageService.list(new QueryWrapper().eq("orders_id", orders.getOldOrdersId())); + for (OrdersMassage ordersMassage : oldOrdersMassageList) { + if(oldOrders.getUserPackageDetailId() !=null){ + UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId()); + UserPackage userPackage = userPackageService.getById(userPackageDetail.getMainId()); + orders.setPackageType(userPackage.getType()); + userPackageDetail.setMainTitle(userPackage.getTitle()); + userPackageDetail.setMainPrice(userPackage.getPrice()); + ordersMassage.setUserPackageDetail(userPackageDetail); + }else{ + ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId())); + } + } + orders.setOldOrdersMassageList(oldOrdersMassageList); } - orders.setOldOrdersMassageList(oldOrdersMassageList); Artificer artificer = artificerService.getById(orders.getArtificerId()); if (artificer != null) { UserEntity userEntity = userService.selectUserById(artificer.getUserId()); @@ -3983,7 +4013,8 @@ public class OrdersServiceImpl extends ServiceImpl implements @Override public Result payOrders(Long ordersId, Integer type) { - reentrantReadWriteLock.writeLock().lock(); + String msg = ""; +// reentrantReadWriteLock.writeLock().lock(); try { Orders orders = baseMapper.selectById(ordersId); if (orders == null) { @@ -3991,7 +4022,6 @@ public class OrdersServiceImpl extends ServiceImpl implements } else if (orders.getStatus() != 1) { return Result.error("订单状态异常,请刷新页面后重试!"); } - if(orders.getUserPackageDetailId() !=null ){ //套餐订单 return payPackageOrders(orders,type); @@ -4002,10 +4032,12 @@ public class OrdersServiceImpl extends ServiceImpl implements } catch (Exception e) { e.printStackTrace(); log.error("钱包支付订单异常:" + e.getMessage(), e); + msg = e.getMessage(); } finally { - reentrantReadWriteLock.writeLock().unlock(); +// reentrantReadWriteLock.writeLock().unlock(); } - return Result.error("系统繁忙,请稍后再试!"); + return Result.error(msg); +// return Result.error("系统繁忙,请稍后再试!"); } @@ -4030,7 +4062,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if (massageType.getAddNum() == null || massageType.getAddNum() == 0) { return Result.error("当前项目不允许加钟!"); } else if (massageType.getAddNum() > 0) { - if (orders1.getAddNum() != null && orders1.getAddNum() >= massageType.getAddNum()) { + if (orders1.getAddNum() != null && orders1.getAddNum().intValue() >= massageType.getAddNum().intValue()) { return Result.error("当前项目已超过最大加钟次数!"); } } @@ -4350,7 +4382,7 @@ public class OrdersServiceImpl extends ServiceImpl implements if (massageType.getAddNum() == null || massageType.getAddNum() == 0) { return Result.error("当前项目不允许加钟!"); } else if (massageType.getAddNum() > 0) { - if (orders1.getAddNum() != null && orders1.getAddNum() >= massageType.getAddNum()) { + if (orders1.getAddNum() != null && orders1.getAddNum().intValue() >= massageType.getAddNum().intValue()) { return Result.error("当前项目已超过最大加钟次数!"); } } @@ -4851,10 +4883,25 @@ public class OrdersServiceImpl extends ServiceImpl implements //修改项目销量 for (OrdersMassage ordersMassage : ordersMassageList) { - MassageType massageType = massageTypeService.getById(ordersMassage.getMassageId()); - int num = massageType.getSales() == null ? 0 : massageType.getSales(); - massageType.setSales(num + ordersMassage.getNum()); - massageTypeService.updateById(massageType); + if(orders.getUserPackageDetailId() !=null){ + UserPackageDetail userPackageDetail = userPackageDetailService.getById(ordersMassage.getMassageId()); + MassageType massageType = massageTypeService.getById(userPackageDetail.getMassageTypeId()); + int num = massageType.getSales() == null ? 0 : massageType.getSales(); + massageType.setSales(num + ordersMassage.getNum()); + massageTypeService.updateById(massageType); + UserPackageDetail userPackageDetailUsed = userPackageDetailService.findMassagePackageDetailsUsed(userPackageDetail.getMainId()); + if(userPackageDetailUsed.getServiceCount().equals(userPackageDetailUsed.getUsedQuantity())){ + UserPackage userPackage = new UserPackage(); + userPackage.setStatus(9); + userPackage.setId(userPackageDetail.getMainId()); + userPackageService.updateById(userPackage); + } + }else{ + MassageType massageType = massageTypeService.getById(ordersMassage.getMassageId()); + int num = massageType.getSales() == null ? 0 : massageType.getSales(); + massageType.setSales(num + ordersMassage.getNum()); + massageTypeService.updateById(massageType); + } } //修改技师钱包 1是加 2是减 UserEntity userEntity = userService.selectUserById(artificer.getUserId()); @@ -4995,6 +5042,17 @@ public class OrdersServiceImpl extends ServiceImpl implements Orders orders2 = new Orders(); orders2.setStatus(3); baseMapper.update(orders2,updateWrapper); + //修改加钟销量 + if(orders.getAddMassageTypeId() != null){ + MassageType addMassageType = massageTypeService.getById(orders.getAddMassageTypeId()); + Integer addSales = addMassageType.getSales(); + if(addSales == null){ + addSales = 0; + } + addSales = addSales + 1; + addMassageType.setSales(addSales); + massageTypeService.updateById(addMassageType); + } //消息推送 List msgList = new ArrayList<>(); msgList.add(orders.getOrdersNo()); @@ -5212,9 +5270,21 @@ 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); + //修改加钟销量 + if(orders.getAddMassageTypeId() != null){ + MassageType addMassageType = massageTypeService.getById(orders.getAddMassageTypeId()); + Integer addSales = addMassageType.getSales(); + if(addSales == null){ + addSales = 0; + } + addSales = addSales + 1; + addMassageType.setSales(addSales); + massageTypeService.updateById(addMassageType); + } //消息推送 List msgList = new ArrayList<>(); msgList.add(orders.getOrdersNo()); diff --git a/src/main/java/com/sqx/modules/bl/order/dao/UserPackageDetailDao.java b/src/main/java/com/sqx/modules/bl/order/dao/UserPackageDetailDao.java index 999aba8..a2014f9 100644 --- a/src/main/java/com/sqx/modules/bl/order/dao/UserPackageDetailDao.java +++ b/src/main/java/com/sqx/modules/bl/order/dao/UserPackageDetailDao.java @@ -23,4 +23,6 @@ public interface UserPackageDetailDao extends BaseMapper { UserPackageDetail getMyPackageDetailNoId(Long mainId,Long massageTypeId); + UserPackageDetail findMassagePackageDetailsUsed(Long mainId); + } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java b/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java index 1d58cd7..79279f0 100644 --- a/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java +++ b/src/main/java/com/sqx/modules/bl/order/entity/UserPackage.java @@ -125,6 +125,12 @@ public class UserPackage implements Serializable { */ private Integer status; + /** + * 次数 + */ + @TableField(exist = false) + private Integer serviceCount; + @TableField(exist = false) private Integer page; diff --git a/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java b/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java index 7a2eccd..1fd7e93 100644 --- a/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java +++ b/src/main/java/com/sqx/modules/bl/order/entity/UserPackageDetail.java @@ -182,5 +182,11 @@ public class UserPackageDetail implements Serializable { @TableField(exist = false) private Integer limit; + @TableField(exist = false) + private String mainTitle; + + @TableField(exist = false) + private BigDecimal mainPrice; + public UserPackageDetail() {} } diff --git a/src/main/java/com/sqx/modules/bl/order/service/UserPackageDetailService.java b/src/main/java/com/sqx/modules/bl/order/service/UserPackageDetailService.java index 4bd428f..15725ab 100644 --- a/src/main/java/com/sqx/modules/bl/order/service/UserPackageDetailService.java +++ b/src/main/java/com/sqx/modules/bl/order/service/UserPackageDetailService.java @@ -12,4 +12,5 @@ public interface UserPackageDetailService extends IService { int insert(UserPackageDetail userPackageDetail); Result findAppUsedQuantity(UserPackageDetail userPackageDetail); Result getMyPackageDetail(UserPackageDetail userPackageDetail); + UserPackageDetail findMassagePackageDetailsUsed(Long mainId); } diff --git a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java index 0556814..6c8f24d 100644 --- a/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java +++ b/src/main/java/com/sqx/modules/bl/order/service/impl/UserPackageDetailServiceImpl.java @@ -71,6 +71,8 @@ public class UserPackageDetailServiceImpl extends ServiceImpl pages=new Page<>(userPackageOrder.getPage(),userPackageOrder.getLimit()); diff --git a/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java b/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java index 63cc881..71aa521 100644 --- a/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java +++ b/src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java @@ -682,6 +682,9 @@ public class AliPayController { int serviceCount = upd.getServiceCount(); for(int k=0;k + + \ No newline at end of file