diff --git a/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/hander/TradeRefundSellerAgreeAgreement.java b/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/hander/TradeRefundSellerAgreeAgreement.java index 5ab9ea5..6118f4e 100644 --- a/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/hander/TradeRefundSellerAgreeAgreement.java +++ b/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/hander/TradeRefundSellerAgreeAgreement.java @@ -1,6 +1,7 @@ package com.hchbox.hander; import com.hchbox.annotaion.RedisLock; +import com.hchbox.enums.RefundStatusEnum; import com.hchbox.hander.message.TaoBaoRefundMessage; import com.hchbox.service.TopTradeService; import lombok.RequiredArgsConstructor; @@ -25,7 +26,7 @@ public class TradeRefundSellerAgreeAgreement implements TaoBaoHandler topOrders) { if (topTrade.getTid() != null) { Long tid = topTrade.getTid(); - Integer byTid = topTradeRepository.countByTid(tid); if (byTid == null || byTid == DefaultNumberConstants.ZERO_NUMBER) { // 设置账户 @@ -161,12 +157,13 @@ public class TopTradeServiceImpl implements TopTradeService { } @Override - @Transactional(rollbackFor = Exception.class) + // @Transactional(rollbackFor = Exception.class) + @DS(DataSourceConfiguration.SHARDING_DATASOURCE_NAME) public Boolean processTradeMessage(TaoBaoTradeMessage message) { TopTrade trade = topTradeRepository.findByTid(message.getTid()); - log.info("=========== update order status the message as {} ===========", message.getStatus()); if (trade != null && message.getStatus() != null) { - topTradeRepository.updateOrderStatus(message.getStatus(), message.getTid(), DateUtil.date()); + log.info("=========== update order status the message as {} ===========", message.getStatus()); + updateOrderStatus(DefaultNumberConstants.TEN_NUMBER,trade.getSellerNick(),message.getStatus(),trade); return Boolean.TRUE; } return Boolean.FALSE; @@ -174,19 +171,20 @@ public class TopTradeServiceImpl implements TopTradeService { @Override - @Transactional(rollbackFor = Exception.class) - public Boolean updateOrderStatusByMessage(TaoBaoRefundMessage message) { + // @Transactional(rollbackFor = Exception.class) + @DS(DataSourceConfiguration.SHARDING_DATASOURCE_NAME) + public Boolean updateOrderStatusByMessage(TaoBaoRefundMessage message, String stateValue) { TopTrade trade = topTradeRepository.findByTid(message.getTid()); if (trade != null) { - topTradeRepository.updateOrderStatus(RefundStatusEnum.SUCCESS.getStateValue(), - message.getTid(), DateUtil.date()); + log.info("=========== update refundOrder status the status as {} ===========",stateValue); + updateOrderStatus(DefaultNumberConstants.TEN_NUMBER,trade.getSellerNick(),stateValue,trade); return Boolean.TRUE; } return Boolean.FALSE; } @Override - @Transactional(rollbackFor = Exception.class) + // @Transactional(rollbackFor = Exception.class) @DS(DataSourceConfiguration.SHARDING_DATASOURCE_NAME) public Boolean doAfterPayRemindMessage(TaoBaoTradeMessage message, AppSettingTypeEnum appSettingTypeEnum) { return processingOrderInformation(message, message.getStatus(), appSettingTypeEnum); @@ -194,12 +192,15 @@ public class TopTradeServiceImpl implements TopTradeService { @Override - @Transactional(rollbackFor = Exception.class) + // @Transactional(rollbackFor = Exception.class) + @DS(DataSourceConfiguration.SHARDING_DATASOURCE_NAME) public Boolean tradeShipByMessage(TaoBaoShipMessage message, AppSettingTypeEnum appSettingTypeEnum) { return processingOrderInformation(message, message.getStatus(), appSettingTypeEnum); } @Override + // @Transactional(rollbackFor = Exception.class) + @DS(DataSourceConfiguration.SHARDING_DATASOURCE_NAME) public Boolean tradeSuccessfulTransaction(TaoBaoTradeMessage message, AppSettingTypeEnum appSettingTypeEnum) { return processingOrderInformation(message, message.getStatus(), appSettingTypeEnum); } @@ -331,6 +332,7 @@ public class TopTradeServiceImpl implements TopTradeService { private Boolean processingOrderInformation(TaoBaoMessage message, String status, AppSettingTypeEnum appSettingTypeEnum) { String sellerNick = message.getSellerNick(); + SellerAccountDTO sellerAccount = sellerAccountService.getAccountByNick(sellerNick); if (sellerAccount == null || sellerAccount.getStatus() @@ -378,26 +380,12 @@ public class TopTradeServiceImpl implements TopTradeService { private void sendMessageRemind(Integer type, String buyerNick, Long tid, String orderStatus, String template, AppSetting setting, List sendNickList, SellerAccountDTO sellerAccountDTO) { - TopTrade trade = topTradeRepository.findByTid(tid); + TopTrade trade = topTradeRepository.findByTid(1434820972683809364L); if (trade != null) { - topTradeRepository.updateOrderStatus(orderStatus, tid, DateUtil.date()); - - // 订单支付成功 - if (type.equals(AppSettingTypeEnum.PAYMENT_SUCCESSFUL.getType())) { - topTradeRepository.updateOrderStatusPaySuccess(orderStatus, tid, DateUtil.date()); - } - - // 订单发货 - if (type.equals(AppSettingTypeEnum.MESSAGE_SHIPMENT_REMINDER.getType())) { - topTradeRepository.updateOrderStatusByShipDate(orderStatus, tid, DateUtil.date()); - } + // 修改订单状态 + updateOrderStatus(type, buyerNick, orderStatus, trade); - // 交易成功 - if (type.equals(AppSettingTypeEnum.SUCCESSFUL_TRANSACTION_REMINDER.getType())) { - topTradeRepository.updateOrderStatusSuccessfulTransaction(orderStatus, tid, DateUtil.date()); - } - - List orderList = topOrderRegistry.findByTid(tid); + List orderList = topOrderRegistry.findByTid(1434820972683809364L); if (!CollectionUtils.isEmpty(orderList)) { trade.setOrders(orderList); } @@ -454,6 +442,47 @@ public class TopTradeServiceImpl implements TopTradeService { cacheManagerUtil.putCache(MessageConstants.SEND_MESSAGE_KEY, timeFormat, sendMessageCache); } + private void updateOrderStatus(Integer type, String buyerNick, String orderStatus, TopTrade trade) { + DateTime date = DateUtil.date(); + StringBuilder updateString = new StringBuilder().append("update ") + .append(TableConstants.TRADE) + .append(Math.abs(buyerNick.hashCode()) % tableSum) + .append(" set status = :status, "); + + if (type.equals(DefaultNumberConstants.TEN_NUMBER)){ + updateString.append(" modified = :modified, "); + trade.setModified(date); + } + + // 订单支付成功 + if (type.equals(AppSettingTypeEnum.PAYMENT_SUCCESSFUL.getType())) { + updateString.append(" pay_time = :payTime, "); + trade.setPayTime(date); + } + + // 订单发货 + if (type.equals(AppSettingTypeEnum.MESSAGE_SHIPMENT_REMINDER.getType())) { + updateString.append(" consign_time = :consignTime, "); + trade.setConsignTime(date); + } + + // 交易成功 + if (type.equals(AppSettingTypeEnum.SUCCESSFUL_TRANSACTION_REMINDER.getType())) { + updateString.append(" end_time = :endTime, "); + trade.setEndTime(date); + } + + updateString.append(" where tid = :tid"); + trade.setStatus(orderStatus); + SqlParameterSource ps = new BeanPropertySqlParameterSource(trade); + namedParameterJdbcTemplate.update + (StrUtil.replace + (updateString.toString(), + updateString.toString().lastIndexOf(StrUtil.COMMA), + StrUtil.COMMA, StrUtil.SPACE, + Boolean.TRUE), ps); + } + private TaskMessageInfo createTaskMessageInfo(String template, AppSetting setting, List sendNickList, TopTrade trade, Long taskId) { TaskMessageInfo messageInfo = new TaskMessageInfo(); messageInfo.setTaskId(taskId); diff --git a/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/uitl/RemindTemplates.java b/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/uitl/RemindTemplates.java index 0e95f3a..47929c3 100644 --- a/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/uitl/RemindTemplates.java +++ b/service/trade-service-source/trade-service-source-taobao/src/main/java/com/hchbox/uitl/RemindTemplates.java @@ -22,7 +22,7 @@ public class RemindTemplates { } - public static final String PRICE = "${店铺名称}"; + public static final String PRICE = "${宝贝价格}"; public static final String PAY_TIME = "${支付时间}"; diff --git a/trade-pojo/src/main/java/com/hchbox/enums/RefundStatusEnum.java b/trade-pojo/src/main/java/com/hchbox/enums/RefundStatusEnum.java index d5dbab9..7e510e8 100644 --- a/trade-pojo/src/main/java/com/hchbox/enums/RefundStatusEnum.java +++ b/trade-pojo/src/main/java/com/hchbox/enums/RefundStatusEnum.java @@ -29,11 +29,11 @@ public enum RefundStatusEnum { /** * 退款关闭 */ - CLOSED("CLOSED"), + CLOSED("REFUND_CLOSED"), /** * 退款成功 */ - SUCCESS("SUCCESS"), + SUCCESS("REFUND_SUCCESS"), ; private final String stateValue; }