提交 5212e546 authored 作者: 梁业锦's avatar 梁业锦 💬

Merge remote-tracking branch 'origin/master'

......@@ -31,14 +31,14 @@ public class TbCfOrderController {
@ApiOperation("用户结算,返回订单")
@GetMapping("/settle")
public Result<TbCfOrderVo> settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.settleAccount();
public Result<TbCfOrderVo> settleAccount(@ApiParam("发放ID") @RequestParam(value = "iss_coupon_id",required = false) String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.settleAccount(iss_coupon_id);
}
@ApiOperation("用户确定下单")
@PostMapping("/place")
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.placeOrder(tbCfOrderVo);
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo,@ApiParam("发放ID") @RequestParam(value = "iss_coupon_id",required = false) String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.placeOrder(tbCfOrderVo,iss_coupon_id);
}
/**
......
......@@ -15,5 +15,7 @@ import java.util.List;
public interface TbCfIssueCouponDao extends BaseDao<TbCfIssueCouponEntity> {
List<TbCfIssueCouponEntityExtends> queryCouponByUserId(String userId);
int changeCouponStatus(String userId,String couponId);
}
......@@ -47,4 +47,5 @@ public interface TbCfOrderDao extends BaseDao<TbCfOrderEntity> {
List<TbCfItemShippedEntity> getDeliveryList(Date beginDate, Date endDate);
OrderEntity getOrder(String orderId);
TbCfCouponEntity queryCouponPrice(String iss_coupon_id);
}
......@@ -17,7 +17,11 @@ import java.util.Date;
@ApiModel
public class TbCfCouponEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*优惠券发放表id
*/
@ApiModelProperty("优惠券发放表id")
private String issCouponId;
/**
* 优惠券id
*/
......@@ -411,4 +415,12 @@ public class TbCfCouponEntity implements Serializable {
public Date getUpdateTime() {
return updateTime;
}
public String getIssCouponId() {
return issCouponId;
}
public void setIssCouponId(String issCouponId) {
this.issCouponId = issCouponId;
}
}
......@@ -16,7 +16,7 @@ public class TbCfIssueCouponEntity implements Serializable {
/**
* 发放表id
*/
private String couponIssuetableId;
private String iss_coupon_id;
/**
* 优惠券id
*/
......@@ -47,16 +47,14 @@ public class TbCfIssueCouponEntity implements Serializable {
/**
* 设置:发放表id
*/
public void setCouponIssuetableId(String couponIssuetableId) {
this.couponIssuetableId = couponIssuetableId;
public String getIss_coupon_id() {
return iss_coupon_id;
}
/**
* 获取:发放表id
*/
public String getCouponIssuetableId() {
return couponIssuetableId;
public void setIss_coupon_id(String iss_coupon_id) {
this.iss_coupon_id = iss_coupon_id;
}
/**
* 设置:优惠券id
*/
......
......@@ -81,7 +81,7 @@ public interface TbCfOrderService {
*
* @return
*/
Result settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/**
* 用户下单
......@@ -89,7 +89,7 @@ public interface TbCfOrderService {
* @param tbCfOrderVo
* @return
*/
Result placeOrder(TbCfOrderVo tbCfOrderVo) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result placeOrder(TbCfOrderVo tbCfOrderVo,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/**
* 获取用户订单列表
......
......@@ -7,10 +7,7 @@ import com.diaoyun.zion.chinafrica.entity.*;
import com.diaoyun.zion.chinafrica.enums.CouponCategoryEnum;
import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum;
import com.diaoyun.zion.chinafrica.enums.OrderStatusEnum;
import com.diaoyun.zion.chinafrica.service.SpiderService;
import com.diaoyun.zion.chinafrica.service.TbCfCouponService;
import com.diaoyun.zion.chinafrica.service.TbCfFeeService;
import com.diaoyun.zion.chinafrica.service.TbCfOrderService;
import com.diaoyun.zion.chinafrica.service.*;
import com.diaoyun.zion.chinafrica.vo.TbCfCartItemDetailVo;
import com.diaoyun.zion.chinafrica.vo.TbCfFinanceVo;
import com.diaoyun.zion.chinafrica.vo.TbCfOrderVo;
......@@ -103,6 +100,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired
private HttpServletRequest request; //自动注入request
@Autowired
private TbCfIssueCouponService tbCfIssueCouponService; //发放表
@Override
public TbCfOrderEntity queryObject(String orderId) {
......@@ -140,27 +139,36 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return tbCfOrderDao.deleteBatch(orderIds);
}
/**
* 用户计算1
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
* @throws ExecutionException
* @throws InterruptedException
* @throws TimeoutException
*/
@Override
public Result settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
public Result settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
//获取购物车已勾选 商品
List<TbCfCartItemDetailVo> tbCfCartItemDetailList = tbCfItemDetailDao.getCartItemList(tbCfUserInfoVo.getUserId(), StateConstant.VALID);
if (tbCfCartItemDetailList.isEmpty()) {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取订单数据
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList);
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList,iss_coupon_id);
result.setData(tbCfOrder).setMessage("Order pending settlement");
}
return result;
}
@Override
public Result placeOrder(TbCfOrderVo pageOrder) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
public Result placeOrder(TbCfOrderVo pageOrder,String iss_coupon_id ) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
......@@ -172,7 +180,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取下单的订单数据
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList);
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList,iss_coupon_id);
//持久化订单数据
TbCfOrderEntity tbCfOrderEntity = new TbCfOrderEntity();
BeanUtils.copyProperties(definiteOrder, tbCfOrderEntity);
......@@ -267,7 +275,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
TbCfFinanceEntity tbCfFinance = createFinance(charge, tbCfOrderVo);
TbCfFinanceVo tbCfFinanceVo = new TbCfFinanceVo();
BeanUtils.copyProperties(tbCfFinance, tbCfFinanceVo);
//赠送购物返券
/* //赠送购物返券
List<TbCfCouponEntity> couponList = tbCfCouponDao.getCouponByCategory(CouponCategoryEnum.SHOP.getValue(), new Date());
if (!couponList.isEmpty()) {
//领取优惠券
......@@ -275,7 +283,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
if (couponResult.getCode() == ResultCodeEnum.SUCCESS.getCode()) {
tbCfFinanceVo.setCouponId(couponList.get(0).getCouponId());
}
}
}*/
result.setData(tbCfFinanceVo);
} else {
result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage("Payment failed!");
......@@ -510,7 +518,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @param couponId
*/
private void couponUse(String userId, String couponId) {
//更新领取记录已领取
int res = tbCfTakeCouponDao.updateEnableFlag(userId, couponId, StateConstant.INVALID);
if (res < 1) {
......@@ -572,9 +579,9 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws IOException
* @throws URISyntaxException
*/
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList) {
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String iss_coupon_id) {
TbCfOrderVo definiteOrder = getGenericOrder(tbCfCartItemDetailList);
//获取可以使用的优惠券,后续还有判断此订单是否可以使用
/*//获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
if (!tbCfCouponList.isEmpty()) {
//分开可使用和不可使用优惠券
......@@ -590,10 +597,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
definiteOrder.setCouponPrice(usableCoupon.getDeductAmount());
}
}
}
}*/
//计算实际需要付款
countRealityPay(definiteOrder);
countRealityPay(definiteOrder,iss_coupon_id);
//获取订单地址
String deliveryAddressId = pageOrder.getDeliveryAddressId();
Validator.NOT_BLANK.validate("address", deliveryAddressId);
......@@ -687,10 +694,21 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return result;
}
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
/**
* 用户计算价格2
* @param tbCfUserInfoVo
* @param tbCfCartItemDetailList
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
* @throws ExecutionException
* @throws InterruptedException
* @throws TimeoutException
*/
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
TbCfOrderVo tbCfOrder = getGenericOrder(tbCfCartItemDetailList);
//获取可以使用的优惠券,后续还有判断此订单是否可以使用
/* //获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
if (!tbCfCouponList.isEmpty()) {
......@@ -700,10 +718,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//设置默认的优惠券
setDefaultCoupon(tbCfOrder);
}
}
}*/
//计算实际需要付款
countRealityPay(tbCfOrder);
countRealityPay(tbCfOrder,iss_coupon_id);
tbCfOrder.setUserId(tbCfUserInfoVo.getUserId());
tbCfOrder.setUserName(tbCfUserInfoVo.getNick());
......@@ -715,7 +733,13 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
*
* @param tbCfOrder
*/
private void countRealityPay(TbCfOrderVo tbCfOrder) {
private void countRealityPay(TbCfOrderVo tbCfOrder,String iss_coupon_id) {
if(iss_coupon_id!=null){
TbCfIssueCouponEntity coupon = tbCfIssueCouponService.queryObject(iss_coupon_id);
TbCfCouponEntity couponEntity = tbCfOrderDao.queryCouponPrice(iss_coupon_id);
tbCfOrder.setCouponPrice(couponEntity.getDeductAmount());
}
BigDecimal couponPrice = tbCfOrder.getCouponPrice();
//实际需要支付款项
if (couponPrice != null) {
......@@ -731,7 +755,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}
/**
* 分开可使用和不可使用优惠券
* 分开可使用和不可使用优惠券(暂时没用)
*
* @param tbCfOrder
* @param tbCfCouponList
......
......@@ -161,8 +161,8 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
String userid = IdUtil.createIdbyUUID();
tbCfUserInfoVo.setUserId(userid);
//用户姓名
String avatar = domainProperties.getProperty("user.avatar");
tbCfUserInfoVo.setAvatar(avatar);
String nick = domainProperties.getProperty("user.nick");
tbCfUserInfoVo.setNick(nick);
fillUserNecessayInfo(tbCfUserInfoVo);
//加密密码
String password = passwordEncoder.encode(tbCfUserInfoVo.getPassword());
......@@ -180,10 +180,10 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
String issuseCoupon_id = IdUtil.createIdbyUUID();
//把上面获取到的值,赋值到实体类中
issue.setCouponId(coupon_id);
issue.setCouponIssuetableId(issuseCoupon_id);
issue.setIssueId(issuseCoupon_id);
issue.setCreateTime(date);
issue.setUserId(userid);
issue.setNick(avatar);
issue.setNick(nick);
issue.setEnableFlag(0);
tbCfIssueCouponService.save(issue);
}
......@@ -474,6 +474,7 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
}
}*/
private void fillUserNecessayInfo(TbCfUserInfoVo tbCfUserInfoVo) {
tbCfUserInfoVo.setAvatar(domainProperties.getProperty("user.avatar"));
tbCfUserInfoVo.setUserNo(IdUtil.createIdByDate());
tbCfUserInfoVo.setPhoneFlag(StateConstant.INVALID);
tbCfUserInfoVo.setLoginCount(0);
......
......@@ -25,6 +25,7 @@
<result property="updateUserId" column="update_user_id"/>
<result property="updateTime" column="update_time"/>
<result property="couponVaild" column="coupon_vaild"/>
<result property="issCouponId" column="coupon_issuetable_id"/>
</resultMap>
<select id="queryObject" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCouponEntity">
......@@ -196,7 +197,8 @@
<!--查询用户所有有效的优惠券-->
<select id="queryUserAvailableCoupon" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCouponEntity">
select DISTINCT
select
t3.coupon_issuetable_id issCouponId,
t2.coupon_id,
t2.coupon_category_id,
t4.coupon_category_name,
......@@ -235,7 +237,8 @@
<!--获取已使用的优惠券-->
<select id="queryUserUsedCoupon" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCouponEntity">
select DISTINCT
select
t3.coupon_issuetable_id issCouponId,
t2.coupon_id,
t2.coupon_category_id,
t4.coupon_category_name,
......@@ -267,7 +270,8 @@
<!--获取已过期的优惠券-->
<select id="queryUserExpiredoupon" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCouponEntity">
select DISTINCT
select
t3.coupon_issuetable_id issCouponId,
t2.coupon_id,
t2.coupon_category_id,
t4.coupon_category_name,
......
......@@ -136,7 +136,9 @@
AND name LIKE concat('%',#{name},'%')
</if>
</select>
<select id="queryCouponPrice" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCouponEntity">
select t2.* from tb_cf_issue_coupon t1 left join tb_cf_coupon t2 on t2.coupon_id=t1.coupon_id where t1.coupon_issuetable_id=#{iss_coupon_id}
</select>
<insert id="save" parameterType="com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity">
insert into tb_cf_order(
`order_id`,
......
......@@ -458,7 +458,7 @@ public class ZionApplicationTests {
String issuseCoupon_id = IdUtil.createIdbyUUID();
//把上面获取到的值,赋值到实体类中
issue.setCouponId("1087f4a682354843b145d36c27d2d902");
issue.setCouponIssuetableId("5308312b76cd4819b7d94f01dea12ab8");
issue.setIssueId("5308312b76cd4819b7d94f01dea12ab8");
issue.setCreateTime(new Date().toString());
issue.setUserId("5308312b76cd4819b7d94f01dea12ab8");
issue.setNick("avatar");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论