商城项目订单结算页修改收货地址接口编写和功能完善-----商城项目

#哪个编程工具让你的工作效率翻倍?#
package com.alatus.mall.member.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.alatus.common.utils.PageUtils;
import com.alatus.mall.member.entity.MemberReceiveAddressEntity;

import java.util.List;
import java.util.Map;

/**
 * 会员收货地址
 *
 * @author alatus
 * @email 1571345941@qq.com
 * @date 2024-03-12 13:40:22
 */
public interface MemberReceiveAddressService extends IService<MemberReceiveAddressEntity> {

    PageUtils queryPage(Map<String, Object> params);

    List<MemberReceiveAddressEntity> getAddress(Long memberId);

    void changeAddrChecked(Long memberId,Long addrId);
}

package com.alatus.mall.member.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.alatus.common.utils.PageUtils;
import com.alatus.mall.member.entity.MemberReceiveAddressEntity;

import java.util.List;
import java.util.Map;

/**
 * 会员收货地址
 *
 * @author alatus
 * @email 1571345941@qq.com
 * @date 2024-03-12 13:40:22
 */
public interface MemberReceiveAddressService extends IService<MemberReceiveAddressEntity> {

    PageUtils queryPage(Map<String, Object> params);

    List<MemberReceiveAddressEntity> getAddress(Long memberId);

    void changeAddrChecked(Long memberId,Long addrId);
}

package com.alatus.mall.member.app;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import com.alatus.mall.member.entity.MemberReceiveAddressEntity;
import com.alatus.mall.member.service.MemberReceiveAddressService;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.R;



/**
 * 会员收货地址
 *
 * @author alatus
 * @email 1571345941@qq.com
 * @date 2024-03-12 13:40:22
 */
@RestController
@RequestMapping("member/memberreceiveaddress")
public class MemberReceiveAddressController {
    @Autowired
    private MemberReceiveAddressService memberReceiveAddressService;
    /**
     * 获取用户收货地址
     */
    @GetMapping("/{memberId}/addresses")
    public List<MemberReceiveAddressEntity> getAddress(@PathVariable("memberId") Long memberId){
        return memberReceiveAddressService.getAddress(memberId);
    }
    /**
     * 修改默认收货地址
     */
    @GetMapping("/changeAddr/{memberId}/{addrId}")
    public R changeAddr(@PathVariable("memberId") Long memberId,@PathVariable("addrId") Long addrId){
        memberReceiveAddressService.changeAddrChecked(memberId,addrId);
        return R.ok();
    }
    /**
     * 列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params){
        PageUtils page = memberReceiveAddressService.queryPage(params);
        return R.ok().put("page", page);
    }


    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
		MemberReceiveAddressEntity memberReceiveAddress = memberReceiveAddressService.getById(id);

        return R.ok().put("memberReceiveAddress", memberReceiveAddress);
    }

    /**
     * 保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody MemberReceiveAddressEntity memberReceiveAddress){
		memberReceiveAddressService.save(memberReceiveAddress);

        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody MemberReceiveAddressEntity memberReceiveAddress){
		memberReceiveAddressService.updateById(memberReceiveAddress);

        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
		memberReceiveAddressService.removeByIds(Arrays.asList(ids));

        return R.ok();
    }

}

 

package com.alatus.mall.member.app;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import com.alatus.mall.member.entity.MemberReceiveAddressEntity;
import com.alatus.mall.member.service.MemberReceiveAddressService;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.R;



/**
 * 会员收货地址
 *
 * @author alatus
 * @email 1571345941@qq.com
 * @date 2024-03-12 13:40:22
 */
@RestController
@RequestMapping("member/memberreceiveaddress")
public class MemberReceiveAddressController {
    @Autowired
    private MemberReceiveAddressService memberReceiveAddressService;
    /**
     * 获取用户收货地址
     */
    @GetMapping("/{memberId}/addresses")
    public List<MemberReceiveAddressEntity> getAddress(@PathVariable("memberId") Long memberId){
        return memberReceiveAddressService.getAddress(memberId);
    }
    /**
     * 修改默认收货地址
     */
    @GetMapping("/changeAddr/{memberId}/{addrId}")
    public R changeAddr(@PathVariable("memberId") Long memberId,@PathVariable("addrId") Long addrId){
        memberReceiveAddressService.changeAddrChecked(memberId,addrId);
        return R.ok();
    }
    /**
     * 列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params){
        PageUtils page = memberReceiveAddressService.queryPage(params);
        return R.ok().put("page", page);
    }


    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
       MemberReceiveAddressEntity memberReceiveAddress = memberReceiveAddressService.getById(id);

        return R.ok().put("memberReceiveAddress", memberReceiveAddress);
    }

    /**
     * 保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody MemberReceiveAddressEntity memberReceiveAddress){
       memberReceiveAddressService.save(memberReceiveAddress);

        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody MemberReceiveAddressEntity memberReceiveAddress){
       memberReceiveAddressService.updateById(memberReceiveAddress);

        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
       memberReceiveAddressService.removeByIds(Arrays.asList(ids));

        return R.ok();
    }

}
package com.alatus.mall.order.service;

import com.alatus.mall.order.vo.OrderConfirmVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.alatus.common.utils.PageUtils;
import com.alatus.mall.order.entity.OrderEntity;
import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * 订单
 *
 * @author alatus
 * @email 1571345941@qq.com
 * @date 2024-03-12 13:50:51
 */
public interface OrderService extends IService<OrderEntity> {

    PageUtils queryPage(Map<String, Object> params);

    OrderConfirmVo confirmOrder() throws ExecutionException, InterruptedException;
    OrderConfirmVo confirmOrder(Long addrId) throws ExecutionException, InterruptedException;
}

package com.alatus.mall.order.service;

import com.alatus.mall.order.vo.OrderConfirmVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.alatus.common.utils.PageUtils;
import com.alatus.mall.order.entity.OrderEntity;
import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * 订单
 *
 * @author alatus
 * @email 1571345941@qq.com
 * @date 2024-03-12 13:50:51
 */
public interface OrderService extends IService<OrderEntity> {

    PageUtils queryPage(Map<String, Object> params);

    OrderConfirmVo confirmOrder() throws ExecutionException, InterruptedException;
    OrderConfirmVo confirmOrder(Long addrId) throws ExecutionException, InterruptedException;
}

package com.alatus.mall.product.feign;

import com.alatus.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;

@FeignClient("Mall-ware")
public interface WareFeignService {
    @PostMapping("/ware/waresku/hasstock")
    R getSkuHasStock(@RequestBody List<Long> skuIds);
}
package com.alatus.mall.product.feign;

import com.alatus.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;

@FeignClient("Mall-ware")
public interface WareFeignService {
    @PostMapping("/ware/waresku/hasstock")
    R getSkuHasStock(@RequestBody List<Long> skuIds);
}
package com.alatus.mall.order.web;

import com.alatus.mall.order.service.OrderService;
import com.alatus.mall.order.vo.OrderConfirmVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.concurrent.ExecutionException;

@Controller
public class OrderWebController {
    @Autowired
    private OrderService orderService;
    @GetMapping("/toTrade")
    public String toTrade(Model model) throws ExecutionException, InterruptedException {
        OrderConfirmVo confirmVo = orderService.confirmOrder();
        model.addAttribute("orderConfirmData",confirmVo);
        return "confirm";
    }
    @GetMapping("/changeAddr/{addrId}")
    public String changeAddr(@PathVariable("addrId") Long addrId, Model model) throws ExecutionException, InterruptedException {
        OrderConfirmVo confirmVo = orderService.confirmOrder(addrId);
        model.addAttribute("orderConfirmData",confirmVo);
        return "confirm";
    }
}
package com.alatus.mall.order.web;

import com.alatus.mall.order.service.OrderService;
import com.alatus.mall.order.vo.OrderConfirmVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.concurrent.ExecutionException;

@Controller
public class OrderWebController {
    @Autowired
    private OrderService orderService;
    @GetMapping("/toTrade")
    public String toTrade(Model model) throws ExecutionException, InterruptedException {
        OrderConfirmVo confirmVo = orderService.confirmOrder();
        model.addAttribute("orderConfirmData",confirmVo);
        return "confirm";
    }
    @GetMapping("/changeAddr/{addrId}")
    public String changeAddr(@PathVariable("addrId") Long addrId, Model model) throws ExecutionException, InterruptedException {
        OrderConfirmVo confirmVo = orderService.confirmOrder(addrId);
        model.addAttribute("orderConfirmData",confirmVo);
        return "confirm";
    }
}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
	<head>
		<meta charset="utf-8" />
		<script src="/static/order/confirm/js/jquery-3.1.1.min.js"></script>
		<link rel="stylesheet" type="text/css" href="/static/order/confirm/css/JD2.css" />
		<title></title>
	</head>
	<body>
		<!--顶部-->
		<header>
			<div class="header">
				<ul class="header-left">
					<li>
						<img src="/static/order/confirm/img/header_1.png"/>
						<a href="/static/order/confirm/">谷粒学院首页</a>
					</li>
					<li class="header-l-2">
						<i class="fa fa-map-marker" style="color: #5C5452;"></i>
						<a href="/static/order/confirm/">北京</a>
						<div class="header-l-d">

							<ul>
								<li><a href="/static/order/confirm/" style="background: red; color: white;">北京</a></li>
								<li><a href="/static/order/confirm/">山西</a></li>
								<li><a href="/static/order/confirm/">内蒙古</a></li>
								<li><a href="/static/order/confirm/">福建</a></li>
								<li><a href="/static/order/confirm/">江西</a></li>
								<li><a href="/static/order/confirm/">西藏</a></li>
								<li><a href="/static/order/confirm/">新疆</a></li>
							</ul>
							<ul>
								<li><a href="/static/order/confirm/">上海</a></li>
								<li><a href="/static/order/confirm/">河南</a></li>
								<li><a href="/static/order/confirm/">江苏</a></li>
								<li><a href="/static/order/confirm/">湖北</a></li>
								<li><a href="/static/order/confirm/">四川</a></li>
								<li><a href="/static/order/confirm/">陕西</a></li>
								<li><a href="/static/order/confirm/">港澳</a></li>
							</ul>
							<ul>
								<li><a href="/static/order/confirm/">天津</a></li>
								<li><a href="/static/order/confirm/">辽宁</a></li>
								<li><a href="/static/order/confirm/">山东</a></li>
								<li><a href="/static/order/confirm/">湖南</a></li>
								<li><a href="/static/order/confirm/">海南</a></li>
								<li><a href="/static/order/confirm/">甘肃</a></li>
								<li><a href="/static/order/confirm/">台湾</a></li>
							</ul>
							<ul>
								<li><a href="/static/order/confirm/">重庆</a></li>
								<li><a href="/static/order/confirm/">吉林</a></li>
								<li><a href="/static/order/confirm/">安徽</a></li>
								<li><a href="/static/order/confirm/">广东</a></li>
								<li><a href="/static/order/confirm/">贵州</a></li>
								<li><a href="/static/order/confirm/">青岛</a></li>
								<li><a href="/static/order/confirm/">钓鱼岛</a></li>
							</ul>
							<ul>
								<li><a href="/static/order/confirm/">河北</a></li>
								<li><a href="/static/order/confirm/">黑龙江</a></li>
								<li><a href="/static/order/confirm/">浙江</a></li>
								<li><a href="/static/order/confirm/">广西</a></li>
								<li><a href="/static/order/confirm/">云南</a></li>
								<li><a href="/static/order/confirm/">宁夏</a></li>
								<li><a href="/static/order/confirm/">海外</a></li>
							</ul>


						</div>
					</li>

				</ul>
				<ul class="header-right">
					<li>[[${session.get('loginUser').getNickname()}]]<img src="/static/order/confirm/img/03.png" style="margin-bottom: 0px;margin-left3: 3px;" /><img src="/static/order/confirm/img/06.png" /></li>
					<li>|</li>
					<li class="spacer"></li>
					<li><a href="/static/order/confirm/">我的订单</a></li>
					<li class="spacer"></li>
					<li>
						<a href="/static/order/confirm/">我的谷粒学院</a>
						<i class="fa fa-angle-down"></i>
						<div class="header-r-1 aa header-r-11">
							<div>
								<ol>
									<dd><a href="/static/order/confirm/">待处理订单</a></dd>
									<dd><a href="/static/order/confirm/">返修退换货</a></dd>
									<dd><a href="/static/order/confirm/">降价商品</a></dd>

								</ol>
								<ol>
									<dd><a href="/static/order/confirm/">消息</a></dd>
									<dd><a href="/static/order/confirm/">我的问答</a></dd>
									<dd><a href="/static/order/confirm/">我的关注</a></dd>

								</ol>

							</div>
							<div>
								<ol>
									<dd><a href="/static/order/confirm/">我的京豆</a></dd>
									<dd><a href="/static/order/confirm/">我的白条</a></dd>
								</ol>
								<ol>
									<dd><a href="/static/order/confirm/">我的优惠劵</a></dd>
									<dd><a href="/static/order/confirm/">我的理财</a></dd>
								</ol>

							</div>
							<div>
								<h4><a href="/static/order/confirm/">我的足迹</a><a href="/static/order/confirm/">更多 ></a> </h4>
								<a href="/static/order/confirm/"><img src="/static/order/confirm/image/59ae02fcN529cc4a1.jpg"/></a>
								<a href="/static/order/confirm/"><img src="/static/order/confirm/image/59ce706fN6f3f2a4a.jpg"/></a>
								<a href="/static/order/confirm/"><img src="/static/order/confirm/image/57b191f2N15993cbb.jpg"/></a>
								<a href="/static/order/confirm/"><img src="/static/order/confirm/image/58ff269fN7b7e087b.jpg"/></a>
							</div>
						</div>

					</li>
					<li class="spacer"></li>
					<li><a href="/static/order/confirm/">谷粒学院会员</a></li>
					<li class="spacer"></li>
					<li><a href="/static/order/confirm/">企业采购</a></li>
					<li class="spacer"></li>
					<li>
						<a href="/static/order/confirm/">客户服务</a>
						<i class="fa fa-angle-down"></i>
						<div class="header-r-1 aa header-r-2">
							<div>
								<h4>客户</h4>
								<ol>

									<dd><a href="/static/order/confirm/">帮助中心</a></dd>
									<dd><a href="/static/order/confirm/">在线客服</a></dd>
									<dd><a href="/static/order/confirm/">电话客服</a></dd>
									<dd><a href="/static/order/confirm/">金融咨询</a></dd>
								</ol>
								<ol>

									<dd><a href="/static/order/confirm/">售后服务</a></dd>
									<dd><a href="/static/order/confirm/">意见建议</a></dd>
									<dd><a href="/static/order/confirm/">客服邮箱</a></dd>
									<dd><a href="/static/order/confirm/">售全球客服</a></dd>
								</ol>
							</div>
							<div>
								<h4>商户</h4>
								<ol>

									<dd><a href="/static/order/confirm/">合作招商</a></dd>
									<dd><a href="/static/order/confirm/">商家后台</a></dd>
									<dd><a href="/static/order/confirm/">商家帮助</a></dd>
								</ol>
								<ol>

									<dd><a href="/static/order/confirm/">学习中心</a></dd>
									<dd><a href="/static/order/confirm/">京麦工作台</a></dd>
									<dd><a href="/static/order/confirm/">规则平台</a></dd>
								</ol>
							</div>
						</div>

					</li>
					<li class="spacer"></li>
					<li>
						<a href="/static/order/confirm/">网址导航</a>
						<i class="fa fa-angle-down"></i>
						<div class="header-r-1 aa header-r-3">
							<div>
								<h4>特色主题</h4>
								<ol>
									<dd><a href="/static/order/confirm/">谷粒学院试用</a></dd>
									<dd><a href="/static/order/confirm/">国际站</a></dd>
									<dd><a href="/static/order/confirm/">买什么</a></dd>
									<dd><a href="/static/order/confirm/">0元评测</a></dd>
									<dd><a href="/static/order/confirm/">优惠劵</a></dd>
									<dd><a href="/static/order/confirm/">印尼站</a></dd>
									<dd><a href="/static/order/confirm/">陪伴计划</a></dd>
								</ol>
								<ol>
									<dd><a href="/static/order/confirm/">谷粒学院金融</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院会员</a></dd>
									<dd><a href="/static/order/confirm/">俄语站</a></dd>
									<dd><a href="/static/order/confirm/">定期送</a></dd>
									<dd><a href="/static/order/confirm/">秒杀</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院金融科技</a></dd>
									<dd><a href="/static/order/confirm/">出海招商</a></dd>
								</ol>
								<ol>
									<dd><a href="/static/order/confirm/">全球售</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院预售</a></dd>
									<dd><a href="/static/order/confirm/">装机大师</a></dd>
									<dd><a href="/static/order/confirm/">港澳售</a></dd>
									<dd><a href="/static/order/confirm/">闪购</a></dd>
									<dd><a href="/static/order/confirm/">In货推荐</a></dd>
								</ol>

							</div>

							<div>
								<h4>行业推荐</h4>
								<ol>
									<dd><a href="/static/order/confirm/">手机</a></dd>
									<dd><a href="/static/order/confirm/">玩3C</a></dd>
									<dd><a href="/static/order/confirm/">家用电器</a></dd>
									<dd><a href="/static/order/confirm/">服装城</a></dd>
									<dd><a href="/static/order/confirm/">家装城</a></dd>
									<dd><a href="/static/order/confirm/">食品</a></dd>
									<dd><a href="/static/order/confirm/">农资频道</a></dd>
									<dd><a href="/static/order/confirm/">图书</a></dd>

								</ol>
								<ol>
									<dd><a href="/static/order/confirm/">智能数码</a></dd>
									<dd><a href="/static/order/confirm/">电脑办公</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院智能</a></dd>
									<dd><a href="/static/order/confirm/">美妆馆</a></dd>
									<dd><a href="/static/order/confirm/">母婴</a></dd>
									<dd><a href="/static/order/confirm/">运动户外</a></dd>
									<dd><a href="/static/order/confirm/">整车</a></dd>
								</ol>
							</div>


							<div>
								<h4>生活服务</h4>
								<ol>
									<dd><a href="/static/order/confirm/">谷粒学院众筹</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院金融App</a></dd>
									<dd><a href="/static/order/confirm/">理财</a></dd>
									<dd><a href="/static/order/confirm/">话费</a></dd>
									<dd><a href="/static/order/confirm/">彩票</a></dd>
									<dd><a href="/static/order/confirm/">机票酒店</a></dd>
									<dd><a href="/static/order/confirm/">酒店到家</a></dd>
									<dd><a href="/static/order/confirm/">游戏</a></dd>

								</ol>
								<ol>
									<dd><a href="/static/order/confirm/">白条</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院小金库</a></dd>
									<dd><a href="/static/order/confirm/">智能家电</a></dd>
									<dd><a href="/static/order/confirm/">水电煤</a></dd>
									<dd><a href="/static/order/confirm/">旅行</a></dd>
									<dd><a href="/static/order/confirm/">电影票</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院众测</a></dd>
								</ol>
							</div>




							<div>
								<h4>更多精选</h4>
								<ol>
									<dd><a href="/static/order/confirm/">合作招商</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院E卡</a></dd>
									<dd><a href="/static/order/confirm/">服务市场</a></dd>
									<dd><a href="/static/order/confirm/">乡村招募</a></dd>
									<dd><a href="/static/order/confirm/">京友邦</a></dd>
									<dd><a href="/static/order/confirm/">智能社区</a></dd>
									<dd><a href="/static/order/confirm/">知识产权维权</a></dd>


								</ol>
								<ol>
									<dd><a href="/static/order/confirm/">谷粒学院通信</a></dd>
									<dd><a href="/static/order/confirm/">企业采购</a></dd>
									<dd><a href="/static/order/confirm/">办公生活馆</a></dd>
									<dd><a href="/static/order/confirm/">校园加盟</a></dd>
									<dd><a href="/static/order/confirm/">谷粒学院社区</a></dd>
									<dd><a href="/static/order/confirm/">游戏社区</a></dd>
								</ol>
							</div>
						</div>

					</li>
					<li class="spacer"></li>
					<li class="header-r-4"><a href="/static/order/confirm/">手机谷粒学院</a>
						<div class="aa h-r-1">

							<div>
								<div class="h-r-1img">
									<img src="/static/order/confirm/img/59a51bf6Nb8e478cc.png"/>
								</div>
								<h4><a href="/static/order/confirm/">手机谷粒学院</a></h4>
								<p>新人专享大礼</p>
								<div class="h-r-1img2">
									<a href="/static/order/confirm/"><img src="/static/order/confirm/img/8104b36ae6b72043ae838599d36d007d.png" alt="" /></a>
									<a href="/static/order/confirm/"><img src="/static/order/confirm/img/c0935b2c6504a5419e6ee507a5381bbe.png"/></a>
									<a href="/static/order/confirm/"><img src="/static/order/confirm/img/a64b429ebf83d2459a0a73830f4ad4c4.png"/></a>
								</div>
							</div>
							<div>
								<div class="h-r-1img">
									<img src="/static/order/confirm/img/5874a54dNcec29924.jpg"/>
								</div>
								<h4><a href="/static/order/confirm/">关注谷粒学院微信</a></h4>
								<p>微信扫一扫关注新粉最高180元惊喜礼包</p>
							</div>
							<div>
								<div class="h-r-1img">
									<img src="/static/order/confirm/img/5874a555Ne8192324.jpg"/>
								</div>
								<h4><a href="/static/order/confirm/">谷粒学院金融客户端</a></h4>
								<p>新人专享大礼</p>
								<div class="h-r-1img2">
									<a href="/static/order/confirm/"><img src="/static/order/confirm/img/8104b36ae6b72043ae838599d36d007d.png" alt="" /></a>
									<a href="/static/order/confirm/"><img src="/static/order/confirm/img/c0935b2c6504a5419e6ee507a5381bbe.png"/></a>
									<a href="/static/order/confirm/"><img src="/static/order/confirm/img/a64b429ebf83d2459a0a73830f4ad4c4.png"/></a>
								</div>
							</div>

						</div>


					</li>



				</ul>
				<div style="clear: both;"></div>
			</div>
		</header>
		<!--logo图片-->
		<div class="top-1">
			<img src="/static/order/confirm/img/logo1.jpg" class="img1" /><span>结算页</span>
			<!--右侧绿色-->
			<img src="/static/order/confirm/img/08.png" class="img2" />
		</div>
		<!--主体部分-->
		<p class="p1">填写并核对订单信息</p>
		<div class="section">
			<!--收货人信息-->
			<div class="top-2">
				<span>收货人信息</span>
				<span>新增收货地址</span>
			</div>
			<!--地址-->
			<div class="top-3" th:each="addr:${orderConfirmData.getAddress()}" th:if="${addr.getDefaultStatus()==1}">
				<p>[[${addr.getName()}]]</p><span>[[${addr.getName()}]]  [[${addr.getProvince()}]]  [[${addr.getCity()}]][[${addr.getRegion()}]] [[${addr.getDetailAddress()}]]  [[${addr.getPhone()}]]</span>
			</div>
			<p class="p2">更多地址⬇</p>
			<div class="hh1"/></div>
		<!--谷粒学院自提-->
		<div class="top-4">
			<p>京东自提</p>
			<p>省运费·无续重·随时取</p>
			<p class="xiang">详情</p>
		</div>
		<!--地址-->
		<div class="top-5" th:each="addr:${orderConfirmData.getAddress()}">
			<p class="changeAddr" th:attr="addrId=${addr.getId()}">[[${addr.getName()}]]</p><span>[[${addr.getName()}]]  [[${addr.getProvince()}]]  [[${addr.getCity()}]][[${addr.getRegion()}]] [[${addr.getDetailAddress()}]]  [[${addr.getPhone()}]]</span><img src="/static/order/confirm/img/09.png" /><span>距收货人0米</span>
			<p class="p3">距离最近</p><span class="xiu">修改自提点</span>
		</div>
		<div class="hh1" /></div>

		<!--支付方式-->
		<h4 class="h4">支付方式</h4>

		<div class="top-6">
			<p>货到付款</p>
			<p><span>惠</span>在线支付</p>
		</div>
		<div class="hh1"></div>
		<!--送货清单-->
		<h4 class="h4" style="margin-top: 5px;">送货清单</h4>
		<div class="top_1">
			<div class="to_left">
				<h5><span class="peisong">配送方式</span><span class="dui"><img src="/static/order/confirm/img/i_03.png"/> 对应商品</span></h5>
				<div class="box">
					谷粒学院快递
				</div>
				<p class="biao">
					<span class="til">标 准 达 :</span>
					<span class="con">预计 12月16日[今天] 15:00-19:00 送达</span>
					<a href="/static/order/confirm/#">修改</a>
				</p>
				<div class="updata-1">
					<img src="/static/order/confirm/img/im_06.png" />
					<span>京准达 标准达</span>
					<span style="color: black;"> 配送服务全面升级</span>
				</div>
				<div class="hh1"></div>
				<p class="tui">
					<span class="til">退换无忧:</span>
					<span class="con">
							<input type="checkbox" />
							自签收后7天内退货,15天内换<span style="font-size: 12px;margin-left: 5px"> ¥ 0.50</span><br />
						<span class="nul">货,</span>可享1次上门取件服务 ﹀
						</span>

				<div class="updata-2">
					<img src="/static/order/confirm/img/im_11.png" />
					<span>京准达运费大促(限自营中小件)</span>
				</div>

				</p>
				<p class="kg" style="color:#666666;margin-top: 13px;font-size: 12px">总重量 :<span style="color:#999999;font-size: 12px">0.095kg</span></p>
			</div>
			<div class="to_right">
				<h5>商家:谷粒学院自营</h5>
				<div><button>换购</button><span>已购满20.00元,再加49.90元,可返回购物车领取赠品</span></div>
				<!--图片-->
				<div class="yun1" th:each="item:${orderConfirmData.getItemVoList()}">
					<img th:src="${item.getImage()}" class="yun"/>
					<div class="mi">
						<p>[[${item.getTitle()}]]<br/><span style="color: red;">¥ [[${item.getPrice()}]]</span> <span> x[[${item.getCount()}]] </span> <span>[[${orderConfirmData.getStocks().get(item.getSkuId())?'有货':'缺货'}]]</span></p>
						<p th:each="attr:${item.getSkuAttr()}">
							<span th:text="${attr}"></span></p>
						<p class="tui-1"><img src="/static/order/confirm/img/i_07.png" />支持7天无理由退货</p>
					</div>
				</div>

				<div class="hh1"></div>
				<p>退换无忧 <span class="money">¥ 0.00</span></p>
			</div>
		</div>
		<div class="bto">
			<div class="hh2"></div>
			<h4 class="float">发票信息</h4>
			<div class="note float"><img src="/static/order/confirm/img/i_11.png" /> <span>开企业抬头发票须填写纳税人识别号,以免影响报销</span></div>
			<ul style="clear: both;">
				<li>电子普通发票 <img src="/static/order/confirm/img/i_14.png" /></li>
				<li>个人</li>
				<li>商品明细</li>
				<li>
					<a href="/static/order/confirm/">修改</a>
				</li>
			</ul>
			<div class="hh3"></div>
			<h4 class="clear">使用优惠/礼品卡/抵用 ^</h4>
			<ul>
				<li class="red">优惠卡</li>
				<li>礼品卡</li>
				<li>京豆</li>
				<li>余额</li>
				<li>领奖码</li>
			</ul>
			<div class="tuijian clear">
				<input type="checkbox" />
				<span>优惠组合推荐</span>
			</div>
		</div>
		<div class="xia">
			<div class="qian">
				<p class="qian_y">
					<span>[[${orderConfirmData.getCount()}]]</span>
					<span>件商品,总商品金额:</span>
					<span class="rmb">¥[[${orderConfirmData.getTotal()}]]</span>
				</p>
				<p class="qian_y">
					<span>返现:</span>
					<span class="rmb">  -¥0.00</span>
				</p>
				<p class="qian_y">
					<span>运费: </span>
					<span class="rmb"> &nbsp ¥0.00</span>
				</p>
				<p class="qian_y">
					<span>服务费: </span>
					<span class="rmb"> &nbsp ¥0.00</span>
				</p>
				<p class="qian_y">
					<span>退换无忧: </span>
					<span class="rmb"> &nbsp ¥0.00</span>
				</p>

			</div>

			<div class="yfze">
				<p class="yfze_a"><span class="z">应付总额:</span><span class="hq">¥[[${orderConfirmData.getPayPrice()}]]</span></p>
				<p class="yfze_b">寄送至: 北京 朝阳区 三环到四环之间 朝阳北路复兴国际大厦23层麦田房产 IT-中心研发二部 收货人:赵存权 188****5052</p>
			</div>
			<button class="tijiao">提交订单</button>
		</div>
		</div>

		<div class="headera">
			<div class="Logo-tu">
				<span><img src="/static/order/confirm/img/service_items_1.png"/></span>
				<span><img src="/static/order/confirm/img/service_items_2.png"/></span>
				<span><img src="/static/order/confirm/img/service_items_3.png"/></span>
				<span><img src="/static/order/confirm/img/service_items_4.png"/></span>
			</div>
			<div class="table">
				<dl>
					<dt><a href="/static/order/confirm/##">购物指南</a></dt>
					<dd>
						<a href="/static/order/confirm/##">购物流程</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">会员介绍</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">生活旅行/团购</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">常见问题</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">大家电</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">练习客服</a>
					</dd>
				</dl>
				<dl>
					<dt><a href="/static/order/confirm/##">配送方式</a></dt>
					<dd>
						<a href="/static/order/confirm/##">上门自提</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">211限时达</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">配送服务查询</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##"></a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">海外配送</a>
					</dd>
					<dd></dd>
				</dl>
				<dl>
					<dt><a href="/static/order/confirm/##">支付方式</a></dt>
					<dd>
						<a href="/static/order/confirm/##">货到付款</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">在线支付</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">分期付款</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">邮局汇款</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">公司转账</a>
					</dd>
					<dd></dd>
				</dl>
				<dl>
					<dt><a href="/static/order/confirm/##">售后服务</a></dt>
					<dd>
						<a href="/static/order/confirm/##">售后政策</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">价格保护</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">退款说明</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">返修/退换货</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">取消订单</a>
					</dd>
					<dd></dd>
				</dl>
				<dl class="dls">
					<dt><a href="/static/order/confirm/##">特色服务</a></dt>
					<dd>
						<a href="/static/order/confirm/##">夺宝岛</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">DIY装机</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">延保服务</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">谷粒学院E卡</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">谷粒学院通信</a>
					</dd>
					<dd>
						<a href="/static/order/confirm/##">谷粒学院gulimall+</a>
					</dd>
				</dl>
			</div>
			<div class="guanyuwomen">
				<ul>
					<li>
						<a href="/static/order/confirm/##">关于我们</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">联系我们</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">联系客服</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">合作招商</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">商家帮助</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">营销中心</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">手机谷粒学院</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">友情链接</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">销售联盟</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">谷粒学院社区</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">风险检测</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">隐私政策</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">谷粒学院公益</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">English Site</a>
					</li>
					<li>|</li>
					<li>
						<a href="/static/order/confirm/##">Mdeila $ IR</a>
					</li>
				</ul>
			</div>
			<p class="p1">
				<a href="/static/order/confirm/##"> 京公网安备 11000002000088号</a>|
				<a href="/static/order/confirm/##"> 京ICP证070359号</a>|
				<a href="/static/order/confirm/##"> 互联网药品信息服务资格证编号(京)-经营性-2014-0008 </a>|
				<a href="/static/order/confirm/##">新出发京零 字第大120007号</a>
			</p>
			<p class="p1">
				<a href="/static/order/confirm/##"> 互联网出版许可证编号新出网证(京)字150号</a>|
				<a href="/static/order/confirm/##"> 出版物经营许可证</a>|
				<a href="/static/order/confirm/##"> 网络文化经营许可证京网文 </a>|
				<a href="/static/order/confirm/##">[2014]2148-348号 </a>|
				<a href="/static/order/confirm/##"> 违法和不良信息举报电话 </a>|
				<a href="/static/order/confirm/##">:4006561155 </a>
			</p>
			<p class="p1">
				<a href="/static/order/confirm/##"> Copyright © 2004-2017 谷粒学院gulimall.com 版权所有</a>|
				<a href="/static/order/confirm/##"> 消费者维权热线:4006067733 经营证照</a>|
			</p>
			<p class="p1">
				<a href="/static/order/confirm/##"> 谷粒学院旗下网站:谷粒学院支付</a>|
				<a href="/static/order/confirm/##"> 谷粒学院云</a>
			</p>
			<p class="p3">
				<img src="/static/order/confirm/img/54b8871eNa9a7067e.png" />
				<img src="/static/order/confirm/img/54b8872dNe37a9860.png" />
				<img src="/static/order/confirm/img/54b8875fNad1e0c4c.png" />
				<img src="/static/order/confirm/img/5698dc03N23f2e3b8.jpg" />
				<img src="/static/order/confirm/img/5698dc16Nb2ab99df.jpg" />
				<img src="/static/order/confirm/img/56a89b8fNfbaade9a.jpg" />
			</p>
		</div>
		<script>
			$(document).ready(function () {
                $('.header-right li:nth-of-type(6)').hover(function(){
                    $('.header-r-11').css('display','block')
                },function(){
                    $('.header-r-11').css('display','none')
                })
                $('.header-right li:nth-of-type(12)').hover(function(){
                    $('.header-r-2').css('display','block')
                },function(){
                    $('.header-r-2').css('display','none')
                })
                $('.header-right li:nth-of-type(14)').hover(function(){
                    $('.header-r-3').css('display','block')
                },function(){
                    $('.header-r-3').css('display','none')
                })
                $('.header-l-2').hover(function(){
                    $('.header-l-d').css('display','block')
                },function(){
                    $('.header-l-d').css('display','none')
                })
                $('.header-r-4').hover(function(){
                    $('.h-r-1').css('display','block')
                },function(){
                    $('.h-r-1').css('display','none')
                })
            });
			$(".changeAddr").click(function(){
				let addrId = $(this).attr("addrId");
				location.href = "http://order.alatusmall.com/changeAddr/"+addrId;
			});
		</script>
	</body>

</html>

 

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
       <meta charset="utf-8" />
       <script src="/static/order/confirm/js/jquery-3.1.1.min.js"></script>
       <link rel="stylesheet" type="text/css" href="/static/order/confirm/css/JD2.css" />
       <title></title>
    </head>
    <body>
       <!--顶部-->
       <header>
          <div class="header">
             <ul class="header-left">
                <li>
                   <img src="/static/order/confirm/img/header_1.png"/>
                   <a href="/static/order/confirm/">谷粒学院首页</a>
                </li>
                <li class="header-l-2">
                   <i class="fa fa-map-marker" style="color: #5C5452;"></i>
                   <a href="/static/order/confirm/">北京</a>
                   <div class="header-l-d">

                      <ul>
                         <li><a href="/static/order/confirm/" style="background: red; color: white;">北京</a></li>
                         <li><a href="/static/order/confirm/">山西</a></li>
                         <li><a href="/static/order/confirm/">内蒙古</a></li>
                         <li><a href="/static/order/confirm/">福建</a></li>
                         <li><a href="/static/order/confirm/">江西</a></li>
                         <li><a href="/static/order/confirm/">西藏</a></li>
                         <li><a href="/static/order/confirm/">新疆</a></li>
                      </ul>
                      <ul>
                         <li><a href="/static/order/confirm/">上海</a></li>
                         <li><a href="/static/order/confirm/">河南</a></li>
                         <li><a href="/static/order/confirm/">江苏</a></li>
                         <li><a href="/static/order/confirm/">湖北</a></li>
                         <li><a href="/static/order/confirm/">四川</a></li>
                         <li><a href="/static/order/confirm/">陕西</a></li>
                         <li><a href="/static/order/confirm/">港澳</a></li>
                      </ul>
                      <ul>
                         <li><a href="/static/order/confirm/">天津</a></li>
                         <li><a href="/static/order/confirm/">辽宁</a></li>
                         <li><a href="/static/order/confirm/">山东</a></li>
                         <li><a href="/static/order/confirm/">湖南</a></li>
                         <li><a href="/static/order/confirm/">海南</a></li>
                         <li><a href="/static/order/confirm/">甘肃</a></li>
                         <li><a href="/static/order/confirm/">台湾</a></li>
                      </ul>
                      <ul>
                         <li><a href="/static/order/confirm/">重庆</a></li>
                         <li><a href="/static/order/confirm/">吉林</a></li>
                         <li><a href="/static/order/confirm/">安徽</a></li>
                         <li><a href="/static/order/confirm/">广东</a></li>
                         <li><a href="/static/order/confirm/">贵州</a></li>
                         <li><a href="/static/order/confirm/">青岛</a></li>
                         <li><a href="/static/order/confirm/">钓鱼岛</a></li>
                      </ul>
                      <ul>
                         <li><a href="/static/order/confirm/">河北</a></li>
                         <li><a href="/static/order/confirm/">黑龙江</a></li>
                         <li><a href="/static/order/confirm/">浙江</a></li>
                         <li><a href="/static/order/confirm/">广西</a></li>
                         <li><a href="/static/order/confirm/">云南</a></li>
                         <li><a href="/static/order/confirm/">宁夏</a></li>
                         <li><a href="/static/order/confirm/">海外</a></li>
                      </ul>


                   </div>
                </li>

             </ul>
             <ul class="header-right">
                <li>[[${session.get('loginUser').getNickname()}]]<img src="/static/order/confirm/img/03.png" style="margin-bottom: 0px;margin-left3: 3px;" /><img src="/static/order/confirm/img/06.png" /></li>
                <li>|</li>
                <li class="spacer"></li>
                <li><a href="/static/order/confirm/">我的订单</a></li>
                <li class="spacer"></li>
                <li>
                   <a href="/static/order/confirm/">我的谷粒学院</a>
                   <i class="fa fa-angle-down"></i>
                   <div class="header-r-1 aa header-r-11">
                      <div>
                         <ol>
                            <dd><a href="/static/order/confirm/">待处理订单</a></dd>
                            <dd><a href="/static/order/confirm/">返修退换货</a></dd>
                            <dd><a href="/static/order/confirm/">降价商品</a></dd>

                         </ol>
                         <ol>
                            <dd><a href="/static/order/confirm/">消息</a></dd>
                            <dd><a href="/static/order/confirm/">我的问答</a></dd>
                            <dd><a href="/static/order/confirm/">我的关注</a></dd>

                         </ol>

                      </div>
                      <div>
                         <ol>
                            <dd><a href="/static/order/confirm/">我的京豆</a></dd>
                            <dd><a href="/static/order/confirm/">我的白条</a></dd>
                         </ol>
                         <ol>
                            <dd><a href="/static/order/confirm/">我的优惠劵</a></dd>
                            <dd><a href="/static/order/confirm/">我的理财</a></dd>
                         </ol>

                      </div>
                      <div>
                         <h4><a href="/static/order/confirm/">我的足迹</a><a href="/static/order/confirm/">更多 ></a> </h4>
                         <a href="/static/order/confirm/"><img src="/static/order/confirm/image/59ae02fcN529cc4a1.jpg"/></a>
                         <a href="/static/order/confirm/"><img src="/static/order/confirm/image/59ce706fN6f3f2a4a.jpg"/></a>
                         <a href="/static/order/confirm/"><img src="/static/order/confirm/image/57b191f2N15993cbb.jpg"/></a>
                         <a href="/static/order/confirm/"><img src="/static/order/confirm/image/58ff269fN7b7e087b.jpg"/></a>
                      </div>
                   </div>

                </li>
                <li class="spacer"></li>
                <li><a href="/static/order/confirm/">谷粒学院会员</a></li>
                <li class="spacer"></li>
                <li><a href="/static/order/confirm/">企业采购</a></li>
                <li class="spacer"></li>
                <li>
                   <a href="/static/order/confirm/">客户服务</a>
                   <i class="fa fa-angle-down"></i>
                   <div class="header-r-1 aa header-r-2">
                      <div>
                         <h4>客户</h4>
                         <ol>

                            <dd><a href="/static/order/confirm/">帮助中心</a></dd>
                            <dd><a href="/static/order/confirm/">在线客服</a></dd>
                            <dd><a href="/static/order/confirm/">电话客服</a></dd>
                            <dd><a href="/static/order/confirm/">金融咨询</a></dd>
                         </ol>
                         <ol>

                            <dd><a href="/static/order/confirm/">售后服务</a></dd>
                            <dd><a href="/static/order/confirm/">意见建议</a></dd>
                            <dd><a href="/static/order/confirm/">客服邮箱</a></dd>
                            <dd><a href="/static/order/confirm/">售全球客服</a></dd>
                         </ol>
                      </div>
                      <div>
                         <h4>商户</h4>
                         <ol>

                            <dd><a href="/static/order/confirm/">合作招商</a></dd>
                            <dd><a href="/static/order/confirm/">商家后台</a></dd>
                            <dd><a href="/static/order/confirm/">商家帮助</a></dd>
                         </ol>
                         <ol>

                            <dd><a href="/static/order/confirm/">学习中心</a></dd>
                            <dd><a href="/static/order/confirm/">京麦工作台</a></dd>
                            <dd><a href="/static/order/confirm/">规则平台</a></dd>
                         </ol>
                      </div>
                   </div>

                </li>
                <li class="spacer"></li>
                <li>
                   <a href="/static/order/confirm/">网址导航</a>
                   <i class="fa fa-angle-down"></i>
                   <div class="header-r-1 aa header-r-3">
                      <div>
                         <h4>特色主题</h4>
                         <ol>
                            <dd><a href="/static/order/confirm/">谷粒学院试用</a></dd>
                            <dd><a href="/static/order/confirm/">国际站</a></dd>
                            <dd><a href="/static/order/confirm/">买什么</a></dd>
                            <dd><a href="/static/order/confirm/">0元评测</a></dd>
                            <dd><a href="/static/order/confirm/">优惠劵</a></dd>
                            <dd><a href="/static/order/confirm/">印尼站</a></dd>
                            <dd><a href="/static/order/confirm/">陪伴计划</a></dd>
                         </ol>
                         <ol>
                            <dd><a href="/static/order/confirm/">谷粒学院金融</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院会员</a></dd>
                            <dd><a href="/static/order/confirm/">俄语站</a></dd>
                            <dd><a href="/static/order/confirm/">定期送</a></dd>
                            <dd><a href="/static/order/confirm/">秒杀</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院金融科技</a></dd>
                            <dd><a href="/static/order/confirm/">出海招商</a></dd>
                         </ol>
                         <ol>
                            <dd><a href="/static/order/confirm/">全球售</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院预售</a></dd>
                            <dd><a href="/static/order/confirm/">装机大师</a></dd>
                            <dd><a href="/static/order/confirm/">港澳售</a></dd>
                            <dd><a href="/static/order/confirm/">闪购</a></dd>
                            <dd><a href="/static/order/confirm/">In货推荐</a></dd>
                         </ol>

                      </div>

                      <div>
                         <h4>行业推荐</h4>
                         <ol>
                            <dd><a href="/static/order/confirm/">手机</a></dd>
                            <dd><a href="/static/order/confirm/">玩3C</a></dd>
                            <dd><a href="/static/order/confirm/">家用电器</a></dd>
                            <dd><a href="/static/order/confirm/">服装城</a></dd>
                            <dd><a href="/static/order/confirm/">家装城</a></dd>
                            <dd><a href="/static/order/confirm/">食品</a></dd>
                            <dd><a href="/static/order/confirm/">农资频道</a></dd>
                            <dd><a href="/static/order/confirm/">图书</a></dd>

                         </ol>
                         <ol>
                            <dd><a href="/static/order/confirm/">智能数码</a></dd>
                            <dd><a href="/static/order/confirm/">电脑办公</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院智能</a></dd>
                            <dd><a href="/static/order/confirm/">美妆馆</a></dd>
                            <dd><a href="/static/order/confirm/">母婴</a></dd>
                            <dd><a href="/static/order/confirm/">运动户外</a></dd>
                            <dd><a href="/static/order/confirm/">整车</a></dd>
                         </ol>
                      </div>


                      <div>
                         <h4>生活服务</h4>
                         <ol>
                            <dd><a href="/static/order/confirm/">谷粒学院众筹</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院金融App</a></dd>
                            <dd><a href="/static/order/confirm/">理财</a></dd>
                            <dd><a href="/static/order/confirm/">话费</a></dd>
                            <dd><a href="/static/order/confirm/">彩票</a></dd>
                            <dd><a href="/static/order/confirm/">机票酒店</a></dd>
                            <dd><a href="/static/order/confirm/">酒店到家</a></dd>
                            <dd><a href="/static/order/confirm/">游戏</a></dd>

                         </ol>
                         <ol>
                            <dd><a href="/static/order/confirm/">白条</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院小金库</a></dd>
                            <dd><a href="/static/order/confirm/">智能家电</a></dd>
                            <dd><a href="/static/order/confirm/">水电煤</a></dd>
                            <dd><a href="/static/order/confirm/">旅行</a></dd>
                            <dd><a href="/static/order/confirm/">电影票</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院众测</a></dd>
                         </ol>
                      </div>




                      <div>
                         <h4>更多精选</h4>
                         <ol>
                            <dd><a href="/static/order/confirm/">合作招商</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院E卡</a></dd>
                            <dd><a href="/static/order/confirm/">服务市场</a></dd>
                            <dd><a href="/static/order/confirm/">乡村招募</a></dd>
                            <dd><a href="/static/order/confirm/">京友邦</a></dd>
                            <dd><a href="/static/order/confirm/">智能社区</a></dd>
                            <dd><a href="/static/order/confirm/">知识产权维权</a></dd>


                         </ol>
                         <ol>
                            <dd><a href="/static/order/confirm/">谷粒学院通信</a></dd>
                            <dd><a href="/static/order/confirm/">企业采购</a></dd>
                            <dd><a href="/static/order/confirm/">办公生活馆</a></dd>
                            <dd><a href="/static/order/confirm/">校园加盟</a></dd>
                            <dd><a href="/static/order/confirm/">谷粒学院社区</a></dd>
                            <dd><a href="/static/order/confirm/">游戏社区</a></dd>
                         </ol>
                      </div>
                   </div>

                </li>
                <li class="spacer"></li>
                <li class="header-r-4"><a href="/static/order/confirm/">手机谷粒学院</a>
                   <div class="aa h-r-1">

                      <div>
                         <div class="h-r-1img">
                            <img src="/static/order/confirm/img/59a51bf6Nb8e478cc.png"/>
                         </div>
                         <h4><a href="/static/order/confirm/">手机谷粒学院</a></h4>
                         <p>新人专享大礼</p>
                         <div class="h-r-1img2">
                            <a href="/static/order/confirm/"><img src="/static/order/confirm/img/8104b36ae6b72043ae838599d36d007d.png" alt="" /></a>
                            <a href="/static/order/confirm/"><img src="/static/order/confirm/img/c0935b2c6504a5419e6ee507a5381bbe.png"/></a>
                            <a href="/static/order/confirm/"><img src="/static/order/confirm/img/a64b429ebf83d2459a0a73830f4ad4c4.png"/></a>
                         </div>
                      </div>
                      <div>
                         <div class="h-r-1img">
                            <img src="/static/order/confirm/img/5874a54dNcec29924.jpg"/>
                         </div>
                         <h4><a href="/static/order/confirm/">关注谷粒学院微信</a></h4>
                         <p>微信扫一扫关注新粉最高180元惊喜礼包</p>
                      </div>
                      <div>
                         <div class="h-r-1img">
                            <img src="/static/order/confirm/img/5874a555Ne8192324.jpg"/>
                         </div>
                         <h4><a href="/static/order/confirm/">谷粒学院金融客户端</a></h4>
                         <p>新人专享大礼</p>
                         <div class="h-r-1img2">
                            <a href="/static/order/confirm/"><img src="/static/order/confirm/img/8104b36ae6b72043ae838599d36d007d.png" alt="" /></a>
                            <a href="/static/order/confirm/"><img src="/static/order/confirm/img/c0935b2c6504a5419e6ee507a5381bbe.png"/></a>
                            <a href="/static/order/confirm/"><img src="/static/order/confirm/img/a64b429ebf83d2459a0a73830f4ad4c4.png"/></a>
                         </div>
                      </div>

                   </div>


                </li>



             </ul>
             <div style="clear: both;"></div>
          </div>
       </header>
       <!--logo图片-->
       <div class="top-1">
          <img src="/static/order/confirm/img/logo1.jpg" class="img1" /><span>结算页</span>
          <!--右侧绿色-->
          <img src="/static/order/confirm/img/08.png" class="img2" />
       </div>
       <!--主体部分-->
       <p class="p1">填写并核对订单信息</p>
       <div class="section">
          <!--收货人信息-->
          <div class="top-2">
             <span>收货人信息</span>
             <span>新增收货地址</span>
          </div>
          <!--地址-->
          <div class="top-3" th:each="addr:${orderConfirmData.getAddress()}" th:if="${addr.getDefaultStatus()==1}">
             <p>[[${addr.getName()}]]</p><span>[[${addr.getName()}]]  [[${addr.getProvince()}]]  [[${addr.getCity()}]][[${addr.getRegion()}]] [[${addr.getDetailAddress()}]]  [[${addr.getPhone()}]]</span>
          </div>
          <p class="p2">更多地址⬇</p>
          <div class="hh1"/></div>
       <!--谷粒学院自提-->
       <div class="top-4">
          <p>京东自提</p>
          <p>省运费·无续重·随时取</p>
          <p class="xiang">详情</p>
       </div>
       <!--地址-->
       <div class="top-5" th:each="addr:${orderConfirmData.getAddress()}">
          <p class="changeAddr" th:attr="addrId=${addr.getId()}">[[${addr.getName()}]]</p><span>[[${addr.getName()}]]  [[${addr.getProvince()}]]  [[${addr.getCity()}]][[${addr.getRegion()}]] [[${addr.getDetailAddress()}]]  [[${addr.getPhone()}]]</span><img src="/static/order/confirm/img/09.png" /><span>距收货人0米</span>
          <p class="p3">距离最近</p><span class="xiu">修改自提点</span>
       </div>
       <div class="hh1" /></div>

       <!--支付方式-->
       <h4 class="h4">支付方式</h4>

       <div class="top-6">
          <p>货到付款</p>
          <p><span>惠</span>在线支付</p>
       </div>
       <div class="hh1"></div>
       <!--送货清单-->
       <h4 class="h4" style="margin-top: 5px;">送货清单</h4>
       <div class="top_1">
          <div class="to_left">
             <h5><span class="peisong">配送方式</span><span class="dui"><img src="/static/order/confirm/img/i_03.png"/> 对应商品</span></h5>
             <div class="box">
                谷粒学院快递
             </div>
             <p class="biao">
                <span class="til">标 准 达 :</span>
                <span class="con">预计 12月16日[今天] 15:00-19:00 送达</span>
                <a href="/static/order/confirm/#">修改</a>
             </p>
             <div class="updata-1">
                <img src="/static/order/confirm/img/im_06.png" />
                <span>京准达 标准达</span>
                <span style="color: black;"> 配送服务全面升级</span>
             </div>
             <div class="hh1"></div>
             <p class="tui">
                <span class="til">退换无忧:</span>
                <span class="con">
                      <input type="checkbox" />
                      自签收后7天内退货,15天内换<span style="font-size: 12px;margin-left: 5px"> ¥ 0.50</span><br />
                   <span class="nul">货,</span>可享1次上门取件服务 ﹀
                   </span>

             <div class="updata-2">
                <img src="/static/order/confirm/img/im_11.png" />
                <span>京准达运费大促(限自营中小件)</span>
             </div>

             </p>
             <p class="kg" style="color:#666666;margin-top: 13px;font-size: 12px">总重量 :<span style="color:#999999;font-size: 12px">0.095kg</span></p>
          </div>
          <div class="to_right">
             <h5>商家:谷粒学院自营</h5>
             <div><button>换购</button><span>已购满20.00元,再加49.90元,可返回购物车领取赠品</span></div>
             <!--图片-->
             <div class="yun1" th:each="item:${orderConfirmData.getItemVoList()}">
                <img th:src="${item.getImage()}" class="yun"/>
                <div class="mi">
                   <p>[[${item.getTitle()}]]<br/><span style="color: red;">¥ [[${item.getPrice()}]]</span> <span> x[[${item.getCount()}]] </span> <span>[[${orderConfirmData.getStocks().get(item.getSkuId())?'有货':'缺货'}]]</span></p>
                   <p th:each="attr:${item.getSkuAttr()}">
                      <span th:text="${attr}"></span></p>
                   <p class="tui-1"><img src="/static/order/confirm/img/i_07.png" />支持7天无理由退货</p>
                </div>
             </div>

             <div class="hh1"></div>
             <p>退换无忧 <span class="money">¥ 0.00</span></p>
          </div>
       </div>
       <div class="bto">
          <div class="hh2"></div>
          <h4 class="float">发票信息</h4>
          <div class="note float"><img src="/static/order/confirm/img/i_11.png" /> <span>开企业抬头发票须填写纳税人识别号,以免影响报销</span></div>
          <ul style="clear: both;">
             <li>电子普通发票 <img src="/static/order/confirm/img/i_14.png" /></li>
             <li>个人</li>
             <li>商品明细</li>
             <li>
                <a href="/static/order/confirm/">修改</a>
             </li>
          </ul>
          <div class="hh3"></div>
          <h4 class="clear">使用优惠/礼品卡/抵用 ^</h4>
          <ul>
             <li class="red">优惠卡</li>
             <li>礼品卡</li>
             <li>京豆</li>
             <li>余额</li>
             <li>领奖码</li>
          </ul>
          <div class="tuijian clear">
             <input type="checkbox" />
             <span>优惠组合推荐</span>
          </div>
       </div>
       <div class="xia">
          <div class="qian">
             <p class="qian_y">
                <span>[[${orderConfirmData.getCount()}]]</span>
                <span>件商品,总商品金额:</span>
                <span class="rmb">¥[[${orderConfirmData.getTotal()}]]</span>
             </p>
             <p class="qian_y">
                <span>返现:</span>
                <span class="rmb">  -¥0.00</span>
             </p>
             <p class="qian_y">
                <span>运费: </span>
                <span class="rmb"> &nbsp ¥0.00</span>
             </p>
             <p class="qian_y">
                <span>服务费: </span>
                <span class="rmb"> &nbsp ¥0.00</span>
             </p>
             <p class="qian_y">
                <span>退换无忧: </span>
                <span class="rmb"> &nbsp ¥0.00</span>
             </p>

          </div>

          <div class="yfze">
             <p class="yfze_a"><span class="z">应付总额:</span><span class="hq">¥[[${orderConfirmData.getPayPrice()}]]</span></p>
             <p class="yfze_b">寄送至: 北京 朝阳区 三环到四环之间 朝阳北路复兴国际大厦23层麦田房产 IT-中心研发二部 收货人:赵存权 188****5052</p>
          </div>
          <button class="tijiao">提交订单</button>
       </div>
       </div>

       <div class="headera">
          <div class="Logo-tu">
             <span><img src="/static/order/confirm/img/service_items_1.png"/></span>
             <span><img src="/static/order/confirm/img/service_items_2.png"/></span>
             <span><img src="/static/order/confirm/img/service_items_3.png"/></span>
             <span><img src="/static/order/confirm/img/service_items_4.png"/></span>
          </div>
          <div class="table">
             <dl>
                <dt><a href="/static/order/confirm/##">购物指南</a></dt>
                <dd>
                   <a href="/static/order/confirm/##">购物流程</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">会员介绍</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">生活旅行/团购</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">常见问题</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">大家电</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">练习客服</a>
                </dd>
             </dl>
             <dl>
                <dt><a href="/static/order/confirm/##">配送方式</a></dt>
                <dd>
                   <a href="/static/order/confirm/##">上门自提</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">211限时达</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">配送服务查询</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##"></a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">海外配送</a>
                </dd>
                <dd></dd>
             </dl>
             <dl>
                <dt><a href="/static/order/confirm/##">支付方式</a></dt>
                <dd>
                   <a href="/static/order/confirm/##">货到付款</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">在线支付</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">分期付款</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">邮局汇款</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">公司转账</a>
                </dd>
                <dd></dd>
             </dl>
             <dl>
                <dt><a href="/static/order/confirm/##">售后服务</a></dt>
                <dd>
                   <a href="/static/order/confirm/##">售后政策</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">价格保护</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">退款说明</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">返修/退换货</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">取消订单</a>
                </dd>
                <dd></dd>
             </dl>
             <dl class="dls">
                <dt><a href="/static/order/confirm/##">特色服务</a></dt>
                <dd>
                   <a href="/static/order/confirm/##">夺宝岛</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">DIY装机</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">延保服务</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">谷粒学院E卡</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">谷粒学院通信</a>
                </dd>
                <dd>
                   <a href="/static/order/confirm/##">谷粒学院gulimall+</a>
                </dd>
             </dl>
          </div>
          <div class="guanyuwomen">
             <ul>
                <li>
                   <a href="/static/order/confirm/##">关于我们</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">联系我们</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">联系客服</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">合作招商</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">商家帮助</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">营销中心</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">手机谷粒学院</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">友情链接</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">销售联盟</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">谷粒学院社区</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">风险检测</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">隐私政策</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">谷粒学院公益</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">English Site</a>
                </li>
                <li>|</li>
                <li>
                   <a href="/static/order/confirm/##">Mdeila $ IR</a>
                </li>
             </ul>
          </div>
          <p class="p1">
             <a href="/static/order/confirm/##"> 京公网安备 11000002000088号</a>|
             <a href="/static/order/confirm/##"> 京ICP证070359号</a>|
             <a href="/static/order/confirm/##"> 互联网药品信息服务资格证编号(京)-经营性-2014-0008 </a>|
             <a href="/static/order/confirm/##">新出发京零 字第大120007号</a>
          </p>
          <p class="p1">
             <a href="/static/order/confirm/##"> 互联网出版许可证编号新出网证(京)字150号</a>|
             <a href="/static/order/confirm/##"> 出版物经营许可证</a>|
             <a href="/static/order/confirm/##"> 网络文化经营许可证京网文 </a>|
             <a href="/static/order/confirm/##">[2014]2148-348号 </a>|
             <a href="/static/order/confirm/##"> 违法和不良信息举报电话 </a>|
             <a href="/static/order/confirm/##">:4006561155 </a>
          </p>
          <p class="p1">
             <a href="/static/order/confirm/##"> Copyright © 2004-2017 谷粒学院gulimall.com 版权所有</a>|
             <a href="/static/order/confirm/##"> 消费者维权热线:4006067733 经营证照</a>|
          </p>
          <p class="p1">
             <a href="/static/order/confirm/##"> 谷粒学院旗下网站:谷粒学院支付</a>|
             <a href="/static/order/confirm/##"> 谷粒学院云</a>
          </p>
          <p class="p3">
             <img src="/static/order/confirm/img/54b8871eNa9a7067e.png" />
             <img src="/static/order/confirm/img/54b8872dNe37a9860.png" />
             <img src="/static/order/confirm/img/54b8875fNad1e0c4c.png" />
             <img src="/static/order/confirm/img/5698dc03N23f2e3b8.jpg" />
             <img src="/static/order/confirm/img/5698dc16Nb2ab99df.jpg" />
             <img src="/static/order/confirm/img/56a89b8fNfbaade9a.jpg" />
          </p>
       </div>
       <script>
          $(document).ready(function () {
                $('.header-right li:nth-of-type(6)').hover(function(){
                    $('.header-r-11').css('display','block')
                },function(){
                    $('.header-r-11').css('display','none')
                })
                $('.header-right li:nth-of-type(12)').hover(function(){
                    $('.header-r-2').css('display','block')
                },function(){
                    $('.header-r-2').css('display','none')
                })
                $('.header-right li:nth-of-type(14)').hover(function(){
                    $('.header-r-3').css('display','block')
                },function(){
                    $('.header-r-3').css('display','none')
                })
                $('.header-l-2').hover(function(){
                    $('.header-l-d').css('display','block')
                },function(){
                    $('.header-l-d').css('display','none')
                })
                $('.header-r-4').hover(function(){
                    $('.h-r-1').css('display','block')
                },function(){
                    $('.h-r-1').css('display','none')
                })
            });
          $(".changeAddr").click(function(){
             let addrId = $(this).attr("addrId");
             location.href = "http://order.alatusmall.com/changeAddr/"+addrId;
          });
       </script>
    </body>

</html>
package com.alatus.mall.member.service.impl;

import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.Query;

import com.alatus.mall.member.dao.MemberReceiveAddressDao;
import com.alatus.mall.member.entity.MemberReceiveAddressEntity;
import com.alatus.mall.member.service.MemberReceiveAddressService;


@Service("memberReceiveAddressService")
public class MemberReceiveAddressServiceImpl extends ServiceImpl<MemberReceiveAddressDao, MemberReceiveAddressEntity> implements MemberReceiveAddressService {
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        IPage<MemberReceiveAddressEntity> page = this.page(
                new Query<MemberReceiveAddressEntity>().getPage(params),
                new QueryWrapper<MemberReceiveAddressEntity>()
        );

        return new PageUtils(page);
    }

    @Override
    public List<MemberReceiveAddressEntity> getAddress(Long memberId) {
        return this.list(new QueryWrapper<MemberReceiveAddressEntity>().eq("member_id", memberId));
    }

    @Override
    public void changeAddrChecked(Long memberId, Long addrId) {
        // 获取当前会员的默认地址,如果存在,更新其default_status为0
        MemberReceiveAddressEntity oldChecked = this.getOne(new QueryWrapper<MemberReceiveAddressEntity>()
                .eq("member_id", memberId)
                .eq("default_status", 1));
        if (oldChecked != null) {
            oldChecked.setDefaultStatus(0);
            this.updateById(oldChecked); // 使用updateById更新,不会影响其他字段
        }
        // 获取需要设为默认地址的记录
        MemberReceiveAddressEntity memberReceiveAddressEntity = this.baseMapper.selectById(addrId);
        if (memberReceiveAddressEntity != null) {
            // 设置新默认地址的default_status为1
            memberReceiveAddressEntity.setDefaultStatus(1);
            this.updateById(memberReceiveAddressEntity); // 再次使用updateById更新
        }
    }
}
package com.alatus.mall.member.service.impl;

import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.Query;

import com.alatus.mall.member.dao.MemberReceiveAddressDao;
import com.alatus.mall.member.entity.MemberReceiveAddressEntity;
import com.alatus.mall.member.service.MemberReceiveAddressService;


@Service("memberReceiveAddressService")
public class MemberReceiveAddressServiceImpl extends ServiceImpl<MemberReceiveAddressDao, MemberReceiveAddressEntity> implements MemberReceiveAddressService {
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        IPage<MemberReceiveAddressEntity> page = this.page(
                new Query<MemberReceiveAddressEntity>().getPage(params),
                new QueryWrapper<MemberReceiveAddressEntity>()
        );

        return new PageUtils(page);
    }

    @Override
    public List<MemberReceiveAddressEntity> getAddress(Long memberId) {
        return this.list(new QueryWrapper<MemberReceiveAddressEntity>().eq("member_id", memberId));
    }

    @Override
    public void changeAddrChecked(Long memberId, Long addrId) {
        // 获取当前会员的默认地址,如果存在,更新其default_status为0
        MemberReceiveAddressEntity oldChecked = this.getOne(new QueryWrapper<MemberReceiveAddressEntity>()
                .eq("member_id", memberId)
                .eq("default_status", 1));
        if (oldChecked != null) {
            oldChecked.setDefaultStatus(0);
            this.updateById(oldChecked); // 使用updateById更新,不会影响其他字段
        }
        // 获取需要设为默认地址的记录
        MemberReceiveAddressEntity memberReceiveAddressEntity = this.baseMapper.selectById(addrId);
        if (memberReceiveAddressEntity != null) {
            // 设置新默认地址的default_status为1
            memberReceiveAddressEntity.setDefaultStatus(1);
            this.updateById(memberReceiveAddressEntity); // 再次使用updateById更新
        }
    }
}
package com.alatus.mall.order.service.impl;

import com.alatus.common.utils.R;
import com.alatus.common.vo.MemberRespVo;
import com.alatus.common.vo.SkuHasStockVo;
import com.alatus.mall.order.feign.CartFeignService;
import com.alatus.mall.order.feign.MemberFeignService;
import com.alatus.mall.order.feign.WareFeignService;
import com.alatus.mall.order.interceptor.LoginUserInterceptor;
import com.alatus.mall.order.vo.OrderConfirmVo;
import com.alatus.mall.order.vo.OrderItemVo;
import com.alibaba.fastjson.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.Query;
import com.alatus.mall.order.dao.OrderDao;
import com.alatus.mall.order.entity.OrderEntity;
import com.alatus.mall.order.service.OrderService;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;


@Service("orderService")
public class OrderServiceImpl extends ServiceImpl<OrderDao, OrderEntity> implements OrderService {
    @Autowired
    private MemberFeignService memberFeignService;
    @Autowired
    private CartFeignService cartFeignService;
    @Autowired
    private ThreadPoolExecutor threadPoolExecutor;
    @Autowired
    private WareFeignService wareFeignService;
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        IPage<OrderEntity> page = this.page(
                new Query<OrderEntity>().getPage(params),
                new QueryWrapper<OrderEntity>()
        );
        return new PageUtils(page);
    }

    @Override
    public OrderConfirmVo confirmOrder() throws ExecutionException, InterruptedException {
        OrderConfirmVo confirmVo = new OrderConfirmVo();
//        获取原请求信息,避免异步导致丢失
        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        MemberRespVo memberRespVo = LoginUserInterceptor.loginUser.get();
//        远程查询购物车所有选中的购物项
        CompletableFuture<Void> itemVoList = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setItemVoList(cartFeignService.getCurrentCartItem());
        }, threadPoolExecutor).thenRunAsync(()->{
//        获取原请求信息,避免异步导致丢失
            RequestContextHolder.setRequestAttributes(requestAttributes);
//            查询库存
            List<OrderItemVo> itemList = confirmVo.getItemVoList();
            List<Long> ids = itemList.stream().map(OrderItemVo::getSkuId).collect(Collectors.toList());
            R skuHasStock = wareFeignService.getSkuHasStock(ids);
            if(skuHasStock.getCode()==0){
                List<SkuHasStockVo> data = skuHasStock.getData(new TypeReference<List<SkuHasStockVo>>() {});
                if(data!=null&& !data.isEmpty()){
                    Map<Long, Boolean> collect = data.stream().collect(Collectors.toMap(SkuHasStockVo::getSkuId, SkuHasStockVo::getHasStock));
                    confirmVo.setStocks(collect);
                }
            }
        },threadPoolExecutor);
//        远程查询所有的用户地址列表
        CompletableFuture<Void> addressTask = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setAddress(memberFeignService.getAddress(memberRespVo.getId()));
        }, threadPoolExecutor);
//        用户积分
        CompletableFuture<Void> integrationTask = CompletableFuture.runAsync(() -> {
            confirmVo.setIntegration(memberRespVo.getIntegration());
        }, threadPoolExecutor);
        CompletableFuture.allOf(addressTask,itemVoList,integrationTask).get();
//        TODO 订单令牌
        return confirmVo;
    }

    @Override
    public OrderConfirmVo confirmOrder(Long addrId) throws ExecutionException, InterruptedException {
//        获取原请求信息,避免异步导致丢失
        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        MemberRespVo memberRespVo = LoginUserInterceptor.loginUser.get();
        R r = memberFeignService.changeAddr(memberRespVo.getId(), addrId);
        if(r.getCode()!=0){
            throw new RuntimeException("修改失败");
        }
        OrderConfirmVo confirmVo = new OrderConfirmVo();
//        远程查询购物车所有选中的购物项
        CompletableFuture<Void> itemVoList = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setItemVoList(cartFeignService.getCurrentCartItem());
        }, threadPoolExecutor).thenRunAsync(()->{
//        获取原请求信息,避免异步导致丢失
            RequestContextHolder.setRequestAttributes(requestAttributes);
//            查询库存
            List<OrderItemVo> itemList = confirmVo.getItemVoList();
            List<Long> ids = itemList.stream().map(OrderItemVo::getSkuId).collect(Collectors.toList());
            R skuHasStock = wareFeignService.getSkuHasStock(ids);
            if(skuHasStock.getCode()==0){
                List<SkuHasStockVo> data = skuHasStock.getData(new TypeReference<List<SkuHasStockVo>>() {});
                if(data!=null&& !data.isEmpty()){
                    Map<Long, Boolean> collect = data.stream().collect(Collectors.toMap(SkuHasStockVo::getSkuId, SkuHasStockVo::getHasStock));
                    confirmVo.setStocks(collect);
                }
            }
        },threadPoolExecutor);
//        远程查询所有的用户地址列表
        CompletableFuture<Void> addressTask = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setAddress(memberFeignService.getAddress(memberRespVo.getId()));
        }, threadPoolExecutor);
//        用户积分
        CompletableFuture<Void> integrationTask = CompletableFuture.runAsync(() -> {
            confirmVo.setIntegration(memberRespVo.getIntegration());
        }, threadPoolExecutor);
        CompletableFuture.allOf(addressTask,itemVoList,integrationTask).get();
//        TODO 订单令牌
        return confirmVo;
    }
}

 

package com.alatus.mall.order.service.impl;

import com.alatus.common.utils.R;
import com.alatus.common.vo.MemberRespVo;
import com.alatus.common.vo.SkuHasStockVo;
import com.alatus.mall.order.feign.CartFeignService;
import com.alatus.mall.order.feign.MemberFeignService;
import com.alatus.mall.order.feign.WareFeignService;
import com.alatus.mall.order.interceptor.LoginUserInterceptor;
import com.alatus.mall.order.vo.OrderConfirmVo;
import com.alatus.mall.order.vo.OrderItemVo;
import com.alibaba.fastjson.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.Query;
import com.alatus.mall.order.dao.OrderDao;
import com.alatus.mall.order.entity.OrderEntity;
import com.alatus.mall.order.service.OrderService;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;


@Service("orderService")
public class OrderServiceImpl extends ServiceImpl<OrderDao, OrderEntity> implements OrderService {
    @Autowired
    private MemberFeignService memberFeignService;
    @Autowired
    private CartFeignService cartFeignService;
    @Autowired
    private ThreadPoolExecutor threadPoolExecutor;
    @Autowired
    private WareFeignService wareFeignService;
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        IPage<OrderEntity> page = this.page(
                new Query<OrderEntity>().getPage(params),
                new QueryWrapper<OrderEntity>()
        );
        return new PageUtils(page);
    }

    @Override
    public OrderConfirmVo confirmOrder() throws ExecutionException, InterruptedException {
        OrderConfirmVo confirmVo = new OrderConfirmVo();
//        获取原请求信息,避免异步导致丢失
        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        MemberRespVo memberRespVo = LoginUserInterceptor.loginUser.get();
//        远程查询购物车所有选中的购物项
        CompletableFuture<Void> itemVoList = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setItemVoList(cartFeignService.getCurrentCartItem());
        }, threadPoolExecutor).thenRunAsync(()->{
//        获取原请求信息,避免异步导致丢失
            RequestContextHolder.setRequestAttributes(requestAttributes);
//            查询库存
            List<OrderItemVo> itemList = confirmVo.getItemVoList();
            List<Long> ids = itemList.stream().map(OrderItemVo::getSkuId).collect(Collectors.toList());
            R skuHasStock = wareFeignService.getSkuHasStock(ids);
            if(skuHasStock.getCode()==0){
                List<SkuHasStockVo> data = skuHasStock.getData(new TypeReference<List<SkuHasStockVo>>() {});
                if(data!=null&& !data.isEmpty()){
                    Map<Long, Boolean> collect = data.stream().collect(Collectors.toMap(SkuHasStockVo::getSkuId, SkuHasStockVo::getHasStock));
                    confirmVo.setStocks(collect);
                }
            }
        },threadPoolExecutor);
//        远程查询所有的用户地址列表
        CompletableFuture<Void> addressTask = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setAddress(memberFeignService.getAddress(memberRespVo.getId()));
        }, threadPoolExecutor);
//        用户积分
        CompletableFuture<Void> integrationTask = CompletableFuture.runAsync(() -> {
            confirmVo.setIntegration(memberRespVo.getIntegration());
        }, threadPoolExecutor);
        CompletableFuture.allOf(addressTask,itemVoList,integrationTask).get();
//        TODO 订单令牌
        return confirmVo;
    }

    @Override
    public OrderConfirmVo confirmOrder(Long addrId) throws ExecutionException, InterruptedException {
//        获取原请求信息,避免异步导致丢失
        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        MemberRespVo memberRespVo = LoginUserInterceptor.loginUser.get();
        R r = memberFeignService.changeAddr(memberRespVo.getId(), addrId);
        if(r.getCode()!=0){
            throw new RuntimeException("修改失败");
        }
        OrderConfirmVo confirmVo = new OrderConfirmVo();
//        远程查询购物车所有选中的购物项
        CompletableFuture<Void> itemVoList = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setItemVoList(cartFeignService.getCurrentCartItem());
        }, threadPoolExecutor).thenRunAsync(()->{
//        获取原请求信息,避免异步导致丢失
            RequestContextHolder.setRequestAttributes(requestAttributes);
//            查询库存
            List<OrderItemVo> itemList = confirmVo.getItemVoList();
            List<Long> ids = itemList.stream().map(OrderItemVo::getSkuId).collect(Collectors.toList());
            R skuHasStock = wareFeignService.getSkuHasStock(ids);
            if(skuHasStock.getCode()==0){
                List<SkuHasStockVo> data = skuHasStock.getData(new TypeReference<List<SkuHasStockVo>>() {});
                if(data!=null&& !data.isEmpty()){
                    Map<Long, Boolean> collect = data.stream().collect(Collectors.toMap(SkuHasStockVo::getSkuId, SkuHasStockVo::getHasStock));
                    confirmVo.setStocks(collect);
                }
            }
        },threadPoolExecutor);
//        远程查询所有的用户地址列表
        CompletableFuture<Void> addressTask = CompletableFuture.runAsync(() -> {
            RequestContextHolder.setRequestAttributes(requestAttributes);
            confirmVo.setAddress(memberFeignService.getAddress(memberRespVo.getId()));
        }, threadPoolExecutor);
//        用户积分
        CompletableFuture<Void> integrationTask = CompletableFuture.runAsync(() -> {
            confirmVo.setIntegration(memberRespVo.getIntegration());
        }, threadPoolExecutor);
        CompletableFuture.allOf(addressTask,itemVoList,integrationTask).get();
//        TODO 订单令牌
        return confirmVo;
    }
}
package com.alatus.mall.order.feign;

import com.alatus.common.utils.R;
import com.alatus.mall.order.to.MemberAddressTo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;

@FeignClient("Mall-member")
public interface MemberFeignService {
    @GetMapping("/member/memberreceiveaddress/{memberId}/addresses")
    List<MemberAddressTo> getAddress(@PathVariable("memberId") Long memberId);
    @GetMapping("/member/memberreceiveaddress/changeAddr/{memberId}/{addrId}")
    R changeAddr(@PathVariable("memberId") Long memberId, @PathVariable("addrId") Long addrId);
}

 

package com.alatus.mall.order.feign;

import com.alatus.common.utils.R;
import com.alatus.mall.order.to.MemberAddressTo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;

@FeignClient("Mall-member")
public interface MemberFeignService {
    @GetMapping("/member/memberreceiveaddress/{memberId}/addresses")
    List<MemberAddressTo> getAddress(@PathVariable("memberId") Long memberId);
    @GetMapping("/member/memberreceiveaddress/changeAddr/{memberId}/{addrId}")
    R changeAddr(@PathVariable("memberId") Long memberId, @PathVariable("addrId") Long addrId);
}
package com.alatus.mall.order.feign;

import com.alatus.mall.order.vo.OrderItemVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;

@FeignClient("Mall-cart")
public interface CartFeignService {
    @GetMapping("/currentUserCartItem")
    List<OrderItemVo> getCurrentCartItem();
}

 

package com.alatus.mall.order.feign;

import com.alatus.mall.order.vo.OrderItemVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;

@FeignClient("Mall-cart")
public interface CartFeignService {
    @GetMapping("/currentUserCartItem")
    List<OrderItemVo> getCurrentCartItem();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值