一、用户登录状态下的购物车操作
1. 将商品添加到购物车
1.1 在common_redis服务中实现缓存购物车信息
在common_redis模块,新增CartController,新增方法:将购物车的信息缓存到redis,方法的参数:@RequestBody Map<String,Object> map,方法的返回值:void
在业务层中实现将商品添加到缓存中
1.2 在common_redis服务中实现查询购物车信息
在common_redis模块,新增CartController,新增方法:根据用户ID查询购物车,方法的参数:@RequestParam String userId,方法的返回值:Map<String ,CartItem >
在业务层中实现查询购物车
1.3 在frontend_cart服务中实现用户在登陆状态下向购物车添加商品
在CartController中,在用户已经登录的情况下,
在业务层层中,方法的参数:Long itemId,Integer num,String userId,返回值: Result
流程:
第一,查询商品
定义方法,查询商品
第二,获取购物车(根据用户的id)
定义方法,获取购物车
第三,将商品加入购物车
第四,将购物车信息保存到Redis中
1.4 在frontend_cart服务中实现用户在登陆状态下向查看购物车商品
在CartController中实现用户登录的情况下的购物车
在业务层中RedisCartServiceImpl中,新增方法,查看购物车,
1.5 在frontend_cart服务中实现用户在登陆状态下购物车商品的数量修改
1.6 在frontend_cart服务中实现用户在登陆状态下购物车商品的删除
1.7 在frontend_sso模块实现用户登录业务实现购物车同步业务和删除
将临时购物车的商品同步到永久购物车
/**
* 用户注册与登录业务层
*/
@Service
public class SSOServiceImpl implements SSOService {
@Autowired
private TbUserMapper tbUserMapper;
@Autowired
private CommonRedisFeignClient commonRedisFeignClient;
@Value("${cart_cookie_name}")
private String cart_cookie_name;
/**
* 对用户的注册信息(用户名与电话号码)做数据校验
*/
@Override
public Result checkUserInfo(String checkValue, Integer checkFlag) {
TbUserExample example =new TbUserExample();
TbUserExample.Criteria criteria = example.createCriteria();
if(checkFlag == 1){
criteria.andUsernameEqualTo(checkValue);
}else if(checkFlag == 2){
criteria.andPhoneEqualTo(checkValue);
}
Integer rows = this.tbUserMapper.countByExample(example);
if(rows > 0){
return Resul