From c6e5b0f26013a8cd5cd654ba30c79041d944c2ed Mon Sep 17 00:00:00 2001 From: zhangxinqi <m15726637040@163.com> Date: Fri, 24 Jun 2022 00:46:13 +0800 Subject: [PATCH] 增加退款失败,和发送短信接入 --- soss-admin/src/main/java/com/soss/web/controller/coffee/WeixinController.java | 3 +++ soss-framework/src/main/java/com/soss/framework/web/service/WeixinServiceImpl.java | 25 +++++++++++++++++++++++++ soss-system/src/main/java/com/soss/system/service/impl/OrderServiceImpl.java | 12 ++++++++---- soss-system/src/main/java/com/soss/system/utils/SendSmsUtil.java | 73 +++++++++++++++++++++++++++++++++++++++---------------------------------- 4 files changed, 75 insertions(+), 38 deletions(-) diff --git a/soss-admin/src/main/java/com/soss/web/controller/coffee/WeixinController.java b/soss-admin/src/main/java/com/soss/web/controller/coffee/WeixinController.java index 9c1fdb4..c62889d 100644 --- a/soss-admin/src/main/java/com/soss/web/controller/coffee/WeixinController.java +++ b/soss-admin/src/main/java/com/soss/web/controller/coffee/WeixinController.java @@ -8,6 +8,7 @@ import com.soss.system.mapper.OrderMapper; import com.soss.system.service.impl.AppServiceImpl; import com.soss.system.service.impl.OrderServiceImpl; import com.soss.system.service.impl.OrderTakingServiceImpl; +import com.soss.system.utils.SendSmsUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -112,4 +113,6 @@ public class WeixinController { return weixinService.refundNotify(xmlData); } + + } diff --git a/soss-framework/src/main/java/com/soss/framework/web/service/WeixinServiceImpl.java b/soss-framework/src/main/java/com/soss/framework/web/service/WeixinServiceImpl.java index 5d06aee..be0ba10 100644 --- a/soss-framework/src/main/java/com/soss/framework/web/service/WeixinServiceImpl.java +++ b/soss-framework/src/main/java/com/soss/framework/web/service/WeixinServiceImpl.java @@ -171,6 +171,7 @@ public class WeixinServiceImpl { LoginUser loginUser = new LoginUser(user,null); loginUser.setLoginTime(System.currentTimeMillis()); loginUser.setOpenId(customer.getId()); + user.setPhonenumber(customer.getPhone()); return loginUser; } @@ -524,6 +525,30 @@ public class WeixinServiceImpl { // */ // return WxPayNotifyResponse.success("退款成功!"); // } + }else{ + WxPayRefundNotifyResult.ReqInfo reqInfo = wxPayRefundNotifyResult.getReqInfo(); + String outRefundNo = reqInfo.getOutRefundNo(); + OrderRefund orderRefund = new OrderRefund(); + orderRefund.setRefundNo(outRefundNo); + List<OrderRefund> orderRefunds = orderRefundMapper.selectOrderRefundList(orderRefund); + if(orderRefunds.isEmpty()){ + log.error("找不到该退款订单:【{}】",outRefundNo); + return WxPayNotifyResponse.fail("退款失败"); + } + OrderRefund orderRefund1 = orderRefunds.get(0); + Order order = orderService.selectById(orderRefund1.getOrderId()); + if("1".equals(orderRefund1.getState())){ + orderRefund1.setState("3"); + orderRefundMapper.updateOrderRefund(orderRefund1); + OrderOperationLog orderOperationLog = new OrderOperationLog(); + orderOperationLog.setOrderId(orderRefund1.getOrderId()); + order.setState(OrderStatusConstant.refundFailed); + + orderRefund1.setOrder(order); + orderService.updateOrder(order); + orderOperationLogService.insertOrderOperationLog(orderRefund1); + return WxPayNotifyResponse.success(""); + } } return WxPayNotifyResponse.fail("回调有误!"); } diff --git a/soss-system/src/main/java/com/soss/system/service/impl/OrderServiceImpl.java b/soss-system/src/main/java/com/soss/system/service/impl/OrderServiceImpl.java index 83a7619..109aafe 100644 --- a/soss-system/src/main/java/com/soss/system/service/impl/OrderServiceImpl.java +++ b/soss-system/src/main/java/com/soss/system/service/impl/OrderServiceImpl.java @@ -24,6 +24,7 @@ import com.soss.system.jiguang.impl.JiGuangPushServiceImpl; import com.soss.system.service.IOrderService; import com.soss.system.domain.vo.OrderQuery; import com.soss.system.mapper.*; +import com.soss.system.utils.SendSmsUtil; import com.soss.system.weixin.util.SendMessageUtils; import org.aspectj.weaver.ast.Or; import org.springframework.beans.factory.annotation.Autowired; @@ -72,7 +73,8 @@ public class OrderServiceImpl implements IOrderService @Autowired private CustomerMapper customerMapper; - + @Autowired + SendSmsUtil sendSmsUtil; /** * 查询订单 @@ -137,6 +139,7 @@ public class OrderServiceImpl implements IOrderService order.setState(OrderStatusConstant.Unpaid); order.setUserId(loginUser.getOpenId()); order.setUserName(loginUser.getUsername()); + order.setUserPhone(loginUser.getUser().getPhonenumber()); order.setCreatedAt(new Date()); order.setOrderNum(getOrderNum(order.getShopId())); order.setOrderNo(getOrderNo(order.getSource())); @@ -245,11 +248,8 @@ public class OrderServiceImpl implements IOrderService order.setFinishTime(new Date()); orderOperationLogService.insertOrderOperationLog(order); jiGuangPushService.pushOrderState(order); - Customer customer = customerMapper.selectCustomerById(order.getUserId()); sendMessageUtils.sendWxMsg(order); - if(!"1".equals(customer.getAllow())){ - } } @@ -301,6 +301,10 @@ public class OrderServiceImpl implements IOrderService jiGuangPushService.pushOrderState(order); wechatMessageService.insertWechatMessage(order.getUserId(),"制作完成,您的订单已经制作完成,现在可以去取餐啦!"); sendMessageUtils.sendWxMsg(order); + Customer customer = customerMapper.selectCustomerById(order.getUserId()); + if(!"1".equals(customer.getAllow())){ + sendSmsUtil.sendSms(order.getUserPhone(),"SMS_243650242",null); + } } diff --git a/soss-system/src/main/java/com/soss/system/utils/SendSmsUtil.java b/soss-system/src/main/java/com/soss/system/utils/SendSmsUtil.java index f23e30c..08a7d53 100644 --- a/soss-system/src/main/java/com/soss/system/utils/SendSmsUtil.java +++ b/soss-system/src/main/java/com/soss/system/utils/SendSmsUtil.java @@ -36,44 +36,49 @@ public class SendSmsUtil { //phone:要发送的手机号 //templateCode:申请的短信模板 //paramsJson:模板里面的参数和对应的值,处理成json字符串直接传进来 - public Boolean sendSms(String phone, String templateCode, String paramsJson) throws ClientException { - // 超时时间 - System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); - System.setProperty("sun.net.client.defaultReadTimeout", "10000"); + public Boolean sendSms(String phone, String templateCode, String paramsJson) { + try { + // 超时时间 + System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); + System.setProperty("sun.net.client.defaultReadTimeout", "10000"); - // 初始化acsClient,暂不支持region化 - IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); - DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); - IAcsClient acsClient = new DefaultAcsClient(profile); + // 初始化acsClient,暂不支持region化 + IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); + DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); + IAcsClient acsClient = new DefaultAcsClient(profile); - // 组装请求对象-具体描述见控制台-文档部分内容 - SendSmsRequest request = new SendSmsRequest(); - // 必填:待发送手机号 - request.setPhoneNumbers(phone); - // 必填:短信签名-可在短信控制台中找到 - request.setSignName(signName); - // 必填:短信模板code-可在短信控制台中找到 - request.setTemplateCode(templateCode); - // 可选:模板中的变量替换JSON串 - request.setTemplateParam(paramsJson); + // 组装请求对象-具体描述见控制台-文档部分内容 + SendSmsRequest request = new SendSmsRequest(); + // 必填:待发送手机号 + request.setPhoneNumbers(phone); + // 必填:短信签名-可在短信控制台中找到 + request.setSignName(signName); + // 必填:短信模板code-可在短信控制台中找到 + request.setTemplateCode(templateCode); + // 可选:模板中的变量替换JSON串 + request.setTemplateParam(paramsJson); - //可能会抛出异常,try catch一下 - SendSmsResponse sendSmsResponse; - try { - //调用阿里云短信服务 - sendSmsResponse = acsClient.getAcsResponse(request); - } catch (Exception e) { - e.printStackTrace(); - log.error("调用阿里云短信服务异常!异常信息:" + e.getMessage()); - return false; - } + //可能会抛出异常,try catch一下 + SendSmsResponse sendSmsResponse; + try { + //调用阿里云短信服务 + sendSmsResponse = acsClient.getAcsResponse(request); + } catch (Exception e) { + e.printStackTrace(); + log.error("调用阿里云短信服务异常!异常信息:" + e.getMessage()); + return false; + } - Boolean result; - if (result = sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) { - log.info("短信发送成功!内容:" + sendSmsResponse.getMessage()); - } else { - log.error("短信发送失败!异常信息:" + sendSmsResponse.getMessage()); + Boolean result; + if (result = sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) { + log.info("短信发送成功!内容:" + sendSmsResponse.getMessage()); + } else { + log.error("短信发送失败!异常信息:" + sendSmsResponse.getMessage()); + } + return result; + }catch (Exception e){ + log.error("发送短信失败",e); } - return result; +return null; } } -- libgit2 0.26.0