MemberAddrController
/**
* 新增会员收货地址
* @param memberAddr 会员收货地址对象
* @return
*/
@ApiOperation("新增会员收货地址")
@PostMapping
public Result<String> saveMemberAddr(@RequestBody MemberAddr memberAddr) {
String openId = AuthUtils.getMemberOpenId();
Boolean saved = memberAddrService.saveMemberAddr(memberAddr,openId);
return Result.handle(saved);
}
MemberAddrServiceImpl
/**
* 会员收货地址业务:
* 1.会员必须得有一个默认收货地址
* 如果会员新增的第1个收货地址应该为默认收货地址
* @param memberAddr
* @param openId
* @return
*/
@Override
@CacheEvict(key = "#openId")
public Boolean saveMemberAddr(MemberAddr memberAddr,String openId) {
// 补充收货地址信息
memberAddr.setCommonAddr(0);
memberAddr.setStatus(1);
memberAddr.setCreateTime(new Date());
memberAddr.setUpdateTime(new Date());
memberAddr.setOpenId(openId);
// 根据会员openId查询会员收货地址数量
Long count = memberAddrMapper.selectCount(new LambdaQueryWrapper<MemberAddr>()
.eq(MemberAddr::getOpenId, openId)
);
// 判断会员是否有收货地址
if (0 == count) {
// 说明:当前会员新增的收货地址为第1个即默认收货地址
memberAddr.setCommonAddr(1);
}
return memberAddrMapper.insert(memberAddr)>0;
}