|
|
@@ -7,6 +7,7 @@ import com.izouma.zhumj.dto.PageQuery;
|
|
|
import com.izouma.zhumj.dto.PersonalFeeDTO;
|
|
|
import com.izouma.zhumj.dto.report.FeeReport;
|
|
|
import com.izouma.zhumj.enums.CheckInType;
|
|
|
+import com.izouma.zhumj.enums.FeeCategory;
|
|
|
import com.izouma.zhumj.enums.PayMethod;
|
|
|
import com.izouma.zhumj.event.BindIdentityEvent;
|
|
|
import com.izouma.zhumj.event.CheckinEvent;
|
|
|
@@ -52,8 +53,8 @@ public class PersonalFeeService {
|
|
|
private UserMoneyRecordService userMoneyRecordService;
|
|
|
private IndividualRentRepo individualRentRepo;
|
|
|
private RechargeRecordRepo rechargeRecordRepo;
|
|
|
- private UserMoneyRecordRepo userMoneyRecordRepo;
|
|
|
- private MemberRepo memberRepo;
|
|
|
+ private UserMoneyRecordRepo userMoneyRecordRepo;
|
|
|
+ private MemberRepo memberRepo;
|
|
|
|
|
|
public PersonalFee save(PersonalFee record) {
|
|
|
if (record.getId() != null) {
|
|
|
@@ -72,7 +73,9 @@ public class PersonalFeeService {
|
|
|
MemberInfo memberInfo = memberRepo.findById(checkinInfo.getIdNo()).orElseThrow(new BusinessException("无住客信息"));
|
|
|
|
|
|
if (record.getPayMethod() == PayMethod.WEIXIN || record.getPayMethod() == PayMethod.ALIPAY) {//非线下收款直接扣款
|
|
|
- memberInfo.setMoney(Optional.ofNullable(memberInfo.getMoney()).orElse(BigDecimal.ZERO).subtract(record.getMoney()));
|
|
|
+ memberInfo.setMoney(Optional.ofNullable(memberInfo.getMoney())
|
|
|
+ .orElse(BigDecimal.ZERO)
|
|
|
+ .subtract(record.getMoney()));
|
|
|
memberRepo.save(memberInfo);
|
|
|
}
|
|
|
|
|
|
@@ -192,7 +195,8 @@ public class PersonalFeeService {
|
|
|
if (StringUtils.isBlank(checkinInfo.getIdNo())) {
|
|
|
return;
|
|
|
}
|
|
|
- MemberInfo memberInfo = memberRepo.findById(checkinInfo.getIdNo()).orElseThrow(new BusinessException("无住客信息"));
|
|
|
+ MemberInfo memberInfo = memberRepo.findById(checkinInfo.getIdNo())
|
|
|
+ .orElseThrow(new BusinessException("无住客信息"));
|
|
|
PersonalFee newPersonalFee = PersonalFee.builder()
|
|
|
.checkinId(checkinInfo.getId())
|
|
|
.personalFeeTypeId(personalFeeType.getId())
|
|
|
@@ -281,8 +285,11 @@ public class PersonalFeeService {
|
|
|
PersonalFee personalFee = personalFeeRepo.findById(id).orElseThrow(new BusinessException("无记录"));
|
|
|
if (personalFee.getPayMethod() == PayMethod.WEIXIN
|
|
|
|| personalFee.getPayMethod() == PayMethod.ALIPAY) {//非线下收款需返还余额
|
|
|
- MemberInfo memberInfo = memberRepo.findById(personalFee.getIdNo()).orElseThrow(new BusinessException("无住客信息"));
|
|
|
- memberInfo.setMoney(Optional.ofNullable(memberInfo.getMoney()).orElse(BigDecimal.ZERO).add(personalFee.getMoney()));
|
|
|
+ MemberInfo memberInfo = memberRepo.findById(personalFee.getIdNo())
|
|
|
+ .orElseThrow(new BusinessException("无住客信息"));
|
|
|
+ memberInfo.setMoney(Optional.ofNullable(memberInfo.getMoney())
|
|
|
+ .orElse(BigDecimal.ZERO)
|
|
|
+ .add(personalFee.getMoney()));
|
|
|
memberRepo.save(memberInfo);
|
|
|
|
|
|
userMoneyRecordService.saveCancelPersonalFeeRecord(personalFee);
|
|
|
@@ -414,9 +421,13 @@ public class PersonalFeeService {
|
|
|
MemberInfo memberInfo = memberRepo.findById(checkinInfo.getIdNo()).orElseThrow(new BusinessException("无住客信息"));
|
|
|
IndividualRent individualRent = individualRentRepo.save(IndividualRent.builder()
|
|
|
.checkinId(checkinInfo.getId())
|
|
|
+ .name(checkinInfo.getName())
|
|
|
.storeId(checkinInfo.getStoreId())
|
|
|
+ .storeName(checkinInfo.getStoreInfo().getStoreName())
|
|
|
.roomId(checkinInfo.getRoomId())
|
|
|
+ .roomName(checkinInfo.getRoomInfo().getRoomName())
|
|
|
.bedId(checkinInfo.getBedId())
|
|
|
+ .bedName(checkinInfo.getBedInfo().getBedName())
|
|
|
.idNo(checkinInfo.getIdNo())
|
|
|
.money(money)
|
|
|
.payMethod(payMethod)
|
|
|
@@ -466,4 +477,22 @@ public class PersonalFeeService {
|
|
|
// }).start();
|
|
|
}
|
|
|
|
|
|
+ public void fixNoneFeeTypeRecords() {
|
|
|
+ for (PersonalFee personalFee : personalFeeRepo.findNoneFeeType()) {
|
|
|
+ PersonalFeeType type = personalFeeTypeRepo.findByStoreId(personalFee.getStoreId()).stream()
|
|
|
+ .filter(personalFeeType -> "其他费用".equals(personalFeeType.getName()))
|
|
|
+ .findAny().orElse(null);
|
|
|
+ if (type == null) {
|
|
|
+ type = personalFeeTypeRepo.save(PersonalFeeType.builder()
|
|
|
+ .storeId(personalFee.getStoreId())
|
|
|
+ .name("其他费用")
|
|
|
+ .autoFee(false)
|
|
|
+ .money(BigDecimal.ZERO)
|
|
|
+ .category(FeeCategory.BASE)
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ personalFee.setPersonalFeeTypeId(type.getId());
|
|
|
+ personalFeeRepo.save(personalFee);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|