记得上下班打卡 | git大法好,push需谨慎

Commit d293d9ea authored by 胡佳晨's avatar 胡佳晨

提交 正在下单 出货和绑定订单

parent 3223bd70
package com.liquidnet.service.goblin.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "GoblinZhengzaiPushVo", description = "正在下单出货Vo")
@Data
public class GoblinZhengzaiPushVo implements Serializable, Cloneable {
private static final long serialVersionUID = 972558538207500034L;
@ApiModelProperty(position = 10, value = "spu名称")
private String spuName;
@ApiModelProperty(position = 10, value = "sku名称")
private String skuName;
@ApiModelProperty(position = 10, value = "款式规格[json]")
private String skuSpecs;
@ApiModelProperty(position = 11, value = "数量")
private Integer num;
private static final GoblinZhengzaiPushVo obj = new GoblinZhengzaiPushVo();
public static GoblinZhengzaiPushVo getNew() {
try {
return (GoblinZhengzaiPushVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinZhengzaiPushVo();
}
}
}
package com.liquidnet.service.goblin.service; package com.liquidnet.service.goblin.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinSelfMarketingVo; import com.liquidnet.service.goblin.dto.vo.GoblinSelfMarketingVo;
import com.liquidnet.service.goblin.dto.vo.GoblinShowStoreInfoVo; import com.liquidnet.service.goblin.dto.vo.GoblinShowStoreInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiGoodVo; import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiGoodVo;
import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiPushVo;
import java.util.List; import java.util.List;
...@@ -31,4 +33,20 @@ public interface IGoblinAppZhengzaiService { ...@@ -31,4 +33,20 @@ public interface IGoblinAppZhengzaiService {
* @return * @return
*/ */
List<GoblinZhengzaiGoodVo> getSpuList(String marketId,String storeId); List<GoblinZhengzaiGoodVo> getSpuList(String marketId,String storeId);
/**
* 正在下单出货
* @param masterCode
* @return
*/
ResponseDto<List<GoblinZhengzaiPushVo>> orderPush(String masterCode);
/**
* 订单绑定
* @param uid
* @param masterCode
* @return
*/
ResponseDto<Boolean> orderBind(String uid,String masterCode);
} }
...@@ -75,8 +75,8 @@ public class GoblinAppZhengzaiController { ...@@ -75,8 +75,8 @@ public class GoblinAppZhengzaiController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "masterCode", value = "masterCode", example = "1"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "masterCode", value = "masterCode", example = "1"),
}) })
public ResponseDto<Integer> orderPush(@RequestParam("masterCode") @Valid String masterCode) { public ResponseDto<List<GoblinZhengzaiPushVo>> orderPush(@RequestParam("masterCode") @Valid String masterCode) {
return goblinOrderService.checkOrderResultMaterCode(masterCode); return goblinAppZhengzaiService.orderPush(masterCode);
} }
@PostMapping("checkPayment") @PostMapping("checkPayment")
...@@ -86,8 +86,8 @@ public class GoblinAppZhengzaiController { ...@@ -86,8 +86,8 @@ public class GoblinAppZhengzaiController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "masterCode", value = "masterCode", example = "1"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "masterCode", value = "masterCode", example = "1"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "uid", example = "1"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "uid", example = "1"),
}) })
public ResponseDto<Integer> orderBind(@RequestParam("masterCode") @Valid String masterCode, public ResponseDto<Boolean> orderBind(@RequestParam("masterCode") @Valid String masterCode,
@RequestParam("uid") @Valid String uid) { @RequestParam("uid") @Valid String uid) {
return goblinOrderService.checkOrderResultMaterCode(masterCode); return goblinAppZhengzaiService.orderBind(uid,masterCode);
} }
} }
package com.liquidnet.service.goblin.service.impl; package com.liquidnet.service.goblin.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst; import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.service.IGoblinAppZhengzaiService; import com.liquidnet.service.goblin.service.IGoblinAppZhengzaiService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils; import com.liquidnet.service.goblin.util.*;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.ObjectUtil;
import com.liquidnet.service.goblin.util.QueueUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -26,6 +28,8 @@ public class GoblinAppZhengzaiServiceImpl implements IGoblinAppZhengzaiService { ...@@ -26,6 +28,8 @@ public class GoblinAppZhengzaiServiceImpl implements IGoblinAppZhengzaiService {
GoblinMongoUtils mongoUtils; GoblinMongoUtils mongoUtils;
@Autowired @Autowired
QueueUtils queueUtils; QueueUtils queueUtils;
@Autowired
GoblinOrderUtils orderUtils;
@Override @Override
...@@ -72,4 +76,59 @@ public class GoblinAppZhengzaiServiceImpl implements IGoblinAppZhengzaiService { ...@@ -72,4 +76,59 @@ public class GoblinAppZhengzaiServiceImpl implements IGoblinAppZhengzaiService {
} }
return voList; return voList;
} }
@Override
public ResponseDto<List<GoblinZhengzaiPushVo>> orderPush(String masterCode) {
String[] orderIds = redisUtils.getMasterCode(masterCode);
List<GoblinZhengzaiPushVo> listVo = ObjectUtil.getGoblinZhengzaiPushVoArrayList();
LocalDateTime now = LocalDateTime.now();
if (orderIds == null) {
return ResponseDto.failure("订单不存在");
} else {
for (String orderId : orderIds) {
GoblinStoreOrderVo storeOrderVo = redisUtils.getGoblinOrder(orderId);
List<String> skuIds = storeOrderVo.getOrderSkuVoIds();
for (String skuId:skuIds){
GoblinZhengzaiPushVo vo = GoblinZhengzaiPushVo.getNew();
GoblinOrderSkuVo skuInfoVo = redisUtils.getGoblinOrderSkuVo(skuId);
vo.setSkuName(skuInfoVo.getSkuName());
vo.setNum(skuInfoVo.getNum());
vo.setSkuSpecs(skuInfoVo.getSkuSpecs());
vo.setSpuName("");//todo 胡佳晨
}
}
}
return ResponseDto.success(listVo);
}
@Override
public ResponseDto<Boolean> orderBind(String uid, String masterCode) {
String[] orderIds = redisUtils.getMasterCode(masterCode);
LocalDateTime now = LocalDateTime.now();
BigDecimal priceActual = BigDecimal.ZERO;
if (orderIds == null) {
return ResponseDto.failure("订单不存在");
} else {
for (String orderId : orderIds) {
GoblinStoreOrderVo storeOrderVo = redisUtils.getGoblinOrder(orderId);
if (storeOrderVo.getUserId().equals(uid)) {
continue;
}
storeOrderVo.setUserId(orderId);
priceActual = priceActual.add(storeOrderVo.getPriceActual());
//mongo
mongoUtils.updateGoblinStoreOrderVo(storeOrderVo.getOrderId(), storeOrderVo);
//redis
redisUtils.setGoblinOrder(storeOrderVo.getOrderId(), storeOrderVo);
//mysql
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getKey(),
SqlMapping.get("goblin_order.zhengzai.bind",
uid, now, storeOrderVo.getOrderId(), now, now));
}
if (priceActual.compareTo(BigDecimal.ZERO) != 0) {
orderUtils.doTask(uid, priceActual);
}
}
return ResponseDto.success();
}
} }
...@@ -239,6 +239,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -239,6 +239,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
orderSku.setSkuSpecs(JSON.toJSONString(skuVo.getSkuSpecList())); orderSku.setSkuSpecs(JSON.toJSONString(skuVo.getSkuSpecList()));
orderSku.setPriceVoucher(priceBase.subtract(price)); orderSku.setPriceVoucher(priceBase.subtract(price));
orderSku.setCreatedAt(now); orderSku.setCreatedAt(now);
//todo 需要记录spu名称和图片
goblinOrderSkuList.add(orderSku); goblinOrderSkuList.add(orderSku);
} }
//优惠券 //优惠券
...@@ -671,8 +672,8 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -671,8 +672,8 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
} }
@Override @Override
public ResponseDto<Integer> checkOrderResultMaterCode(String materCode) { public ResponseDto<Integer> checkOrderResultMaterCode(String masterCode) {
String[] orderIds = redisUtils.getMasterCode(materCode); String[] orderIds = redisUtils.getMasterCode(masterCode);
if (orderIds == null) { if (orderIds == null) {
return ResponseDto.failure("订单不存在"); return ResponseDto.failure("订单不存在");
} else { } else {
......
...@@ -43,6 +43,7 @@ public class ObjectUtil { ...@@ -43,6 +43,7 @@ public class ObjectUtil {
private static final ArrayList<GoblinOrderAttr> goblinOrderAttrArrayList = new ArrayList<>(); private static final ArrayList<GoblinOrderAttr> goblinOrderAttrArrayList = new ArrayList<>();
private static final ArrayList<GoblinOrderSqlParam> goblinOrderSqlParamArrayList = new ArrayList<>(); private static final ArrayList<GoblinOrderSqlParam> goblinOrderSqlParamArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreOrderVo> goblinStoreOrderVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreOrderVo> goblinStoreOrderVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinZhengzaiPushVo> goblinZhengzaiPushVoArrayList = new ArrayList<>();
private static final BasicDBObject basicDBObject = new BasicDBObject(); private static final BasicDBObject basicDBObject = new BasicDBObject();
...@@ -50,6 +51,10 @@ public class ObjectUtil { ...@@ -50,6 +51,10 @@ public class ObjectUtil {
return goblinStoreMgtGoodsVoPagedResult.clone(); return goblinStoreMgtGoodsVoPagedResult.clone();
} }
public static ArrayList<GoblinZhengzaiPushVo> getGoblinZhengzaiPushVoArrayList() {
return (ArrayList<GoblinZhengzaiPushVo>) goblinZhengzaiPushVoArrayList.clone();
}
public static ArrayList<GoblinStoreOrderVo> getGoblinStoreOrderVoArrayList() { public static ArrayList<GoblinStoreOrderVo> getGoblinStoreOrderVoArrayList() {
return (ArrayList<GoblinStoreOrderVo>) goblinStoreOrderVoArrayList.clone(); return (ArrayList<GoblinStoreOrderVo>) goblinStoreOrderVoArrayList.clone();
} }
......
...@@ -30,4 +30,6 @@ goblin_order.pay.order=UPDATE goblin_store_order SET payment_type = ? ,payment_i ...@@ -30,4 +30,6 @@ goblin_order.pay.order=UPDATE goblin_store_order SET payment_type = ? ,payment_i
goblin_order.pay.sku=UPDATE goblin_order_sku SET status = ? ,updated_at = ? WHERE order_sku_id = ? and (updated_at <= ? or created_at = ? or updated_at is null) goblin_order.pay.sku=UPDATE goblin_order_sku SET status = ? ,updated_at = ? WHERE order_sku_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
#---- 再次支付 #---- 再次支付
goblin_order.pay.again=UPDATE goblin_store_order SET pay_type = ? ,device_from = ? ,pay_code = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null) goblin_order.pay.again=UPDATE goblin_store_order SET pay_type = ? ,device_from = ? ,pay_code = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
#---- 订单绑定[正在下单]
goblin_order.zhengzai.bind=UPDATE goblin_store_order SET uid = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
#---- 订单关闭 #---- 订单关闭
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment