Merge remote-tracking branch 'origin/master'

master
wayn 4 years ago
commit 4ca624379a

@ -72,6 +72,26 @@
</exclusions>
</dependency>
<dependency>
<groupId>com.wayn</groupId>
<artifactId>waynboot-message-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</exclusion>
<exclusion>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>

@ -1,48 +0,0 @@
package com.wayn.admin.framework.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DirectRabbitConfig {
//队列 起名TestDirectQueue
@Bean
public Queue TestDirectQueue() {
// durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
// exclusive:默认也是false只能被当前创建的连接使用而且当连接关闭后队列即被删除。此参考优先级高于durable
// autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
// return new Queue("TestDirectQueue",true,true,false);
//一般设置一下队列的持久化就好,其余两个就是默认false
return new Queue("TestDirectQueue",true);
}
//Direct交换机 起名TestDirectExchange
@Bean
DirectExchange TestDirectExchange() {
// return new DirectExchange("TestDirectExchange",true,true);
return new DirectExchange("TestDirectExchange",true,false);
}
//绑定 将队列和交换机绑定, 并设置用于匹配键TestDirectRouting
@Bean
Binding bindingDirect() {
return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("TestDirectRouting");
}
@Bean
DirectExchange lonelyDirectExchange() {
return new DirectExchange("lonelyDirectExchange");
}
}

@ -13,22 +13,22 @@ import org.springframework.context.annotation.Configuration;
@Configuration
public class DirectRabbitConfig {
// 队列 起名:TestDirectQueue
// 队列 起名:EmailDirectQueue
@Bean
public Queue TestDirectQueue() {
return new Queue("TestDirectQueue", true);
public Queue EmailDirectQueue() {
return new Queue("EmailDirectQueue", true);
}
// Direct交换机 起名:TestDirectExchange
// Direct交换机 起名:EmailDirectExchange
@Bean
DirectExchange TestDirectExchange() {
return new DirectExchange("TestDirectExchange");
DirectExchange EmailDirectExchange() {
return new DirectExchange("EmailDirectExchange");
}
// 绑定 将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
// 绑定 将队列和交换机绑定, 并设置用于匹配键:EmailDirectRouting
@Bean
Binding bindingTestDirect() {
return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("TestDirectRouting");
return BindingBuilder.bind(EmailDirectQueue()).to(EmailDirectExchange()).with("EmailDirectRouting");
}
@Bean

@ -18,15 +18,15 @@ import java.util.Map;
@Slf4j
@Component
@RabbitListener(queues = "TestDirectQueue")
public class TestDirectReceiver {
@RabbitListener(queues = "EmailDirectQueue")
public class EmailDirectReceiver {
@Autowired
private RestTemplate restTemplate;
@RabbitHandler
public void process(Map testMessage) {
System.out.println("TestDirectReceiver消费者收到消息 : " + testMessage.toString());
System.out.println("EmailDirectReceiver消费者收到消息 : " + testMessage.toString());
String notifyUrl = (String) testMessage.get("notifyUrl");
if (StringUtils.isEmpty(notifyUrl)) {
log.error("notifyUrl不能为空参数" + testMessage.toString());

@ -3,6 +3,7 @@ package com.wayn.mobile.api.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wayn.common.base.controller.BaseController;
import com.wayn.common.base.service.BaseElasticService;
@ -30,6 +31,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotEmpty;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
@ -121,6 +123,7 @@ public class SearchController extends BaseController {
if (goodsIdList.size() == 0) {
return R.success().add("goods", Collections.emptyList());
}
// 根据es中返回商品ID查询商品详情并保持es中的排序
List<Goods> goodsList = iGoodsService.list(new QueryWrapper<Goods>().in("id", goodsIdList)
.last("order by FIELD(id," + StringUtils.join(goodsIdList, ",") + ") asc"));
if (goodsList.size() > 0) {
@ -130,6 +133,29 @@ public class SearchController extends BaseController {
return R.success().add("goods", goodsList);
}
/**
*
* <p>
*
*
* @param keyword
* @return
*/
@GetMapping("helper")
public R helper(@NotEmpty String keyword) {
Page<Keyword> page = getPage();
Keyword newKeyword = new Keyword();
newKeyword.setKeyword(keyword);
IPage<Keyword> keywordIPage = iKeywordService.listPage(page, newKeyword);
List<Keyword> keywordList = keywordIPage.getRecords();
String[] keys = new String[keywordList.size()];
int index = 0;
for (Keyword key : keywordList) {
keys[index++] = key.getKeyword();
}
return R.success().add("keys", keys);
}
@GetMapping("hotList")
public R hotList() {
List<SearchHistory> historyList = iSearchHistoryService.selectHostList();

@ -1,5 +1,6 @@
package com.wayn.mobile.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -222,7 +223,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
Long addressId = orderDTO.getAddressId();
Address checkedAddress;
if (Objects.isNull(addressId)) {
return R.error("请选择收获地址");
throw new BusinessException("收获地址为空,请求参数" + JSON.toJSONString(orderDTO));
}
checkedAddress = iAddressService.getById(addressId);
@ -281,10 +282,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
order.setActualPrice(actualPrice);
order.setCreateTime(new Date());
if (!save(order)) {
return R.error("订单创建失败");
throw new BusinessException("订单创建失败" + JSON.toJSONString(order));
}
Long orderId = order.getId();
List<OrderGoods> orderGoodsList = new ArrayList<>();
// 添加订单商品表项
for (Cart cartGoods : checkedGoodsList) {
// 订单商品
@ -299,7 +301,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
orderGoods.setNumber(cartGoods.getNumber());
orderGoods.setSpecifications(cartGoods.getSpecifications());
orderGoods.setCreateTime(LocalDateTime.now());
iOrderGoodsService.save(orderGoods);
orderGoodsList.add(orderGoods);
}
if (!iOrderGoodsService.saveBatch(orderGoodsList)) {
throw new BusinessException("添加订单商品表项失败" + JSON.toJSONString(orderGoodsList));
}
// 删除购物车里面的商品信息

@ -1,60 +0,0 @@
package com.wayn.mobile.framework.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
// @Configuration
public class DirectRabbitConfig {
// 队列 起名TestDirectQueue
@Bean
public Queue TestDirectQueue() {
// durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
// exclusive:默认也是false只能被当前创建的连接使用而且当连接关闭后队列即被删除。此参考优先级高于durable
// autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
// return new Queue("TestDirectQueue",true,true,false);
//一般设置一下队列的持久化就好,其余两个就是默认false
return new Queue("TestDirectQueue", true);
}
@Bean
public Queue OrderDirectQueue() {
return new Queue("OrderDirectQueue", true);
}
// Direct交换机 起名TestDirectExchange
@Bean
DirectExchange TestDirectExchange() {
// return new DirectExchange("TestDirectExchange",true,true);
return new DirectExchange("TestDirectExchange", true, false);
}
@Bean
DirectExchange OrderDirectExchange() {
// return new DirectExchange("TestDirectExchange",true,true);
return new DirectExchange("OrderDirectExchange", true, false);
}
// 绑定 将队列和交换机绑定, 并设置用于匹配键TestDirectRouting
@Bean
Binding bindingTestDirect() {
return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("TestDirectRouting");
}
@Bean
Binding bindingOrderDirect() {
return BindingBuilder.bind(OrderDirectQueue()).to(OrderDirectExchange()).with("OrderDirectRouting");
}
@Bean
DirectExchange lonelyDirectExchange() {
return new DirectExchange("lonelyDirectExchange");
}
}
Loading…
Cancel
Save