《锋迷商城》——购物:结算 提交订单

《锋迷商城》系列项目

链接: 《一》 项目搭建
链接: 《二》数据库的创建
链接: 《三》业务流程设计
链接: 《四》业务流程实现:用户管理
链接: 《五》逆向工程
链接: 《六》用户认证



十七、购物车-结算 提交订单

在购物车列表中选择对应的商品之后,点击提交生成订单的过程

17.1 流程分析

image-20221106095514533

17.2 接口开发

17.2.1 收货地址列表接口

数据库和DAO层实现

根据tkMapper实现

业务层实现
public interface UserAddrService {
    ResultVO listAddrsById(int userId);
}
----------------------------------
    
@Service
public class UserAddrServiceImpl implements UserAddrService {

    @Autowired
    private UserAddrMapper userAddrMapper;


    @Override
    public ResultVO listAddrsById(int userId) {
        Example example = new Example(UserAddr.class);
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("userId",userId);
        criteria.andEqualTo("status",1);
        List<UserAddr> userAddrs = userAddrMapper.selectByExample(example);
        ResultVO resultVO = new ResultVO(ResStatus.OK, "success", userAddrs);
        return resultVO;
    }
}

控制层实现
@RestController
@Api(value = "提供收货地址相关接口",tags = "收获地址管理")
@CrossOrigin
@RequestMapping("/useraddr")
public class UserAddrController {
    @Autowired
    private UserAddrService userAddrService;

    @GetMapping("/list")
    public ResultVO isAddr(Integer userId, @RequestHeader("token") String token){
        return userAddrService.listAddrsById(userId);
    }
}

17.2.1 购物车记录列表接口

数据库和DAO层实现

在ShoppingCartMapper 接口中添加

List<ShoppingCartVO> selectShopcartByCids(List<Integer> cids);

mapper.xml映射配置

<select id="selectShopcartByCids"  resultMap="ShoppingCartVOMap">
 SELECT
        c.cart_id,
        c.product_id,
        c.sku_id,
        c.user_id,
        c.cart_num,
        c.cart_time,
        c.product_price,
        c.sku_props,
        p.product_name,
        i.url,
        s.original_price,
        s.sell_price,
        s.sku_name
    FROM shopping_cart c
    INNER JOIN product p
    on c.product_id=p.product_id
    INNER JOIN product_img i
    on i.item_id=p.product_id
    INNER JOIN product_sku s
    on c.sku_id=s.sku_id
    WHERE i.is_main=1 and c.cart_id in
    <foreach collection="cids" item="cid" separator="," open="(" close=")">
        #{cid}
    </foreach>
</select>
业务层实现

在ShoppingCartService接口中添加

ResultVO listSoopingCahrtByCids(String cids);
---------------------------------------------
@Override
    public ResultVO listSoopingCahrtByCids(String cids) {
        String[] arr = cids.split(",");
        List<Integer> list = new ArrayList<>();
        for (String s : arr) {
            list.add(Integer.parseInt(s));
        }
        List<ShoppingCartVO> shoppingCartVOS = shoppingCartMapper.selectShopcartByCids(list);
        ResultVO resultVO = new ResultVO(ResStatus.OK, "success", shoppingCartVOS);
        return resultVO;
    }
控制层实现

在shopcartController中添加

@ApiOperation("根据Cid查询购物车")
@GetMapping("/listbycids")
public ResultVO listByCids( String cids, @RequestHeader("token") String token) {
    return shoppingCartService.listSoopingCahrtByCids(cids);
}

17.2.1 保存订单

数据库和DAO层实现
业务层实现
控制层实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值