套餐订单

This commit is contained in:
曹磊 2024-07-01 23:38:31 +08:00
parent 14fb851ab4
commit 30778b143d
16 changed files with 180 additions and 43 deletions

View File

@ -90,22 +90,24 @@ public class AppUserMoneyController {
period.setDetailsType(1); period.setDetailsType(1);
//获取上一周期的最后一天 //获取上一周期的最后一天
period.setStartFundData(periodDate.getStartFundData()); period.setStartFundData(periodDate.getStartFundData());
period.setEndFundData(CurrentPeriod); // period.setEndFundData(CurrentPeriod);
period.setEndFundData(periodDate.getEndFundData());
List<UserMoneyDetails> filteredPersons = userMoneyDetailsService.selectIncome(period); List<UserMoneyDetails> filteredPersons = userMoneyDetailsService.selectIncome(period);
//进账 //进账
Long incomeLong= filteredPersons.stream() double incomeLong= filteredPersons.stream()
.filter(UserMoneyDetails -> UserMoneyDetails.getType() == 1) .filter(UserMoneyDetails -> UserMoneyDetails.getType() == 1)
.mapToLong(UserMoneyDetails -> UserMoneyDetails.getMoney().longValue()) .mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue())
.sum(); .sum();
//出账 //出账
Long outgoingLong= filteredPersons.stream() double outgoingLong= filteredPersons.stream()
.filter(UserMoneyDetails -> UserMoneyDetails.getType() == 2) .filter(UserMoneyDetails -> UserMoneyDetails.getType() == 2)
.filter(UserMoneyDetails -> !UserMoneyDetails.getContent().contains("管理端减少")) .filter(UserMoneyDetails -> !UserMoneyDetails.getContent().contains("管理端减少"))
.mapToLong(UserMoneyDetails -> UserMoneyDetails.getMoney().longValue()) .mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue())
.sum(); .sum();
BigDecimal income = new BigDecimal(incomeLong);
BigDecimal outgoing = new BigDecimal(outgoingLong); BigDecimal income = BigDecimal.valueOf(incomeLong).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal balance = income.subtract(outgoing); 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); // BigDecimal ktxje = userMoney.getMoney().subtract(balance);
if(balance.compareTo(BigDecimal.ZERO) < 0){ if(balance.compareTo(BigDecimal.ZERO) < 0){

View File

@ -334,6 +334,12 @@ public class Orders implements Serializable {
*/ */
private Long userPackageDetailId; private Long userPackageDetailId;
/**
* 服务包类型
*/
@TableField(exist = false)
private Integer packageType;
/** /**
* 会员优惠比例 * 会员优惠比例
*/ */

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.sqx.modules.bl.order.entity.UserPackageDetail;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -43,5 +44,8 @@ public class OrdersMassage implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private MassageType massageType; private MassageType massageType;
@TableField(exist = false)
private UserPackageDetail userPackageDetail;
public OrdersMassage() {} public OrdersMassage() {}
} }

View File

@ -65,8 +65,6 @@ public class ArtificerServiceImpl extends ServiceImpl<ArtificerDao, Artificer> i
@Autowired @Autowired
private CommonInfoDao commonInfoDao; private CommonInfoDao commonInfoDao;
@Override @Override
public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId,String artificerName, public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId,String artificerName,
String longitude,String latitude,Integer sort,Integer authentication, String longitude,String latitude,Integer sort,Integer authentication,
@ -635,6 +633,11 @@ public class ArtificerServiceImpl extends ServiceImpl<ArtificerDao, Artificer> i
IPage<Orders> ordersIPage = null; IPage<Orders> ordersIPage = null;
//当期订单数计算订单发生了按摩行为的订单数订单状态经历了开始服务到订单结束 //当期订单数计算订单发生了按摩行为的订单数订单状态经历了开始服务到订单结束
String currentPeriodOrdersSum = ordersDao.selectOrdersArtificerIntegral(userId, endTime, startTime); 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); BigDecimal currentPeriodOrdersSumBig = new BigDecimal(currentPeriodOrdersSum);
//查询收益 //查询收益

View File

@ -30,6 +30,8 @@ import com.sqx.modules.artificer.dao.ArtificerDao;
import com.sqx.modules.artificer.dao.OrdersDao; import com.sqx.modules.artificer.dao.OrdersDao;
import com.sqx.modules.artificer.entity.*; import com.sqx.modules.artificer.entity.*;
import com.sqx.modules.artificer.service.*; 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.common.dao.CommonInfoDao;
import com.sqx.modules.bl.order.entity.UserPackageDetail; import com.sqx.modules.bl.order.entity.UserPackageDetail;
import com.sqx.modules.bl.order.service.UserPackageDetailService; import com.sqx.modules.bl.order.service.UserPackageDetailService;
@ -139,7 +141,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
@Autowired @Autowired
private ArtificerDao artificerDao; private ArtificerDao artificerDao;
@Autowired @Autowired
UserPackageDetailService userPackageDetailService; private UserPackageDetailService userPackageDetailService;
@Autowired
private UserPackageService userPackageService;
@Autowired @Autowired
private MaterialMassageMapper materialMassageMapper; private MaterialMassageMapper materialMassageMapper;
@Autowired @Autowired
@ -246,10 +250,10 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return result; return result;
} }
@Override @Override
public Result insertOrders(Orders orders) { public Result insertOrders(Orders orders) {
reentrantReadWriteLock.writeLock().lock(); String msg = "";
// reentrantReadWriteLock.writeLock().lock();
Artificer artificer1 = artificerDao.selectOne(Wrappers.<Artificer>lambdaQuery() Artificer artificer1 = artificerDao.selectOne(Wrappers.<Artificer>lambdaQuery()
.eq(Artificer::getArtificerId, orders.getArtificerId())); .eq(Artificer::getArtificerId, orders.getArtificerId()));
orders.setClassifyId(artificer1.getClassifyId()); orders.setClassifyId(artificer1.getClassifyId());
@ -264,10 +268,12 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("添加订单异常" + e.getMessage(), e); log.error("添加订单异常" + e.getMessage(), e);
msg = e.getMessage();
} finally { } finally {
reentrantReadWriteLock.writeLock().unlock(); // reentrantReadWriteLock.writeLock().unlock();
} }
return Result.error("系统繁忙,请稍后再试!"); return Result.error(msg);
// return Result.error("系统繁忙,请稍后再试!");
} }
private Result insertMassageOrders(Orders orders) throws Exception{ private Result insertMassageOrders(Orders orders) throws Exception{
@ -290,7 +296,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("优惠券已被使用!"); return Result.error("优惠券已被使用!");
} }
if(couponUser.getClassifyId()!=0){ if(couponUser.getClassifyId()!=0){
if(orders.getClassifyId() != couponUser.getClassifyId()){ if(!orders.getClassifyId() .equals(couponUser.getClassifyId())){
return Result.error("优惠券不满足使用条件!"); return Result.error("优惠券不满足使用条件!");
} }
} }
@ -664,6 +670,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
orders.setPrice(price); orders.setPrice(price);
orders.setEntryName(massageTypeName); orders.setEntryName(massageTypeName);
orders.setMassageMoney(payMoney); orders.setMassageMoney(payMoney);
orders.setVipRate(new BigDecimal(100));
String value1 = commonInfoService.findOne(395).getValue(); String value1 = commonInfoService.findOne(395).getValue();
int i = 0; int i = 0;
@ -929,7 +936,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} else { } else {
return Result.error("当前订单没有选择服务项目!"); return Result.error("当前订单没有选择服务项目!");
} }
if (massageTypeId != oldOrders.getMassageTypeId()) { Long oldMassageTypeId = oldOrders.getMassageTypeId();
if (!massageTypeId.equals(oldMassageTypeId)) {
return Result.error("当前订单无法修改服务项目!"); return Result.error("当前订单无法修改服务项目!");
} }
Artificer artificer = artificerService.getById(orders.getArtificerId()); Artificer artificer = artificerService.getById(orders.getArtificerId());
@ -1092,7 +1100,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if (StringUtils.isNotBlank(orders.getServeTime()) && !orders.getServeTime().equals(oldOrders.getServeTime())) { if (StringUtils.isNotBlank(orders.getServeTime()) && !orders.getServeTime().equals(oldOrders.getServeTime())) {
return Result.error("当前订单无法修改时间!"); return Result.error("当前订单无法修改时间!");
} }
if (orders.getArtificerId() != null && orders.getArtificerId() != oldOrders.getArtificerId()) { if (orders.getArtificerId() != null && !orders.getArtificerId().equals(oldOrders.getArtificerId())) {
return Result.error("当前订单无法修改技师!"); return Result.error("当前订单无法修改技师!");
} }
if (oldOrders.getParentId() != null && oldOrders.getParentId() != 0) { if (oldOrders.getParentId() != null && oldOrders.getParentId() != 0) {
@ -1236,7 +1244,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("服务时间不能晚于当前时间!"); return Result.error("服务时间不能晚于当前时间!");
} }
if (oldOrders.getUserPackageDetailId() != null) { if (oldOrders.getUserPackageDetailId() != null) {
if (massageTypeId != oldOrders.getUserPackageDetailId()) { if (!massageTypeId.equals(oldOrders.getUserPackageDetailId()) ) {
return Result.error("当前套餐类订单无法修改项目!"); return Result.error("当前套餐类订单无法修改项目!");
} }
UserPackageDetail userPackageDetail = userPackageDetailService.getById(massageTypeId); UserPackageDetail userPackageDetail = userPackageDetailService.getById(massageTypeId);
@ -1444,7 +1452,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("优惠券已被使用!"); return Result.error("优惠券已被使用!");
} }
if (couponUser.getClassifyId() != 0) { if (couponUser.getClassifyId() != 0) {
if (orders.getClassifyId() != couponUser.getClassifyId()) { if (!orders.getClassifyId().equals(couponUser.getClassifyId())) {
return Result.error("优惠券不满足使用条件!"); return Result.error("优惠券不满足使用条件!");
} }
} }
@ -3738,14 +3746,36 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} }
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) {
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())); ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId()));
} }
}
orders.setOrdersMassageList(ordersMassageList); orders.setOrdersMassageList(ordersMassageList);
if(orders.getOldOrdersId()!=null){
Orders oldOrders = baseMapper.selectById(orders.getOldOrdersId());
List<OrdersMassage> oldOrdersMassageList = ordersMassageService.list(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOldOrdersId())); List<OrdersMassage> oldOrdersMassageList = ordersMassageService.list(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOldOrdersId()));
for (OrdersMassage ordersMassage : oldOrdersMassageList) { 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())); ordersMassage.setMassageType(massageTypeService.getById(ordersMassage.getMassageId()));
} }
}
orders.setOldOrdersMassageList(oldOrdersMassageList); 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());
@ -3983,7 +4013,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
@Override @Override
public Result payOrders(Long ordersId, Integer type) { public Result payOrders(Long ordersId, Integer type) {
reentrantReadWriteLock.writeLock().lock(); String msg = "";
// reentrantReadWriteLock.writeLock().lock();
try { try {
Orders orders = baseMapper.selectById(ordersId); Orders orders = baseMapper.selectById(ordersId);
if (orders == null) { if (orders == null) {
@ -3991,7 +4022,6 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} else if (orders.getStatus() != 1) { } else if (orders.getStatus() != 1) {
return Result.error("订单状态异常,请刷新页面后重试!"); return Result.error("订单状态异常,请刷新页面后重试!");
} }
if(orders.getUserPackageDetailId() !=null ){ if(orders.getUserPackageDetailId() !=null ){
//套餐订单 //套餐订单
return payPackageOrders(orders,type); return payPackageOrders(orders,type);
@ -4002,10 +4032,12 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("钱包支付订单异常:" + e.getMessage(), e); log.error("钱包支付订单异常:" + e.getMessage(), e);
msg = e.getMessage();
} finally { } 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<OrdersDao, Orders> implements
if (massageType.getAddNum() == null || massageType.getAddNum() == 0) { if (massageType.getAddNum() == null || massageType.getAddNum() == 0) {
return Result.error("当前项目不允许加钟!"); return Result.error("当前项目不允许加钟!");
} else if (massageType.getAddNum() > 0) { } 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("当前项目已超过最大加钟次数!"); return Result.error("当前项目已超过最大加钟次数!");
} }
} }
@ -4350,7 +4382,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if (massageType.getAddNum() == null || massageType.getAddNum() == 0) { if (massageType.getAddNum() == null || massageType.getAddNum() == 0) {
return Result.error("当前项目不允许加钟!"); return Result.error("当前项目不允许加钟!");
} else if (massageType.getAddNum() > 0) { } 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("当前项目已超过最大加钟次数!"); return Result.error("当前项目已超过最大加钟次数!");
} }
} }
@ -4851,11 +4883,26 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
//修改项目销量 //修改项目销量
for (OrdersMassage ordersMassage : ordersMassageList) { for (OrdersMassage ordersMassage : ordersMassageList) {
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()); MassageType massageType = massageTypeService.getById(ordersMassage.getMassageId());
int num = massageType.getSales() == null ? 0 : massageType.getSales(); int num = massageType.getSales() == null ? 0 : massageType.getSales();
massageType.setSales(num + ordersMassage.getNum()); massageType.setSales(num + ordersMassage.getNum());
massageTypeService.updateById(massageType); massageTypeService.updateById(massageType);
} }
}
//修改技师钱包 1是加 2是减 //修改技师钱包 1是加 2是减
UserEntity userEntity = userService.selectUserById(artificer.getUserId()); UserEntity userEntity = userService.selectUserById(artificer.getUserId());
userMoneyService.updateMoney(1, userEntity.getUserId(), orders.getSumArtificerMoney().doubleValue()); userMoneyService.updateMoney(1, userEntity.getUserId(), orders.getSumArtificerMoney().doubleValue());
@ -4995,6 +5042,17 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
Orders orders2 = new Orders(); Orders orders2 = new Orders();
orders2.setStatus(3); orders2.setStatus(3);
baseMapper.update(orders2,updateWrapper); 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<String> msgList = new ArrayList<>(); List<String> msgList = new ArrayList<>();
msgList.add(orders.getOrdersNo()); msgList.add(orders.getOrdersNo());
@ -5212,9 +5270,21 @@ 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);
//修改加钟销量
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<String> msgList = new ArrayList<>(); List<String> msgList = new ArrayList<>();
msgList.add(orders.getOrdersNo()); msgList.add(orders.getOrdersNo());

View File

@ -23,4 +23,6 @@ public interface UserPackageDetailDao extends BaseMapper<UserPackageDetail> {
UserPackageDetail getMyPackageDetailNoId(Long mainId,Long massageTypeId); UserPackageDetail getMyPackageDetailNoId(Long mainId,Long massageTypeId);
UserPackageDetail findMassagePackageDetailsUsed(Long mainId);
} }

View File

@ -125,6 +125,12 @@ public class UserPackage implements Serializable {
*/ */
private Integer status; private Integer status;
/**
* 次数
*/
@TableField(exist = false)
private Integer serviceCount;
@TableField(exist = false) @TableField(exist = false)
private Integer page; private Integer page;

View File

@ -182,5 +182,11 @@ public class UserPackageDetail implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Integer limit; private Integer limit;
@TableField(exist = false)
private String mainTitle;
@TableField(exist = false)
private BigDecimal mainPrice;
public UserPackageDetail() {} public UserPackageDetail() {}
} }

View File

@ -12,4 +12,5 @@ public interface UserPackageDetailService extends IService<UserPackageDetail> {
int insert(UserPackageDetail userPackageDetail); int insert(UserPackageDetail userPackageDetail);
Result findAppUsedQuantity(UserPackageDetail userPackageDetail); Result findAppUsedQuantity(UserPackageDetail userPackageDetail);
Result getMyPackageDetail(UserPackageDetail userPackageDetail); Result getMyPackageDetail(UserPackageDetail userPackageDetail);
UserPackageDetail findMassagePackageDetailsUsed(Long mainId);
} }

View File

@ -71,6 +71,8 @@ public class UserPackageDetailServiceImpl extends ServiceImpl<UserPackageDetailD
return Result.success().put("data",userPackageDetail); return Result.success().put("data",userPackageDetail);
} }
@Override
public UserPackageDetail findMassagePackageDetailsUsed(Long mainId){
return findMassagePackageDetailsUsed(mainId);
}
} }

View File

@ -13,8 +13,10 @@ import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserVipService; import com.sqx.modules.app.service.UserVipService;
import com.sqx.modules.artificer.entity.Artificer; import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.entity.MassageType;
import com.sqx.modules.artificer.entity.Orders; import com.sqx.modules.artificer.entity.Orders;
import com.sqx.modules.artificer.entity.OrdersMassage; import com.sqx.modules.artificer.entity.OrdersMassage;
import com.sqx.modules.artificer.service.MassageTypeService;
import com.sqx.modules.bl.massage.dao.MassagePackageDetailDao; import com.sqx.modules.bl.massage.dao.MassagePackageDetailDao;
import com.sqx.modules.bl.massage.entity.MassagePackage; import com.sqx.modules.bl.massage.entity.MassagePackage;
import com.sqx.modules.bl.massage.entity.MassagePackageDetail; import com.sqx.modules.bl.massage.entity.MassagePackageDetail;
@ -74,6 +76,9 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
@Autowired @Autowired
MassagePackageDetailDao massagePackageDetailDao; MassagePackageDetailDao massagePackageDetailDao;
@Autowired
MassageTypeService massageTypeService;
@Autowired @Autowired
private CommonInfoService commonInfoService; private CommonInfoService commonInfoService;
@ -358,6 +363,7 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);
updateMassageSale(upd.getMassageTypeId());
} }
} }
} }
@ -370,6 +376,12 @@ public class UserPackageOrderServiceImpl extends ServiceImpl<UserPackageOrderDao
return Result.success(); return Result.success();
} }
private void updateMassageSale(Long massageTypeId){
MassageType massageType = massageTypeService.getById(massageTypeId);
massageType.setSales(massageType.getSales()+1);
massageTypeService.updateById(massageType);
}
@Override @Override
public Result findUserPackageOrders(UserPackageOrder userPackageOrder){ public Result findUserPackageOrders(UserPackageOrder userPackageOrder){
Page<UserPackageOrder> pages=new Page<>(userPackageOrder.getPage(),userPackageOrder.getLimit()); Page<UserPackageOrder> pages=new Page<>(userPackageOrder.getPage(),userPackageOrder.getLimit());

View File

@ -682,6 +682,9 @@ public class AliPayController {
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
massageType.setSales(massageType.getSales()+1);
massageTypeService.updateById(massageType);
} }
} }
} }

View File

@ -1156,6 +1156,9 @@ public class WxServiceImpl implements WxService {
int serviceCount = upd.getServiceCount(); int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){ for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd); userPackageDetailService.insert(upd);
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
massageType.setSales(massageType.getSales()+1);
massageTypeService.updateById(massageType);
} }
} }
} }

View File

@ -656,7 +656,9 @@
</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, select o.*,
(case when o.user_package_detail_id is null then m.title else bl.title end ) as title,
(case when o.user_package_detail_id is null then m.massage_img else bl.massage_img end ) as massageImg,
now() > DATE_ADD(STR_TO_DATE(o.serve_time, '%Y-%m-%d %H:%i'), INTERVAL #{minutes} MINUTE) as is_can_supplement, 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 (case when o.status = 4
then o.artificer_money + ifnull(o.add_artificer_money,0) then o.artificer_money + ifnull(o.add_artificer_money,0)
@ -666,6 +668,7 @@
left join orders o2 on o.old_orders_id = o2.orders_id and o2.status != 4 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
LEFT JOIN bl_user_package_detail bl ON bl.id = om.massage_id
where o.artificer_id = #{artificerId} where o.artificer_id = #{artificerId}
and o.old_orders_id is not null and o.old_orders_id is not null
and o.status != 11 and o.status != 11
@ -702,14 +705,16 @@
<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>
union all union all
select o.*,m.title,m.massage_img as massageImg, select o.*,
(case when o.user_package_detail_id is null then m.title else bl.title end ) as title,
(case when o.user_package_detail_id is null then m.massage_img else bl.massage_img end ) as massageImg,
now() > DATE_ADD(STR_TO_DATE(o.serve_time, '%Y-%m-%d %H:%i'), INTERVAL #{minutes} MINUTE) as is_can_supplement, 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 o.artificer_money + ifnull(o.add_artificer_money,0) as artificer_money_total
from orders o from orders o
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
LEFT JOIN bl_user_package_detail bl ON bl.id = om.massage_id
where o.artificer_id = #{artificerId} where o.artificer_id = #{artificerId}
and o.parent_id = 0 and o.parent_id = 0
and o.status != 11 and o.status != 11

View File

@ -108,7 +108,8 @@
a.classify_id, a.classify_id,
b.value as classifyName, b.value as classifyName,
c.sales, c.sales,
c.esteem_rate c.esteem_rate,
(select count(*) from bl_user_package_detail d where d.main_id = a.id) as service_count
from bl_user_package a from bl_user_package a
left join sys_dict b on a.classify_id = b.id and b.type="服务类型" left join sys_dict b on a.classify_id = b.id and b.type="服务类型"
left join bl_massage_package c on a.package_id = c.id left join bl_massage_package c on a.package_id = c.id
@ -141,7 +142,8 @@
a.classify_id, a.classify_id,
b.value as classifyName, b.value as classifyName,
c.sales, c.sales,
c.esteem_rate c.esteem_rate,
(select count(*) from bl_user_package_detail d where d.main_id = a.id) as service_count
from bl_user_package a from bl_user_package a
left join sys_dict b on a.classify_id = b.id and b.type="服务类型" left join sys_dict b on a.classify_id = b.id and b.type="服务类型"
left join bl_massage_package c on a.package_id = c.id left join bl_massage_package c on a.package_id = c.id

View File

@ -40,7 +40,8 @@
round(avg(a.package_price),2) as package_price, round(avg(a.package_price),2) as package_price,
round(avg(a.price),2) as price, round(avg(a.price),2) as price,
sum(case a.status when 1 then 1 else 0 end) as usedQuantity, sum(case a.status when 1 then 1 else 0 end) as usedQuantity,
sum(case a.status when 0 then 1 else 0 end) as unUsedQuantity sum(case a.status when 0 then 1 else 0 end) as unUsedQuantity,
count(*) as service_count
from bl_user_package_detail a from bl_user_package_detail a
where a.main_id = #{mainId} where a.main_id = #{mainId}
group by a.massage_type_id,a.title,a.massage_img,a.content_img group by a.massage_type_id,a.title,a.massage_img,a.content_img
@ -57,6 +58,7 @@
round(avg(a.price),2) as price, round(avg(a.price),2) as price,
sum(case a.status when 1 then 1 else 0 end) as usedQuantity, sum(case a.status when 1 then 1 else 0 end) as usedQuantity,
sum(case a.status when 0 then 1 else 0 end) as unUsedQuantity, sum(case a.status when 0 then 1 else 0 end) as unUsedQuantity,
count(*) as service_count,
concat(round(count(massage_type_id)*avg(interval_days)),'天一疗程,每隔',round(avg(interval_days)),'天一次,共',round(count(massage_type_id)),'次') as interval_days_str, concat(round(count(massage_type_id)*avg(interval_days)),'天一疗程,每隔',round(avg(interval_days)),'天一次,共',round(count(massage_type_id)),'次') as interval_days_str,
(select max(end_times) from orders o where a.massage_type_id = o.massage_type_id and b.id = o.user_package_id) as max_time (select max(end_times) from orders o where a.massage_type_id = o.massage_type_id and b.id = o.user_package_id) as max_time
from bl_user_package_detail a from bl_user_package_detail a
@ -203,5 +205,13 @@
limit 1 limit 1
</select> </select>
<select id="findMassagePackageDetailsUsed" resultType="com.sqx.modules.bl.order.entity.UserPackageDetail">
select
sum(case a.status when 1 then 1 else 0 end) as usedQuantity,
count(*) as service_count
from bl_user_package_detail a
where a.main_id = #{mainId}
</select>
</mapper> </mapper>