今日内容
1.订单系统
使用mycat维护的数据库集群
开发代码
controller
service
mapper
mapper.xml
<!--ORDER对象的resultMap -->
<resultMap type="Order" id="orderRM">
<!--定义返回字段和order对象属性对应关系 -->
<id property="orderId" column="order_id"/>
<!--result的属性可以通过驼峰命名封装 -->
<!--orderItems属性 -->
<collection property="orderItems" javaType="ArrayList" ofType="OrderItem">
<id property="orderId" column="order_id"/>
</collection>
</resultMap>
<!--关联查询方式 -->
<select id="selectOrdersByUserId" parameterType="String" resultMap="orderRM">
select * from t_order inner join t_order_item
on t_order.order_id=t_order_item.order_id and
t_order.user_id=#{userId}
</select>
zuul网关
zuul.routes.order.path=/zuul-order/**
zuul.routes.order.serviceId=order service
2.3新增我的订单数据
sql多个insert同时执行
全文检索(easymall搜索功能)
1.信息爆发的时代
package cn.tedu.order.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.jt.common.pojo.Order;
import com.jt.common.vo.SysResult;
import cn.tedu.order.service.OrderService;
@RestController
@RequestMapping("/order/manage")
public class OrderController {
@Autowired
private OrderService orderService;
//查询我的订单
@RequestMapping("query/{userId}")
public List<Order> queryMyOrders(@PathVariable String userId){
return orderService.queryMyOrders(userId);
}
//新增订单
@RequestMapping("save")
public SysResult saveOrder(Order order){
try {
orderService.saveOrder(order);
return SysResult.ok();
} catch (Exception e) {
e.printStackTrace();
return SysResult.build(201, "新增订单错误", null);
}
}
//删除
@RequestMapping("delete/{orderId}")
public SysResult deleteOrder(@PathVariable String orderId){
try {
orderService.deleteOrder(orderId);
return SysResult.ok();
} catch (Exception e) {
e.printStackTrace();
return SysResult.build(201, "删除订单错误", null);
}
}
}
package cn.tedu.order.service;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jt.common.pojo.Order;
import cn.tedu.order.mapper.OrderMapper;
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
public List<Order> queryMyOrders(String userId) {
return orderMapper.selectOrdersByUserId(userId);
}
public void saveOrder(Order order) {
//不补齐数据orderId orderTime orderpaystate
//0表示未支付,1表示支付
order.setOrderId(UUID.randomUUID().toString());
order.setOrderTime(new Date());
order.setOrderPaystate(0);
orderMapper.insertOrder(order);
}
public void deleteOrder(String orderId) {
orderMapper.deleteOrderByOrderId(orderId);
}
}
package cn.tedu.order.mapper;
import java.util.List;
import com.jt.common.pojo.Order;
public interface OrderMapper {
List<Order> selectOrdersByUserId(String userId);
void insertOrder(Order order);
void deleteOrderByOrderId(String orderId);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.tedu.order.mapper.OrderMapper">
<resultMap type="Order" id="orderRM">
<!-- order表格字段数据id -->
<id property="orderId" column="order_id"/>
<!--collection 封装对多关系 -->
<collection property="orderItems" javaType="ArrayList" ofType="OrderItem" column="order_id" select="selectOrderItemByOrderId">
</collection>
</resultMap>
<select id="selectOrdersByUserId" parameterType="String" resultMap="orderRM">
select * from t_order where user_id=#{userId};
</select>
<select id="selectOrderItemByOrderId" parameterType="String" resultType="OrderItem">
select * from t_order_item where order_id=#{orderId};
</select>
<!-- mybatis 支持数据库mysql的多条insert简单插入
mycat不支持mysql多条新增简写-->
<insert id="insertOrder" parameterType="Order">
<!-- 新增主表 -->
insert into t_order (order_id,user_id,
order_money,order_paystate,order_time,
order_receiverinfo) values (
#{orderId},#{userId},
#{orderMoney},#{orderPaystate},
#{orderTime},#{orderReceiverinfo});
<!--新增子表 foreach标签循环拼接insert语句 -->
<!-- for(OrderItem item:orderItems) -->
<foreach collection="orderItems" item="item">
insert into t_order_item (
order_id,product_id,
num,product_name,product_price,
product_image)
values (#{orderId},#{item.productId},
#{item.num},#{item.productName},
#{item.productPrice},#{item.productImage});
</foreach>
</insert>
<delete id="deleteOrderByOrderId" parameterType="String">
delete from t_order where order_id=#{orderId};
delete from t_order_item where order_id=#{orderId};
</delete>
</mapper>
server.port=8103
#关闭敏感头
zuul.sensitive-headers=
#zuul微服务相关
spring.application.name=zuul-service
#路由规则 /order-test/** 转发给order-test的服务
#service-ribbon service-hi
zuul.routes.hi.path=/zuul-hi/**
zuul.routes.hi.serviceId=service-hi
zuul.routes.ribbon.path=/zuul-ribbon/**
zuul.routes.ribbon.serviceId=service-ribbon
zuul.routes.pay.path=/zuul-pay/**
zuul.routes.pay.serviceId=order-test
zuul.routes.point.path=/zuul-point/**
zuul.routes.point.serviceId=user-test
zuul.routes.product.path=/zuul-product/**
zuul.routes.product.serviceId=productservice
zuul.routes.pic.path=/zuul-pic/**
zuul.routes.pic.serviceId=imgservice
zuul.routes.user.path=/zuul-user/**
zuul.routes.user.serviceId=userservice
zuul.routes.cart.path=/zuul-cart/**
zuul.routes.cart.serviceId=cartservice
zuul.routes.order.path=/zuul-order/**
zuul.routes.order.serviceId=orderservice
#eureka server
eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka