记得上下班打卡 | 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;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinSelfMarketingVo;
import com.liquidnet.service.goblin.dto.vo.GoblinShowStoreInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiGoodVo;
import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiPushVo;
import java.util.List;
......@@ -31,4 +33,20 @@ public interface IGoblinAppZhengzaiService {
* @return
*/
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 {
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "masterCode", value = "masterCode", example = "1"),
})
public ResponseDto<Integer> orderPush(@RequestParam("masterCode") @Valid String masterCode) {
return goblinOrderService.checkOrderResultMaterCode(masterCode);
public ResponseDto<List<GoblinZhengzaiPushVo>> orderPush(@RequestParam("masterCode") @Valid String masterCode) {
return goblinAppZhengzaiService.orderPush(masterCode);
}
@PostMapping("checkPayment")
......@@ -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 = "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) {
return goblinOrderService.checkOrderResultMaterCode(masterCode);
return goblinAppZhengzaiService.orderBind(uid,masterCode);
}
}
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.dto.vo.*;
import com.liquidnet.service.goblin.service.IGoblinAppZhengzaiService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.ObjectUtil;
import com.liquidnet.service.goblin.util.QueueUtils;
import com.liquidnet.service.goblin.util.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
......@@ -26,6 +28,8 @@ public class GoblinAppZhengzaiServiceImpl implements IGoblinAppZhengzaiService {
GoblinMongoUtils mongoUtils;
@Autowired
QueueUtils queueUtils;
@Autowired
GoblinOrderUtils orderUtils;
@Override
......@@ -72,4 +76,59 @@ public class GoblinAppZhengzaiServiceImpl implements IGoblinAppZhengzaiService {
}
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 {
orderSku.setSkuSpecs(JSON.toJSONString(skuVo.getSkuSpecList()));
orderSku.setPriceVoucher(priceBase.subtract(price));
orderSku.setCreatedAt(now);
//todo 需要记录spu名称和图片
goblinOrderSkuList.add(orderSku);
}
//优惠券
......@@ -671,8 +672,8 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
@Override
public ResponseDto<Integer> checkOrderResultMaterCode(String materCode) {
String[] orderIds = redisUtils.getMasterCode(materCode);
public ResponseDto<Integer> checkOrderResultMaterCode(String masterCode) {
String[] orderIds = redisUtils.getMasterCode(masterCode);
if (orderIds == null) {
return ResponseDto.failure("订单不存在");
} else {
......
......@@ -43,6 +43,7 @@ public class ObjectUtil {
private static final ArrayList<GoblinOrderAttr> goblinOrderAttrArrayList = new ArrayList<>();
private static final ArrayList<GoblinOrderSqlParam> goblinOrderSqlParamArrayList = 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();
......@@ -50,6 +51,10 @@ public class ObjectUtil {
return goblinStoreMgtGoodsVoPagedResult.clone();
}
public static ArrayList<GoblinZhengzaiPushVo> getGoblinZhengzaiPushVoArrayList() {
return (ArrayList<GoblinZhengzaiPushVo>) goblinZhengzaiPushVoArrayList.clone();
}
public static ArrayList<GoblinStoreOrderVo> getGoblinStoreOrderVoArrayList() {
return (ArrayList<GoblinStoreOrderVo>) goblinStoreOrderVoArrayList.clone();
}
......
......@@ -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.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