Commit fb429e15 by 程裕兵

feat:CashierEvent

parent a1ed70ab
...@@ -10,9 +10,11 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; ...@@ -10,9 +10,11 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.jiejing.common.exception.BizException; import com.jiejing.common.exception.BizException;
import com.jiejing.common.utils.collection.CollectionUtil; import com.jiejing.common.utils.collection.CollectionUtil;
import com.jiejing.common.utils.convert.BeanUtil;
import com.jiejing.fitness.enums.auth.AuthDomainEnum; import com.jiejing.fitness.enums.auth.AuthDomainEnum;
import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum; import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum;
import com.jiejing.fitness.enums.tenant.TenantTypeEnum; import com.jiejing.fitness.enums.tenant.TenantTypeEnum;
import com.jiejing.fitness.event.finance.CashierEvent;
import com.jiejing.fitness.finance.repository.entity.GlobalConfig; import com.jiejing.fitness.finance.repository.entity.GlobalConfig;
import com.jiejing.fitness.finance.repository.entity.StudioCashierRecord; import com.jiejing.fitness.finance.repository.entity.StudioCashierRecord;
import com.jiejing.fitness.finance.repository.entity.PartyToMerchant; import com.jiejing.fitness.finance.repository.entity.PartyToMerchant;
...@@ -180,8 +182,8 @@ public class PayServiceImpl implements PayService { ...@@ -180,8 +182,8 @@ public class PayServiceImpl implements PayService {
return; return;
} }
Long id = Long.parseLong(event.getTransNo());
Boolean result = transactionTemplate.execute(action -> { Boolean result = transactionTemplate.execute(action -> {
Long id = Long.parseLong(event.getTransNo());
StudioCashierRecord record = studioCashierRecordRpService.getByIdForUpdate(id).orElse(null); StudioCashierRecord record = studioCashierRecordRpService.getByIdForUpdate(id).orElse(null);
if (null == record) { if (null == record) {
return false; return false;
...@@ -202,6 +204,9 @@ public class PayServiceImpl implements PayService { ...@@ -202,6 +204,9 @@ public class PayServiceImpl implements PayService {
return true; return true;
}); });
// 发布收银事件
this.triggerCashierEvent(id);
if (null != result && result) { if (null != result && result) {
if (PayStateEnums.SUCCESS.getCode().equals(event.getPayState())) { if (PayStateEnums.SUCCESS.getCode().equals(event.getPayState())) {
executor.execute(() -> this.sendPaySuccessMessage(event)); executor.execute(() -> this.sendPaySuccessMessage(event));
...@@ -210,6 +215,12 @@ public class PayServiceImpl implements PayService { ...@@ -210,6 +215,12 @@ public class PayServiceImpl implements PayService {
} }
private void triggerCashierEvent(Long id) {
// 发布收银事件
StudioCashierRecord record = studioCashierRecordRpService.getById(id).orElse(null);
EventAgent.of(CashierEvent.class).triggerEvent(BeanUtil.map(record, CashierEvent.class));
}
private List<Long> getAdminIds(Long studioId) { private List<Long> getAdminIds(Long studioId) {
List<Long> userIds = this.getUserIds(studioId); List<Long> userIds = this.getUserIds(studioId);
if (CollectionUtil.isEmpty(userIds)) { if (CollectionUtil.isEmpty(userIds)) {
......
...@@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; ...@@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.jiejing.common.exception.BizException; import com.jiejing.common.exception.BizException;
import com.jiejing.common.utils.collection.CollectionUtil; import com.jiejing.common.utils.collection.CollectionUtil;
import com.jiejing.common.utils.convert.BeanUtil;
import com.jiejing.common.utils.text.StringUtil; import com.jiejing.common.utils.text.StringUtil;
import com.jiejing.common.utils.time.TimeUtil; import com.jiejing.common.utils.time.TimeUtil;
import com.jiejing.fitness.enums.auth.AuthDomainEnum; import com.jiejing.fitness.enums.auth.AuthDomainEnum;
import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum; import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum;
import com.jiejing.fitness.event.finance.CashierEvent;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO.CheckRefundCodeEnum; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO.CheckRefundCodeEnum;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO;
...@@ -151,10 +153,19 @@ public class RefundServiceImpl implements RefundService { ...@@ -151,10 +153,19 @@ public class RefundServiceImpl implements RefundService {
StudioCashierRecord toModify = RefundConvert.convertRefund(record, event); StudioCashierRecord toModify = RefundConvert.convertRefund(record, event);
studioCashierRecordRpService.updateById(toModify); studioCashierRecordRpService.updateById(toModify);
// 发布收银事件
this.triggerCashierEvent(record.getId());
// 执行后续处理 // 执行后续处理
this.doAfterRefund(event, record); this.doAfterRefund(event, record);
} }
private void triggerCashierEvent(Long id) {
// 发布收银事件
StudioCashierRecord record = studioCashierRecordRpService.getById(id).orElse(null);
EventAgent.of(CashierEvent.class).triggerEvent(BeanUtil.map(record, CashierEvent.class));
}
private void doAfterRefund(RefundEvent event, StudioCashierRecord record) { private void doAfterRefund(RefundEvent event, StudioCashierRecord record) {
TransStateEnums state = TransStateEnums.getByCode(event.getRefundState()); TransStateEnums state = TransStateEnums.getByCode(event.getRefundState());
switch (state) { switch (state) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment