UUID和机器码时间戳有关:https://www.cnblogs.com/itqiankun/p/11307738.html
-----------------------------------------------------------------------------------12-1-------------------------------------------------------------------------------
雪花算法:
41bit为毫秒数,10bit为机器ID,12bit为毫秒内的流水号。符号位0。
最后转为long这种整型数据。
-----------------------------------------------------------------------------12-2-------------------------------------------------------------------------------
优惠券字段?
1.id2.用户优惠券的券码3.领了那张券的id就是t_coupon表的id4.谁领了id5.是不是兑换了6.关联订单7.冗余
-----------------------------------------------------------------------------12-3-------------------------------------------------------------------------------
写api即可。
package com.xdclass.couponserviceapi.dto;
public class UserCouponDto {
private Integer couponId;
private Integer userId;
private Integer orderId;
public Integer getCouponId() {
return couponId;
}
public void setCouponId(Integer couponId) {
this.couponId = couponId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getOrderId() {
return orderId;
}
public void setOrderId(Integer orderId) {
this.orderId = orderId;
}
}
看下实体类,只要写一部分就可以了。
这个东西有什么用?就是一个对外提供的interface。
这个方法:
@Override
public String saveUserCoupon(UserCouponDto dto){
String result = check(dto);
if(result!=null){
return result;
}
TCoupon coupon = tCouponMapper.selectByPrimaryKey(dto.getCouponId());
if(coupon==null){
return "coupon无效";
}
return save2DB(dto,coupon);
}
领券功能的开发完毕。
测试:
@Test
public void testSaveUserCoupon(){
UserCouponDto dto = new UserCouponDto();
dto.setUserId(1234);
dto.setCouponId(1);
dto.setOrderId(10086);
System.err.println(couponService.saveUserCoupon(dto));
}
-----------------------------------------------------------------------------12-4------------------------------------------------------------------------------
做一个rpc的接口。
注意这个,都不是在api这个里面加的,你调用远程的服务,或者我自己对外提供服务都是要加的。
我们对外扩展这两个方法:
public List<CouponDto> getCouponList();
public String saveUserCoupon(UserCouponDto dto);
我们看下这个@service必须是dubbo的。
查看dubbo-admin:
已经有了。
-----------------------------------------------------------------------------12-5-------------------------------------------------------------------------------
启动shop项目:
如何用dubbo调用远程:
1.引入依赖
2.引入api包
这个意思是可以重新被覆盖的,release是不能重新覆盖的。
3.配置文件
4.加入包扫描:
注入:
接口找到是第四步的实现类。
-----------------------------------------------------------------------------12-6-------------------------------------------------------------------------------