1,由前端发起请求
uni.request({
url: this.domainUrl+"/zyymall/queryorderlist/"+this.cmsSiteId+"/"+this.VolId+"/"+this.orderStatus,
method: 'GET',
data:{
"VolId":this.VolId,
"orderStatus":this.orderStatus,
},
header: {
"Content-Type": this.contenttype,
"volauth":this.volauth
},
success: (res) => {
console.log(res);
if (res.statusCode == 200) {
this.orderList=res.data.orders;
console.log(this.orderList);
uni.hideLoading();
}
}
});
2,根据路径,Springboot会加载相应的Controller进行拦截
@GetMapping("/queryorderlist/{cmsSiteId}/{volId}/{orderStatus}")
public ResponseEntity<?> queryOrderList(@PathVariable Integer cmsSiteId,@PathVariable Integer volId,@PathVariable Integer orderStatus,
@RequestParam Map<String,Integer> params){
Map<String, ?>cmsSite = CmsSiteCheckUtil.querySiteInfo(cmsSiteId);
if (cmsSite.get("status") != null) {
return ResponseEntity.ok(cmsSite);
}
params.put("volId", volId);
params.put("orderStatus", orderStatus);
return ResponseEntity.ok(mallOrderService.queryOrderList(params));
}
3,拦截处理后,跳转到相应的Service处理层
public interface MallOrderService {
/**
* 查询订单列表
* @param volId 志愿者ID,orderStatus 订单状态
* @return 返回成功或失败
*/
Map<String, Object> queryOrderList(Map<String, Integer> params);
}
4,跳转到ServiceImplement(service实现类)
@Service
public class MallOrderServiceImpl implements MallOrderService {
@Autowired
private MallOrderDao mallOrderDao;`
@Override
public Map<String, Object> queryOrderList(Map<String, Integer> params) {
Map<String,Object> resultMap = Maps.newConcurrentMap();
//根据用户ID查询用户订单
List<MallOrder> orderList = mallOrderDao.queryOrderListByUid(params);
if (orderList==null || orderList.isEmpty()) {
resultMap.put("status", ResponseConstants.HTTP_RESPONSE_MALL_ORDER_NULL_FAIL);
resultMap.put("msg", ResponseConstants.HTTP_RESPONSE_MALL_ORDER_NULL_FAIL_DESC);
return resultMap;
}else {
try {
for (MallOrder mallOrder : orderList) {
List<MallOrderGoods> goodsList = mallOrderDao.queryGoodsListByOrderId(mallOrder.getOrderId());
mallOrder.setMallOrderGoods(goodsList);
}
resultMap.put("orders",orderList);
} catch (Exception e) {
e.printStackTrace();
resultMap.put("status", ResponseConstants.HTTP_RESPONSE_FAIL_REGEDIT);
resultMap.put("msg", ResponseConstants.HTTP_RESPONSE_FAIL_REGEDIT_DESC);
return resultMap;
}
resultMap.put("status", ResponseConstants.HTTP_RESPONSE_SUCCESS);
resultMap.put("msg",ResponseConstants.HTTP_RESPONSE_SUCCESS_DESC);
return resultMap;
}
}
}
5,在执行serviceimplement时会加载Dao层,操作数据库
public interface MallOrderDao {
//根据志愿者ID查询订单
List<MallOrder> queryOrderListByUid(Map<String, Integer> params);
}
6,再跳到Dao层实现类
@Repository
public class MallOrderDaoImpl implements MallOrderDao {
@Override
public List<MallOrder> queryOrderListByUid(Map<String, Integer> params) {
return mallOrderMapper.queryOrderListByUid(params);
}
}
7,执行会跳转到mapper层
public interface MallOrderMapper {
List<MallOrder> queryOrderListByUid(Map<String, Integer> params);
}
8,然后MallMapper会继续找对应的mapper.xml配置文件
<?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="org.zyy.datasource.mall.mapper.MallOrderMapper">
<resultMap id="BaseResultMap" type="org.zyy.datasource.mall.entity.MallOrder">
<!-- 快递号 -->
<result column="express_no" jdbcType="VARCHAR" property="expressNo" />
<!-- 下单时间 -->
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<select id="queryOrderListByUid" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select * from vol_demand.mall_order
where vol_id =#{volId,jdbcType=INTEGER}
<if test="orderStatus != 3">
and order_status =#{orderStatus,jdbcType=INTEGER}
</if>
</select>
</mapper>
之后便会跳转到第4步继续执行,执行完毕后会将结果返回到第1步,然后
ResponseEntity.ok(mallOrderService.queryOrderList(params));
便会将数据以JSON的形式返回到页面,同时返回状态码,正常则会返回200,便会回到步骤1中查询判断。
success: (res) => {
console.log(res);
if (res.statusCode == 200) {
this.orderList=res.data.orders;
console.log(this.orderList);
uni.hideLoading();
}
}
如果判断正常。前端根据数据遍历显示
<!-- 商品列表 -->
<view class="orderlist">
<view v-for="(item,index) in orderList" class="ordermenu" @tap="redirectToDetail(item)">
<view>
<text style="font-size: 30rpx;margin-top: 12rpx;margin-left: 12rpx;">订单详情</text>
<text class="orderstatus" v-if="item.orderStatus==-3">已拒收</text>
<text class="orderstatus" v-if="item.orderStatus==-2">待付款</text>
<text class="orderstatus" v-if="item.orderStatus==0">待发货</text>
<text class="orderstatus" v-if="item.orderStatus==1">配送中</text>
<text class="orderstatus" v-if="item.orderStatus==2">已收货</text>
</view>
<view class="ptp" v-for="(goodsItem,goodsIndex) in item.mallOrderGoods">
<view class="shopname" >
<text>{{goodsItem.orgName}}</text>
<!-- <text class="orderstatus">{{orderStatusMap['goodsItem.orderStatus']}}</text> -->
</view>
<image :src="goodsItem.goodsTitleImg" mode="scaleToFill" class="image-wrapper"></image>
<view class="goodsprice1" >
¥{{goodsItem.goodsPrice}}
<text class="goodsnum1" >×{{goodsItem.goodsNum}}</text>
</view>
<text class="titleclamp">{{goodsItem.goodsTitle}}</text>
</view>
<view class="itemmoney" style="">合计
<text class="texthournum">¥{{item.goodsMoney}}</text>
</view>
</view>
</view>
这就是我理解的一个请求的完整流程