From 7e677844715708a04e7a1b75f02253b696438348 Mon Sep 17 00:00:00 2001 From: wayn <1669738430@qq.com> Date: Sun, 22 Nov 2020 12:07:26 +0800 Subject: [PATCH] =?UTF-8?q?perf(=E6=B6=88=E6=81=AF=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF=E7=B3=BB=E7=BB=9F=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/message/EmailController.java | 32 +++++++++++++++++++ .../framework/config/SecurityConfig.java | 1 + .../admin/framework/config/WaynConfig.java | 25 +++++++++++++++ .../src/main/resources/application.yml | 2 ++ .../base/service/BaseElasticService.java | 2 +- .../shop/impl/AdminOrderServiceImpl.java | 20 ++++++------ .../src/main/java/com/wayn/gen/Gen.java | 10 +++--- .../wayn/message/reciver/DirectReceiver.java | 9 ++++-- .../src/main/resources/application.yml | 12 +++++-- .../api/service/impl/OrderServiceImpl.java | 24 +++++--------- .../framework/config/SecurityConfig.java | 2 +- .../mobile/framework/config/WaynConfig.java | 25 +++++++++++++++ .../src/main/resources/application.yml | 2 ++ 13 files changed, 127 insertions(+), 39 deletions(-) create mode 100644 waynboot-admin-api/src/main/java/com/wayn/admin/api/controller/message/EmailController.java diff --git a/waynboot-admin-api/src/main/java/com/wayn/admin/api/controller/message/EmailController.java b/waynboot-admin-api/src/main/java/com/wayn/admin/api/controller/message/EmailController.java new file mode 100644 index 0000000..16f240a --- /dev/null +++ b/waynboot-admin-api/src/main/java/com/wayn/admin/api/controller/message/EmailController.java @@ -0,0 +1,32 @@ +package com.wayn.admin.api.controller.message; + +import com.wayn.common.core.domain.tool.EmailConfig; +import com.wayn.common.core.domain.vo.SendMailVO; +import com.wayn.common.core.service.tool.IMailConfigService; +import com.wayn.common.util.R; +import com.wayn.common.util.mail.MailUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Arrays; + +@RestController +@RequestMapping("message/email") +public class EmailController { + + @Autowired + private IMailConfigService mailConfigService; + + @PostMapping + public R sendEmail(String subject, String content, String tos) { + EmailConfig emailConfig = mailConfigService.getById(1L); + SendMailVO sendMailVO = new SendMailVO(); + sendMailVO.setSubject(subject); + sendMailVO.setContent(content); + sendMailVO.setTos(Arrays.asList(tos)); + MailUtil.sendMail(emailConfig, sendMailVO, false); + return R.success(); + } +} diff --git a/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/SecurityConfig.java b/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/SecurityConfig.java index 0f0ddfa..8f9da79 100644 --- a/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/SecurityConfig.java +++ b/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/SecurityConfig.java @@ -66,6 +66,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/*/api-docs").anonymous() .antMatchers("/druid/**").anonymous() .antMatchers("/elastic/**").anonymous() + .antMatchers("/message/**").anonymous() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated().and() .headers().frameOptions().disable(); diff --git a/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/WaynConfig.java b/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/WaynConfig.java index 164b727..6fd974e 100644 --- a/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/WaynConfig.java +++ b/waynboot-admin-api/src/main/java/com/wayn/admin/framework/config/WaynConfig.java @@ -24,6 +24,15 @@ public class WaynConfig { */ private static String email; + /** + * 管理后台地址 + */ + private static String adminUrl; + /** + * 商城移动端地址 + */ + private static String mobileUrl; + public static String getUploadDir() { return uploadDir; } @@ -63,4 +72,20 @@ public class WaynConfig { public void setEmail(String email) { WaynConfig.email = email; } + + public static String getAdminUrl() { + return adminUrl; + } + + public void setAdminUrl(String adminUrl) { + WaynConfig.adminUrl = adminUrl; + } + + public static String getMobileUrl() { + return mobileUrl; + } + + public void setMobileUrl(String mobileUrl) { + WaynConfig.mobileUrl = mobileUrl; + } } diff --git a/waynboot-admin-api/src/main/resources/application.yml b/waynboot-admin-api/src/main/resources/application.yml index 434786b..0687f24 100644 --- a/waynboot-admin-api/src/main/resources/application.yml +++ b/waynboot-admin-api/src/main/resources/application.yml @@ -53,6 +53,8 @@ wayn: version: 1.1.0 email: 166738430@qq.com uploadDir: E:/wayn/upload + adminUrl: http://localhost:81/message/email + mobileUrl: http://localhost:82/message/email # 快递列表 shop: diff --git a/waynboot-common/src/main/java/com/wayn/common/base/service/BaseElasticService.java b/waynboot-common/src/main/java/com/wayn/common/base/service/BaseElasticService.java index 84ba0ea..fa98f19 100644 --- a/waynboot-common/src/main/java/com/wayn/common/base/service/BaseElasticService.java +++ b/waynboot-common/src/main/java/com/wayn/common/base/service/BaseElasticService.java @@ -244,7 +244,7 @@ public class BaseElasticService { public boolean deleteIndex(String idxName) { try { if (!this.indexExist(idxName)) { - log.error(" idxName={} 不存在,idxSql={}", idxName); + log.error(" idxName={} 不存在", idxName); return false; } AcknowledgedResponse acknowledgedResponse = restHighLevelClient.indices().delete(new DeleteIndexRequest(idxName), RequestOptions.DEFAULT); diff --git a/waynboot-common/src/main/java/com/wayn/common/core/service/shop/impl/AdminOrderServiceImpl.java b/waynboot-common/src/main/java/com/wayn/common/core/service/shop/impl/AdminOrderServiceImpl.java index 90e8ab4..fe356c3 100644 --- a/waynboot-common/src/main/java/com/wayn/common/core/service/shop/impl/AdminOrderServiceImpl.java +++ b/waynboot-common/src/main/java/com/wayn/common/core/service/shop/impl/AdminOrderServiceImpl.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -33,26 +34,23 @@ import java.util.Map; @Service public class AdminOrderServiceImpl extends ServiceImpl implements IAdminOrderService { + @Autowired + RabbitTemplate rabbitTemplate; //使用RabbitTemplate,这提供了接收/发送等等方法 @Autowired private AdminOrderMapper adminOrderMapper; - // @Autowired private WxPayService wxPayService; - @Autowired private IOrderGoodsService iOrderGoodsService; - @Autowired private IGoodsProductService iGoodsProductService; - @Autowired private IMemberService iMemberService; - @Autowired private IMailConfigService mailConfigService; - @Autowired - RabbitTemplate rabbitTemplate; //使用RabbitTemplate,这提供了接收/发送等等方法 + @Value("${wayn.adminUrl}") + private String adminUrl; @Override public IPage listPage(IPage page, Order order) { @@ -132,7 +130,7 @@ public class AdminOrderServiceImpl extends ServiceImpl // 注意订单号只发后6位 String email = iMemberService.getById(order.getUserId()).getEmail(); if (StringUtils.isNotEmpty(email)) { - sendEmail("订单已经退款", order.getOrderSn().substring(8, 14), email); + sendEmail("订单已经退款", order.getOrderSn().substring(8, 14), email, adminUrl); } // logHelper.logOrderSucceed("退款", "订单编号 " + order.getOrderSn()); return R.success(); @@ -164,8 +162,7 @@ public class AdminOrderServiceImpl extends ServiceImpl // "您的订单已经发货,快递公司 {1},快递单 {2} ,请注意查收" String email = iMemberService.getById(order.getUserId()).getEmail(); if (StringUtils.isNotEmpty(email)) { - sendEmail("您的订单已经发货,快递公司 申通,快递单 " + order.getOrderSn().substring(8, 14) + ",请注意查收", order.getOrderSn().substring(8, 14), email); - + sendEmail("您的订单已经发货,快递公司 申通,快递单 " + order.getOrderSn().substring(8, 14) + ",请注意查收", order.getOrderSn().substring(8, 14), email, adminUrl); } return R.success(); } @@ -192,11 +189,12 @@ public class AdminOrderServiceImpl extends ServiceImpl * @param content 内容 * @param tos 接收人 */ - private void sendEmail(String subject, String content, String tos) { + private void sendEmail(String subject, String content, String tos, String notifyUrl) { Map map = new HashMap<>(); map.put("subject", subject); map.put("content", content); map.put("tos", tos); + map.put("notifyUrl", notifyUrl); // 异步发送邮件 rabbitTemplate.convertAndSend("TestDirectExchange", "TestDirectRouting", map); } diff --git a/waynboot-generator/src/main/java/com/wayn/gen/Gen.java b/waynboot-generator/src/main/java/com/wayn/gen/Gen.java index 9bc51e9..80c607c 100644 --- a/waynboot-generator/src/main/java/com/wayn/gen/Gen.java +++ b/waynboot-generator/src/main/java/com/wayn/gen/Gen.java @@ -52,7 +52,7 @@ public class Gen { // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl("jdbc:mysql://localhost:3306/wayn_shop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"); + dsc.setUrl("jdbc:mysql://192.168.31.49:3306/wayn_shop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"); // dsc.setSchemaName("public"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); @@ -61,10 +61,10 @@ public class Gen { // 包配置 PackageConfig pc = new PackageConfig(); - pc.setService("service.shop"); - pc.setServiceImpl("service.shop.impl"); - pc.setMapper("mapper.shop"); - pc.setEntity("domain.shop"); + pc.setService("service.tool"); + pc.setServiceImpl("service.tool.impl"); + pc.setMapper("mapper.tool"); + pc.setEntity("domain.tool"); pc.setModuleName(""); pc.setParent("com.wayn.common.core"); mpg.setPackageInfo(pc); diff --git a/waynboot-message/src/main/java/com/wayn/message/reciver/DirectReceiver.java b/waynboot-message/src/main/java/com/wayn/message/reciver/DirectReceiver.java index 9d9b859..7f1c607 100644 --- a/waynboot-message/src/main/java/com/wayn/message/reciver/DirectReceiver.java +++ b/waynboot-message/src/main/java/com/wayn/message/reciver/DirectReceiver.java @@ -1,6 +1,7 @@ package com.wayn.message.reciver; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; @@ -26,6 +27,11 @@ public class DirectReceiver { @RabbitHandler public void process(Map testMessage) { System.out.println("DirectReceiver消费者收到消息 : " + testMessage.toString()); + String notifyUrl = (String) testMessage.get("notifyUrl"); + if (StringUtils.isEmpty(notifyUrl)) { + log.error("notifyUrl不能为空!,参数:" + testMessage.toString()); + return; + } HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.MULTIPART_FORM_DATA); MultiValueMap multiValueMap = new LinkedMultiValueMap(); @@ -33,9 +39,8 @@ public class DirectReceiver { multiValueMap.add("content", testMessage.get("content")); multiValueMap.add("tos", testMessage.get("tos")); HttpEntity> request = new HttpEntity<>(multiValueMap, headers); - String url = "http://localhost:82/message/email"; try { - ResponseEntity response = restTemplate.postForEntity(url, request, String.class); + ResponseEntity response = restTemplate.postForEntity(notifyUrl, request, String.class); if (response.getStatusCode().value() != 200) { throw new Exception(testMessage.toString() + " 邮件发送失败"); } diff --git a/waynboot-message/src/main/resources/application.yml b/waynboot-message/src/main/resources/application.yml index f5d8542..e356a9f 100644 --- a/waynboot-message/src/main/resources/application.yml +++ b/waynboot-message/src/main/resources/application.yml @@ -4,7 +4,13 @@ server: spring: #配置rabbitMq 服务器 rabbitmq: - host: 127.0.0.1 + host: 182.254.214.165 port: 5672 - username: guest - password: guest + username: admin + password: admin + +# 日志配置 +logging: + level: + com.wayn: debug + org.springframework: info \ No newline at end of file diff --git a/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/impl/OrderServiceImpl.java b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/impl/OrderServiceImpl.java index 8e10068..c6ded88 100644 --- a/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/impl/OrderServiceImpl.java +++ b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/impl/OrderServiceImpl.java @@ -32,6 +32,7 @@ import com.wayn.mobile.api.service.ICartService; import com.wayn.mobile.api.service.IOrderService; import com.wayn.mobile.api.task.CancelOrderTask; import com.wayn.mobile.api.util.OrderSnGenUtil; +import com.wayn.mobile.framework.config.WaynConfig; import com.wayn.mobile.framework.redis.RedisCache; import com.wayn.mobile.framework.security.util.SecurityUtils; import lombok.extern.slf4j.Slf4j; @@ -62,39 +63,29 @@ import java.util.*; @Service public class OrderServiceImpl extends ServiceImpl implements IOrderService { + @Autowired + RabbitTemplate rabbitTemplate; //使用RabbitTemplate,这提供了接收/发送等等方法 @Autowired private RedisCache redisCache; - @Autowired private IAddressService iAddressService; - @Autowired private ICartService iCartService; - @Autowired private IOrderGoodsService iOrderGoodsService; - @Autowired private IGoodsProductService iGoodsProductService; - @Autowired private WxPayService wxPayService; - @Autowired private IMemberService iMemberService; - @Autowired private IMailConfigService mailConfigService; - @Autowired private OrderMapper orderMapper; - @Autowired private TaskService taskService; - @Autowired - RabbitTemplate rabbitTemplate; //使用RabbitTemplate,这提供了接收/发送等等方法 - @Override public R selectListPage(IPage page, Integer showType) { List orderStatus = OrderUtil.orderStatus(showType); @@ -411,7 +402,7 @@ public class OrderServiceImpl extends ServiceImpl implements // 订单支付成功以后,会发送短信给用户,以及发送邮件给管理员 String email = iMemberService.getById(order.getUserId()).getEmail(); if (StringUtils.isNotBlank(email)) { - sendEmail("新订单通知", order.toString(), email); + sendEmail("新订单通知", order.toString(), email, WaynConfig.getMobileUrl()); } // 删除redis中订单id redisCache.deleteZsetObject("order_zset", order.getId()); @@ -443,7 +434,7 @@ public class OrderServiceImpl extends ServiceImpl implements // 订单支付成功以后,会发送短信给用户,以及发送邮件给管理员 String email = iMemberService.getById(order.getUserId()).getEmail(); if (StringUtils.isNotBlank(email)) { - sendEmail("新订单通知", order.toString(), email); + sendEmail("新订单通知", order.toString(), email, WaynConfig.getMobileUrl()); } // 删除redis中订单id @@ -511,7 +502,7 @@ public class OrderServiceImpl extends ServiceImpl implements String email = iMemberService.getById(order.getUserId()).getEmail(); if (StringUtils.isNotEmpty(email)) { if (StringUtils.isNotBlank(email)) { - sendEmail("订单正在退款", order.toString(), email); + sendEmail("订单正在退款", order.toString(), email, WaynConfig.getMobileUrl()); } } @@ -582,11 +573,12 @@ public class OrderServiceImpl extends ServiceImpl implements * @param content 内容 * @param tos 接收人 */ - private void sendEmail(String subject, String content, String tos) { + private void sendEmail(String subject, String content, String tos, String notifyUrl) { Map map = new HashMap<>(); map.put("subject", subject); map.put("content", content); map.put("tos", tos); + map.put("notifyUrl", notifyUrl); // 异步发送邮件 rabbitTemplate.convertAndSend("TestDirectExchange", "TestDirectRouting", map); } diff --git a/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/SecurityConfig.java b/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/SecurityConfig.java index 7795d06..36f34c0 100644 --- a/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/SecurityConfig.java +++ b/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/SecurityConfig.java @@ -65,7 +65,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/webjars/**").anonymous() .antMatchers("/*/api-docs").anonymous() .antMatchers("/druid/**").anonymous() - .antMatchers("/message/email/**").anonymous() + .antMatchers("/message/**").anonymous() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated().and() .headers().frameOptions().disable(); diff --git a/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/WaynConfig.java b/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/WaynConfig.java index f4cc779..369a2f7 100644 --- a/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/WaynConfig.java +++ b/waynboot-mobile-api/src/main/java/com/wayn/mobile/framework/config/WaynConfig.java @@ -24,6 +24,15 @@ public class WaynConfig { */ private static String email; + /** + * 管理后台地址 + */ + private static String adminUrl; + /** + * 商城移动端地址 + */ + private static String mobileUrl; + public static String getUploadDir() { return uploadDir; } @@ -63,4 +72,20 @@ public class WaynConfig { public void setEmail(String email) { WaynConfig.email = email; } + + public static String getAdminUrl() { + return adminUrl; + } + + public void setAdminUrl(String adminUrl) { + WaynConfig.adminUrl = adminUrl; + } + + public static String getMobileUrl() { + return mobileUrl; + } + + public void setMobileUrl(String mobileUrl) { + WaynConfig.mobileUrl = mobileUrl; + } } diff --git a/waynboot-mobile-api/src/main/resources/application.yml b/waynboot-mobile-api/src/main/resources/application.yml index 48a2224..fcf73fe 100644 --- a/waynboot-mobile-api/src/main/resources/application.yml +++ b/waynboot-mobile-api/src/main/resources/application.yml @@ -50,6 +50,8 @@ wayn: version: 1.1.0 email: 166738430@qq.com uploadDir: E:/wayn/upload + adminUrl: http://localhost:81/message/email + mobileUrl: http://localhost:82/message/email # wx支付配置 shop: