|
@@ -1753,23 +1753,23 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public R createOmsOrder(Long orderId) throws ParseException {
|
|
public R createOmsOrder(Long orderId) throws ParseException {
|
|
- FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderById(orderId);
|
|
|
|
|
|
+ FsStoreOrderScrm order=fsStoreOrderMapper.selectFsStoreOrderById(orderId);
|
|
FsSysConfig erpConfig = configUtil.generateStructConfigByKey(SysConfigEnum.HIS_CONFIG.getKey(), FsSysConfig.class);
|
|
FsSysConfig erpConfig = configUtil.generateStructConfigByKey(SysConfigEnum.HIS_CONFIG.getKey(), FsSysConfig.class);
|
|
List<Long> noErpCompany = erpConfig.getNoErpCompany();
|
|
List<Long> noErpCompany = erpConfig.getNoErpCompany();
|
|
if (noErpCompany != null && noErpCompany.contains(order.getCompanyId())) {
|
|
if (noErpCompany != null && noErpCompany.contains(order.getCompanyId())) {
|
|
log.info("订单:{},相关公司不推送erp", order.getOrderCode());
|
|
log.info("订单:{},相关公司不推送erp", order.getOrderCode());
|
|
- return R.error("订单:" + order.getOrderCode() + ",相关公司不推送erp");
|
|
|
|
|
|
+ return R.error("订单:" + order.getOrderCode() +",相关公司不推送erp");
|
|
}
|
|
}
|
|
IErpOrderService erpOrderService = getErpService();
|
|
IErpOrderService erpOrderService = getErpService();
|
|
- if (erpOrderService == null) {
|
|
|
|
|
|
+ if(erpOrderService == null){
|
|
log.info("未启用erp");
|
|
log.info("未启用erp");
|
|
return R.error("暂未启用erp");
|
|
return R.error("暂未启用erp");
|
|
}
|
|
}
|
|
- if (!StringUtils.isEmpty(order.getExtendOrderId()) && order.getStatus() != 1) {
|
|
|
|
- return R.error("订单:" + order.getOrderCode() + ",已推送erp/订单状态不正确");
|
|
|
|
|
|
+ if(!StringUtils.isEmpty(order.getExtendOrderId())&&order.getStatus()!=1){
|
|
|
|
+ return R.error("订单:" + order.getOrderCode() +",已推送erp/订单状态不正确");
|
|
}
|
|
}
|
|
ErpOrder erpOrder = getErpOrder(order);
|
|
ErpOrder erpOrder = getErpOrder(order);
|
|
- if (erpOrderService == jSTOrderService) {
|
|
|
|
|
|
+ if(erpOrderService == jSTOrderService){
|
|
erpOrder.setShop_code(erpConfig.getErpJstShopCode());
|
|
erpOrder.setShop_code(erpConfig.getErpJstShopCode());
|
|
}
|
|
}
|
|
ErpOrderResponse response = erpOrderService.addOrderScrm(erpOrder);
|
|
ErpOrderResponse response = erpOrderService.addOrderScrm(erpOrder);
|
|
@@ -2033,23 +2033,22 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
@Transactional
|
|
@Transactional
|
|
public R refundOrderMoney(Long orderId) {
|
|
public R refundOrderMoney(Long orderId) {
|
|
IErpOrderService erpOrderService = getErpService();
|
|
IErpOrderService erpOrderService = getErpService();
|
|
- FsErpConfig erpConfig = configUtil.generateStructConfigByKey("his.config", FsErpConfig.class);
|
|
|
|
FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderById(orderId);
|
|
FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderById(orderId);
|
|
- if (order.getStatus() == -2) {
|
|
|
|
|
|
+ if(order.getStatus()==-2){
|
|
return R.error("已退款");
|
|
return R.error("已退款");
|
|
}
|
|
}
|
|
- if (order.getStatus() != 1 && order.getStatus() != 2) {
|
|
|
|
|
|
+ if(order.getStatus()!=1&&order.getStatus()!=2){
|
|
return R.error("非法操作");
|
|
return R.error("非法操作");
|
|
}
|
|
}
|
|
- if (erpConfig.getErpOpen() != null && erpConfig.getErpOpen() == 1 && order.getExtendOrderId() == null) {
|
|
|
|
|
|
+ if (order.getExtendOrderId()==null){
|
|
return R.error("暂未推送至erp,请稍后再试!");
|
|
return R.error("暂未推送至erp,请稍后再试!");
|
|
}
|
|
}
|
|
- if (StringUtils.isNotEmpty(order.getExtendOrderId())) {
|
|
|
|
- ErpRefundUpdateRequest request = new ErpRefundUpdateRequest();
|
|
|
|
|
|
+ if(StringUtils.isNotEmpty(order.getExtendOrderId())){
|
|
|
|
+ ErpRefundUpdateRequest request=new ErpRefundUpdateRequest();
|
|
request.setTid(order.getOrderCode());
|
|
request.setTid(order.getOrderCode());
|
|
request.setOid(order.getOrderCode());
|
|
request.setOid(order.getOrderCode());
|
|
request.setRefund_state(1);
|
|
request.setRefund_state(1);
|
|
- //BaseResponse response=erpOrderService.refundUpdate(request);
|
|
|
|
|
|
+ BaseResponse response=erpOrderService.refundUpdateScrm(request);
|
|
// if(response.getSuccess()){
|
|
// if(response.getSuccess()){
|
|
// }
|
|
// }
|
|
// else{
|
|
// else{
|
|
@@ -2064,75 +2063,75 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
//退库存
|
|
//退库存
|
|
//获取订单下的商品
|
|
//获取订单下的商品
|
|
- List<FsStoreOrderItemVO> orderItemVOS = fsStoreOrderItemMapper.selectFsStoreOrderItemListByOrderId(order.getId());
|
|
|
|
- for (FsStoreOrderItemVO vo : orderItemVOS) {
|
|
|
|
- if (vo.getIsAfterSales() == 1) {
|
|
|
|
|
|
+ List<FsStoreOrderItemVO> orderItemVOS=fsStoreOrderItemMapper.selectFsStoreOrderItemListByOrderId(order.getId());
|
|
|
|
+ for(FsStoreOrderItemVO vo:orderItemVOS){
|
|
|
|
+ if(vo.getIsAfterSales()==1){
|
|
productService.incProductStock(vo.getNum(), vo.getProductId(), vo.getProductAttrValueId());
|
|
productService.incProductStock(vo.getNum(), vo.getProductId(), vo.getProductAttrValueId());
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
- if (order.getPayType().equals(3)) {
|
|
|
|
|
|
+ if(order.getPayType().equals(3)){
|
|
//货到付款
|
|
//货到付款
|
|
- } else {
|
|
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
//将钱退还给用户
|
|
//将钱退还给用户
|
|
- List<FsStorePaymentScrm> payments = paymentService.selectFsStorePaymentByOrderId(order.getId());
|
|
|
|
- if (payments != null) {
|
|
|
|
- String json = configService.selectConfigByKey("store.pay");
|
|
|
|
- FsPayConfigScrm fsPayConfig = JSON.parseObject(json, FsPayConfigScrm.class);
|
|
|
|
- for (FsStorePaymentScrm payment : payments) {
|
|
|
|
- if (payment.getPayMode() == null || payment.getPayMode().equals("wx")) {
|
|
|
|
|
|
+ List<FsStorePaymentScrm> payments=paymentService.selectFsStorePaymentByOrderId(order.getId());
|
|
|
|
+ if(payments!=null){
|
|
|
|
+ for(FsStorePaymentScrm payment:payments){
|
|
|
|
+ if (payment.getPayMode()==null||payment.getPayMode().equals("wx")){
|
|
WxPayConfig payConfig = new WxPayConfig();
|
|
WxPayConfig payConfig = new WxPayConfig();
|
|
|
|
+ String json = configService.selectConfigByKey("store.pay");
|
|
|
|
+ FsPayConfig fsPayConfig = JSON.parseObject(json, FsPayConfig.class);
|
|
payConfig.setAppId(fsPayConfig.getAppId());
|
|
payConfig.setAppId(fsPayConfig.getAppId());
|
|
payConfig.setMchId(fsPayConfig.getWxMchId());
|
|
payConfig.setMchId(fsPayConfig.getWxMchId());
|
|
payConfig.setMchKey(fsPayConfig.getWxMchKey());
|
|
payConfig.setMchKey(fsPayConfig.getWxMchKey());
|
|
- payConfig.setKeyPath(fsPayConfig.getKeyPath());
|
|
|
|
|
|
+ payConfig.setKeyPath(wxPayProperties.getKeyPath());
|
|
payConfig.setSubAppId(org.apache.commons.lang3.StringUtils.trimToNull(null));
|
|
payConfig.setSubAppId(org.apache.commons.lang3.StringUtils.trimToNull(null));
|
|
payConfig.setSubMchId(org.apache.commons.lang3.StringUtils.trimToNull(null));
|
|
payConfig.setSubMchId(org.apache.commons.lang3.StringUtils.trimToNull(null));
|
|
wxPayService.setConfig(payConfig);
|
|
wxPayService.setConfig(payConfig);
|
|
WxPayRefundRequest refundRequest = new WxPayRefundRequest();
|
|
WxPayRefundRequest refundRequest = new WxPayRefundRequest();
|
|
- refundRequest.setOutTradeNo("store-" + payment.getPayCode());
|
|
|
|
- refundRequest.setOutRefundNo("store-" + payment.getPayCode());
|
|
|
|
|
|
+ refundRequest.setOutTradeNo("store-"+payment.getPayCode());
|
|
|
|
+ refundRequest.setOutRefundNo("store-"+payment.getPayCode());
|
|
refundRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
|
|
refundRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
|
|
refundRequest.setRefundFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
|
|
refundRequest.setRefundFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
|
|
try {
|
|
try {
|
|
WxPayRefundResult refundResult = wxPayService.refund(refundRequest);
|
|
WxPayRefundResult refundResult = wxPayService.refund(refundRequest);
|
|
WxPayRefundQueryResult refundQueryResult = wxPayService.refundQuery("", refundResult.getOutTradeNo(), refundResult.getOutRefundNo(), refundResult.getRefundId());
|
|
WxPayRefundQueryResult refundQueryResult = wxPayService.refundQuery("", refundResult.getOutTradeNo(), refundResult.getOutRefundNo(), refundResult.getRefundId());
|
|
- if (refundQueryResult != null && refundQueryResult.getResultCode().equals("SUCCESS")) {
|
|
|
|
- FsStorePaymentScrm paymentMap = new FsStorePaymentScrm();
|
|
|
|
|
|
+ if(refundQueryResult!=null&&refundQueryResult.getResultCode().equals("SUCCESS")){
|
|
|
|
+ FsStorePaymentScrm paymentMap=new FsStorePaymentScrm();
|
|
paymentMap.setPaymentId(payment.getPaymentId());
|
|
paymentMap.setPaymentId(payment.getPaymentId());
|
|
paymentMap.setStatus(-1);
|
|
paymentMap.setStatus(-1);
|
|
paymentMap.setRefundTime(DateUtils.getNowDate());
|
|
paymentMap.setRefundTime(DateUtils.getNowDate());
|
|
paymentMap.setRefundMoney(payment.getPayMoney());
|
|
paymentMap.setRefundMoney(payment.getPayMoney());
|
|
paymentService.updateFsStorePayment(paymentMap);
|
|
paymentService.updateFsStorePayment(paymentMap);
|
|
- } else {
|
|
|
|
- return R.error("退款请求失败" + refundQueryResult.getErrCodeDes());
|
|
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.error("退款请求失败"+refundQueryResult.getErrCodeDes());
|
|
}
|
|
}
|
|
} catch (WxPayException e) {
|
|
} catch (WxPayException e) {
|
|
- return R.error("退款请求失败" + e.getErrCodeDes());
|
|
|
|
|
|
+ return R.error("退款请求失败"+e.getErrCodeDes());
|
|
}
|
|
}
|
|
- } else if (payment.getPayMode() != null && payment.getPayMode().equals("hf")) {
|
|
|
|
|
|
+ }else if (payment.getPayMode()!=null&&payment.getPayMode().equals("hf")){
|
|
V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
- request.setOrgHfSeqId(payment.getTradeNo());
|
|
|
|
- request.setHuifuId(fsPayConfig.getHuifuId());
|
|
|
|
request.setOrdAmt(payment.getPayMoney().toString());
|
|
request.setOrdAmt(payment.getPayMoney().toString());
|
|
request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
- request.setReqSeqId("refund-" + payment.getPayCode());
|
|
|
|
|
|
+ request.setReqSeqId("refund-"+payment.getPayCode());
|
|
Map<String, Object> extendInfoMap = new HashMap<>();
|
|
Map<String, Object> extendInfoMap = new HashMap<>();
|
|
extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
|
|
extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
|
|
request.setExtendInfo(extendInfoMap);
|
|
request.setExtendInfo(extendInfoMap);
|
|
HuiFuRefundResult refund = huiFuService.refund(request);
|
|
HuiFuRefundResult refund = huiFuService.refund(request);
|
|
- logger.info("退款:" + refund);
|
|
|
|
- if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
|
|
|
|
|
|
+ logger.info("退款:"+refund);
|
|
|
|
+ if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
|
|
payment.setRefundMoney(payment.getPayMoney());
|
|
payment.setRefundMoney(payment.getPayMoney());
|
|
payment.setStatus(-1);
|
|
payment.setStatus(-1);
|
|
payment.setRefundTime(new Date());
|
|
payment.setRefundTime(new Date());
|
|
paymentService.updateFsStorePayment(payment);
|
|
paymentService.updateFsStorePayment(payment);
|
|
- } else {
|
|
|
|
|
|
+ }else {
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
return R.error(refund.getResp_desc());
|
|
return R.error(refund.getResp_desc());
|
|
}
|
|
}
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ }else {
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
return R.error("支付类型异常");
|
|
return R.error("支付类型异常");
|
|
}
|
|
}
|
|
@@ -2143,7 +2142,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
}
|
|
}
|
|
orderStatusService.create(order.getId(), OrderLogEnum.REFUND_ORDER_SUCCESS.getValue(),
|
|
orderStatusService.create(order.getId(), OrderLogEnum.REFUND_ORDER_SUCCESS.getValue(),
|
|
OrderLogEnum.REFUND_ORDER_SUCCESS.getDesc());
|
|
OrderLogEnum.REFUND_ORDER_SUCCESS.getDesc());
|
|
- if (order.getTuiUserId() != null && order.getTuiUserId() > 0) {
|
|
|
|
|
|
+ if(order.getTuiUserId()!=null&&order.getTuiUserId()>0){
|
|
userService.subTuiMoney(order);
|
|
userService.subTuiMoney(order);
|
|
}
|
|
}
|
|
return R.ok();
|
|
return R.ok();
|
|
@@ -2301,6 +2300,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
if (giftCarts != null && !giftCarts.isEmpty()){
|
|
if (giftCarts != null && !giftCarts.isEmpty()){
|
|
//计算总价
|
|
//计算总价
|
|
for(FsStoreCartQueryVO vo:giftCarts){
|
|
for(FsStoreCartQueryVO vo:giftCarts){
|
|
|
|
+ logger.info("错误信息:userId = {},FsStoreCartQueryVO ={}",userId,vo);
|
|
money=money.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
|
|
money=money.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
|
|
}
|
|
}
|
|
// redisCache.setCacheObject("orderGiftCarts:"+createOrderKey, giftCarts, 24, TimeUnit.HOURS);
|
|
// redisCache.setCacheObject("orderGiftCarts:"+createOrderKey, giftCarts, 24, TimeUnit.HOURS);
|
|
@@ -2360,7 +2360,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
// redisCache.deleteObject("createOrderKey:"+createOrderKey);
|
|
// redisCache.deleteObject("createOrderKey:"+createOrderKey);
|
|
// redisCache.deleteObject("orderCarts:" + createOrderKey);
|
|
// redisCache.deleteObject("orderCarts:" + createOrderKey);
|
|
String[] idArr = key.split("-");
|
|
String[] idArr = key.split("-");
|
|
- return R.ok().put("cartIds", ids).put("companyId", idArr[0]).put("companyUserId", idArr[1]);
|
|
|
|
|
|
+ return R.ok().put("cartIds",ids).put("companyId",idArr[0]).put("companyUserId",idArr[1]).put("giftCartIds",giftIds);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|