互联网框架day14(订单 搜索)

今日内容
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值