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

Commit 966da490 authored by dongchun's avatar dongchun

Merge remote-tracking branch 'origin/dev_goblin' into dev_goblin

parents 776c5728 ee3c5972
......@@ -17,9 +17,11 @@ public class GoblinStoreMgtThumbVo implements java.io.Serializable, Cloneable {
private String logoPic;
@ApiModelProperty(position = 13, value = "店铺状态[0-填写资料中|1-店铺审核中|2-审核不通过|3-审核通过|4-停业|5-营业]")
private String status;
@ApiModelProperty(position = 14, value = "店铺类型[1-普通店铺|2-加盟|3-连锁|5-直营]")
@ApiModelProperty(position = 14, value = "拒绝原因[256]")
private String reason;
@ApiModelProperty(position = 15, value = "店铺类型[1-普通店铺|2-加盟|3-连锁|5-直营]")
private String storeType;
@ApiModelProperty(position = 15, value = "认证类型[1-企业/公司|2-个体工商户]")
@ApiModelProperty(position = 16, value = "认证类型[1-企业/公司|2-个体工商户]")
private String certType;
private static final GoblinStoreMgtThumbVo obj = new GoblinStoreMgtThumbVo();
......@@ -37,6 +39,7 @@ public class GoblinStoreMgtThumbVo implements java.io.Serializable, Cloneable {
this.setStoreName(source.getStoreName());
this.setLogoPic(source.getLogoPic());
this.setStatus(source.getStatus());
this.setReason(source.getReason());
this.setStoreType(source.getStoreType());
this.setCertType(source.getCertType());
return this;
......
package com.liquidnet.service.goblin.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class GoblinAppOrderRefundParam {
@ApiModelProperty(value = "订单id")
@NotNull(message = "订单ID不能为空")
private String orderId;
@ApiModelProperty(value = "退款原因")
@NotNull(message = "退款原因不能为空")
private String reason;
@ApiModelProperty(value = "退款截图[逗号隔开]")
private String pics;
@ApiModelProperty(value = "详细描述")
private String describes;
@ApiModelProperty(value = "退款类型[1-退款|2-退货]")
private Integer refundType;
@ApiModelProperty(value = "退款orderSkuId[不传为整单退款]")
private String orderSkuId;
}
package com.liquidnet.service.goblin.param;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 商品信息
* </p>
*
* @author liquidnet
* @since 2021-12-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinGoodsParamz implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 商品id
*/
private String spuId;
/**
* 商品编码
*/
private String spuNo;
/**
* 商品名称
*/
private String name;
/**
* 商品副标题
*/
private String subtitle;
/**
* 销售价-原价
*/
private BigDecimal sellPrice;
/**
* 价格区间MIN
*/
private BigDecimal priceGe;
/**
* 价格区间MAX
*/
private BigDecimal priceLe;
/**
* 商品简介
*/
private String intro;
/**
* 详情
*/
private String details;
/**
* 封面图片地址
*/
private String coverPic;
/**
* 商品视频地址
*/
private String video;
/**
* 规格展现方式[1-常规|2-组合]
*/
private String specMode;
/**
* 商品的店铺id,如果是平台的则为0
*/
private String storeId;
/**
* 平台一级分类id
*/
private String cateFid;
/**
* 平台二级分类id
*/
private String cateSid;
/**
* 平台三级分类id
*/
private String cateTid;
/**
* 店铺一级分类id
*/
private String storeCateFid;
/**
* 店铺二级分类id
*/
private String storeCateSid;
/**
* 店铺三级分类id
*/
private String storeCateTid;
/**
* 品牌id
*/
private String brandId;
/**
* 上架处理方式[1-等待手动上架|2-直接上架售卖|3-预约定时上架]
*/
private String shelvesHandle;
/**
* 上架处理方式为3-预约定时上架时需要指定]
*/
private LocalDateTime shelvesTime;
/**
* 商品有效期
*/
private LocalDateTime spuValidity;
/**
* 是否虚拟商品[0-否|1-是]
*/
private String virtualFlg;
/**
* 审核状态[0-编辑中|1-审核中|2-审核不通过|3-审核通过]
*/
private String status;
/**
* 审核拒绝原因
*/
private String reason;
/**
* 商品上架状态[0-待上架|1-下架|2-违规|3-上架]
*/
private String shelvesStatus;
/**
* 自定义展示[0-默认展示|1-隐藏不可购买]
*/
private String spuAppear;
/**
* 删除标记[0-未删除|1-删除]
*/
private String delFlg;
/**
* 上架时间
*/
private LocalDateTime shelvesAt;
private String createdBy;
private LocalDateTime createdAt;
private String updatedBy;
private LocalDateTime updatedAt;
private String deletedBy;
private LocalDateTime deletedAt;
/**
* 物流模版id
*/
private String logisticsTemplate;
private String comment;
private Integer saleCount;
private static final GoblinGoodsParamz obj = new GoblinGoodsParamz();
public static GoblinGoodsParamz getNew() {
try {
return (GoblinGoodsParamz) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinGoodsParamz();
}
}
}
......@@ -4,6 +4,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
import com.liquidnet.service.goblin.param.GoblinAppOrderRefundParam;
import java.util.List;
......@@ -12,4 +13,6 @@ public interface IGoblinOrderAppService {
ResponseDto<List<GoblinAppOrderListVo>> orderList(int page);
ResponseDto<GoblinAppOrderDetailsVo> orderDetails(String orderId);
ResponseDto<Boolean> applyRefund(GoblinAppOrderRefundParam param);
}
......@@ -7,17 +7,23 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.zhengzai.goblin.service.impl.GoblinFrontSelectGoodsServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisGoblinUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.entity.GoblinFrontSelectGoods;
import com.liquidnet.service.goblin.entity.GoblinGoods;
import com.liquidnet.service.goblin.mapper.GoblinGoodsMapper;
import com.liquidnet.service.goblin.param.GoblinFrontSelectGoodsParam;
import com.liquidnet.service.goblin.param.GoblinGoodsParamz;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
......@@ -38,6 +44,8 @@ public class GoblinFrontSelectGoodsController extends BaseController {
private GoblinGoodsMapper goblinGoodsMapper;
@Autowired
private GoblinFrontSelectGoodsServiceImpl goblinFrontSelectGoodsService;
@Autowired
private RedisGoblinUtil redisGoblinUtil;
/***
* @author zhangfuxin
......@@ -64,8 +72,28 @@ public class GoblinFrontSelectGoodsController extends BaseController {
queryWrapper.orderByAsc(GoblinGoods::getPriceGe);
}
List<GoblinGoods> list=goblinGoodsMapper.selectList(queryWrapper);
return AjaxResult.success(list);
List<GoblinGoodsParamz> list1=new ArrayList<>();
if(null!=list&&list.size()>0){
for(GoblinGoods goblins:list){
GoblinGoodsParamz goblinGoodsParamz=GoblinGoodsParamz.getNew();
BeanUtils.copyProperties(goblins,goblinGoodsParamz);
//Integer counts=red.getSpuSaleCount(goblinGoodsInfoVo.getSpuId());
Object obj =redisGoblinUtil.get(GoblinRedisConst.REDIS_GOBLIN_SALE_SPU_COUNT.concat(goblins.getSpuId()));
if(null==obj){
goblinGoodsParamz.setSaleCount(0);
}else{
goblinGoodsParamz.setSaleCount((int)obj);
}
list1.add(goblinGoodsParamz);
}
if(type.equals("2")){
Collections.sort(list1, new Comparator<GoblinGoodsParamz>() {
public int compare(GoblinGoodsParamz arg0, GoblinGoodsParamz arg1) {
return -(arg0.getSaleCount().compareTo(arg1.getSaleCount()));
}});
}
}
return AjaxResult.success(list1);
}
/***
......
......@@ -245,6 +245,7 @@ public class MQConst {
GOBLIN_ORDER_AGAIN("goblin:stream:order:again", "group.order:again", "订单再次支付"),
GOBLIN_ORDER_CLOSE("goblin:stream:order:close", "group.order:close", "订单关闭"),
GOBLIN_STORE_ORDER_OPERA("goblin:stream:order:store", "group.order:store", "商铺订单操作"),
GOBLIN_USER_ORDER_OPERA("goblin:stream:order:user", "group.order:user", "用户订单操作"),
;
private final String key;
......
......@@ -127,8 +127,8 @@ liquidnet:
executor-main:
xxl:
admin:
#addresses: 172.17.121.166:8090
addresses: 192.168.96.147:8090
addresses: 172.17.207.180:8090
# addresses: 192.168.96.147:8090
client:
admin:
phpPayUrl: http://ttestdragon.zhengzai.tv
......
package com.liquidnet.service.consumer.goblin.config;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.goblin.receiver.ConsumerGoblinStoreOrderRdsReceiver;
import com.liquidnet.service.consumer.goblin.receiver.ConsumerGoblinUserOrderRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription;
import java.time.Duration;
@Configuration
public class ConsumerGoblinUserOrderRedisStreamConfig {
@Autowired
ConsumerGoblinUserOrderRdsReceiver consumerGoblinUserOrderRdsReceiver;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
.build();
return StreamMessageListenerContainer.create(factory, options);
}
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinUserOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(
Consumer.from(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getGroup(), MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.name() + t),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getKey(), ReadOffset.lastConsumed()), consumerGoblinUserOrderRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionGoblinUserOrder(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinUserOrder(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionGoblinUserOrder2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinUserOrder(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionGoblinUserOrder3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinUserOrder(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
/* -------------------------------------------------------- | */
}
package com.liquidnet.service.consumer.goblin.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerGoblinUserOrderRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getKey();
}
@Override
protected String getRedisStreamGroup() {
return MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getGroup();
}
}
......@@ -22,6 +22,9 @@ XGROUP CREATE goblin:stream:order:close group.order:close 0
XADD goblin:stream:order:store * 0 0
XGROUP CREATE goblin:stream:order:store group.order:store 0
XADD goblin:stream:order:user * 0 0
XGROUP CREATE goblin:stream:order:user group.order:user 0
#---- #
#---- 购物车
XADD goblin:stream:sql.shopcart * 0 0
......
......@@ -7,6 +7,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinPayInnerResultVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
import com.liquidnet.service.goblin.param.GoblinAppOrderRefundParam;
import com.liquidnet.service.goblin.param.PayAgainParam;
import com.liquidnet.service.goblin.param.SyncOrderParam;
import com.liquidnet.service.goblin.service.IGoblinOrderAppService;
......@@ -37,7 +38,7 @@ public class GoblinOrderAppController {
return goblinOrderAppService.orderList(page);
}
@PostMapping("deltails")
@PostMapping("details")
@ApiOperation("详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "orderId", value = "订单id", example = "1"),
......@@ -46,4 +47,10 @@ public class GoblinOrderAppController {
return goblinOrderAppService.orderDetails(orderId);
}
@PostMapping("applyRefund")
@ApiOperation("退款申请")
public ResponseDto<Boolean> applyRefund(@RequestBody GoblinAppOrderRefundParam param) {
return goblinOrderAppService.applyRefund(param);
}
}
......@@ -147,8 +147,8 @@ public class GoblinStoreMgtGoodsController {
List<String> tagIdList = CollectionUtil.arrayListString();
tagIdList.addAll(goodsTagIdList);
tagIdList.addAll(goodsExtagIdList);
if (!CollectionUtils.isEmpty(tagIdList)) {
List<GoblinSelfTagVo> selfTagVoList = goblinMongoUtils.getSelfTagVos(tagIdList);
List<GoblinSelfTagVo> selfTagVoList;
if (!CollectionUtils.isEmpty(tagIdList) && !CollectionUtils.isEmpty(selfTagVoList = goblinMongoUtils.getSelfTagVos(tagIdList))) {
if (!CollectionUtils.isEmpty(goodsTagIdList)) {
List<GoblinGoodsTagVo> goodsTagVoList = ObjectUtil.getGoblinGoodsTagVoArrayList();
for (int i = 0; i < goodsTagIdList.size(); i++)
......@@ -170,7 +170,7 @@ public class GoblinStoreMgtGoodsController {
goodsInfoVo.setServiceSupportVoList(goblinMongoUtils.getServiceSupportVos(storeMgtGoodsAddParam.getSsidList()));
goblinstoreMgtGoodsService.goodsAdd(goodsInfoVo, goodsSkuInfoVoList);
return ResponseDto.success();
return ResponseDto.success(goodsInfoVo.getSpuId());
}
@ApiOperationSupport(order = 5)
......
package com.liquidnet.service.goblin.service.impl;
import com.google.common.base.Joiner;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderSkuVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
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.entity.GoblinBackOrder;
import com.liquidnet.service.goblin.entity.GoblinBackOrderLog;
import com.liquidnet.service.goblin.param.GoblinAppOrderRefundParam;
import com.liquidnet.service.goblin.service.IGoblinOrderAppService;
import com.liquidnet.service.goblin.util.*;
import io.github.classgraph.json.JSONUtils;
import lombok.extern.slf4j.Slf4j;
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;
@Service
......@@ -44,7 +54,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
String orderId = orderIds.get(i);
GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(orderId);
GoblinAppOrderListVo vo = GoblinAppOrderListVo.getNew();
BeanUtils.copyProperties(orderVo,vo);
BeanUtils.copyProperties(orderVo, vo);
List<GoblinOrderSkuVo> skuVos = ObjectUtil.getGoblinOrderSkuVoArrayList();
for (String orderSkuId : orderVo.getOrderSkuVoIds()) {
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderSkuId);
......@@ -73,4 +83,137 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
vo.setOrderSkuVos(skuVos);
return ResponseDto.success(vo);
}
@Override
public ResponseDto<Boolean> applyRefund(GoblinAppOrderRefundParam param) {
String uid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
String nowStr = DateUtil.getNowTime();
GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(param.getOrderId());
if (!orderVo.getUserId().equals(uid)) {
return ResponseDto.failure("无权操作");
}
if (orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_0.getValue() ||
orderVo.getStatus() == GoblinStatusConst.Status.ORDER_STATUS_5.getValue()) {
return ResponseDto.failure("不可操作");
}
GoblinBackOrder backOrder = GoblinBackOrder.getNew();
backOrder.setBackOrderId(IDGenerator.nextTimeId2());
backOrder.setBackCode(IDGenerator.storeRefundCode(orderVo.getMasterOrderCode()));
backOrder.setOrderId(param.getOrderId());
backOrder.setOrderCode(orderVo.getOrderCode());
backOrder.setStoreId(orderVo.getStoreId());
backOrder.setUserId(orderVo.getUserId());
backOrder.setType(GoblinStatusConst.Type.BACK_TYPE_1.getValue());
backOrder.setStatus(GoblinStatusConst.Status.ORDER_BACK_STATUS_1.getValue());
backOrder.setCreatedAt(now);
if (orderVo.getMailNo() == null || orderVo.getMailNo().equals("")) {//未发货
backOrder.setRealBackPrice(orderVo.getPriceActual());
backOrder.setReason(param.getReason());
backOrder.setPics(param.getPics());
backOrder.setDescribes(param.getDescribes());
backOrder.setSkuIdNums(Joiner.on(",").join(orderVo.getOrderSkuVoIds()));
} else {//已发货
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(param.getOrderSkuId());
backOrder.setRealBackPrice(orderSkuVo.getSkuPriceActual());
backOrder.setReason(param.getReason());
backOrder.setPics(param.getPics());
backOrder.setDescribes(param.getDescribes());
backOrder.setType(param.getRefundType());
backOrder.setSkuIdNums(param.getOrderSkuId());
}
GoblinBackOrderVo vo = GoblinBackOrderVo.getNew();
BeanUtils.copyProperties(backOrder, vo);
vo.setCreatedAt(nowStr);
List<GoblinBackOrderSkuVo> orderSkuVoList = ObjectUtil.goblinBackOrderSkuVoArrayList();
if (param.getOrderSkuId() == null) {
for (String orderSkuId : orderVo.getOrderSkuVoIds()) {
GoblinBackOrderSkuVo backOrderSkuVo = GoblinBackOrderSkuVo.getNew();
backOrderSkuVo.setOrderSkuId(orderSkuId);
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderSkuId);
backOrderSkuVo.setSpuId(orderSkuVo.getSpuId());
backOrderSkuVo.setSpuName(orderSkuVo.getSpuName());
backOrderSkuVo.setSkuId(orderSkuVo.getSkuId());
backOrderSkuVo.setSkuName(orderSkuVo.getSkuName());
backOrderSkuVo.setSkuSpecs(orderSkuVo.getSkuSpecs());
backOrderSkuVo.setCreatedAt(nowStr);
orderSkuVoList.add(backOrderSkuVo);
backOrderLog(orderVo, orderSkuVo, now);
}
} else {
GoblinBackOrderSkuVo backOrderSkuVo = GoblinBackOrderSkuVo.getNew();
backOrderSkuVo.setOrderSkuId(param.getOrderSkuId());
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(param.getOrderSkuId());
backOrderSkuVo.setSpuId(orderSkuVo.getSpuId());
backOrderSkuVo.setSpuName(orderSkuVo.getSpuName());
backOrderSkuVo.setSkuId(orderSkuVo.getSkuId());
backOrderSkuVo.setSkuName(orderSkuVo.getSkuName());
backOrderSkuVo.setSkuSpecs(orderSkuVo.getSkuSpecs());
backOrderSkuVo.setCreatedAt(nowStr);
orderSkuVoList.add(backOrderSkuVo);
backOrderLog(orderVo, orderSkuVo, now);
}
vo.setBackOrderSkuVos(orderSkuVoList);
//添加日志
GoblinBackOrderLog backOrderLog = initBackLog(param.getOrderId(), uid, now);
backOrderLog.setStatus(GoblinStatusConst.Status.ORDER_LOG_STATUS_21.getValue());
backOrderLog.setOperationType(GoblinStatusConst.Type.OPERATION_TYPE_1.getValue());
backOrderLog.setMessage("用户发起发起:" + JsonUtils.toJson(param));
//mysql
redisUtils.setBackOrderVo(backOrder.getBackOrderId(), vo);
//mongo
mongoUtils.insertGoblinBackOrderVo(vo);
//mysql
queueUtils.sendMsgByRedis(
MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getKey(),
SqlMapping.get("goblin_order.user.applyRefund",
backOrder.getBackOrderId(), backOrder.getBackCode(), backOrder.getOrderId(),
backOrder.getOrderCode(), backOrder.getStoreId(), backOrder.getUserId(),
backOrder.getSkuIdNums(), backOrder.getType(), backOrder.getReason(),
backOrder.getDescribes(), backOrder.getRealBackPrice(), backOrder.getStatus(),
backOrder.getCreatedAt()
)
);
//添加日志
queueUtils.sendMsgByRedis(
MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getKey(),
SqlMapping.get("goblin_order.store.refundLog",
backOrderLog.getBackOrderLogId(), backOrderLog.getBackOrderId(), backOrderLog.getOperationType(),
backOrderLog.getMessage(), backOrderLog.getOperationName(), backOrderLog.getStatus(), now
)
);
return ResponseDto.success();
}
private GoblinBackOrderLog initBackLog(String orderId, String uid, LocalDateTime now) {
GoblinBackOrderLog log = GoblinBackOrderLog.getNew();
log.setBackOrderId(orderId);
log.setOperationName(uid);
log.setBackOrderLogId(IDGenerator.nextTimeId2());
log.setCreatedAt(now);
return log;
}
private void backOrderLog(GoblinStoreOrderVo orderVo, GoblinOrderSkuVo orderSkuVo, LocalDateTime now) {
//操作日志vo
GoblinOrderLogVo logVo = GoblinOrderLogVo.getNew();
logVo.setOrderId(orderVo.getOrderId());
logVo.setOrderCode(orderVo.getOrderCode());
logVo.setPayCode(orderVo.getPayCode());
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) {
logVo.setOrderType("zhengzai");
} else {
logVo.setOrderType("order");
}
logVo.setStoreId(orderVo.getStoreId());
logVo.setSpuId(orderSkuVo.getSpuId());
logVo.setSpuName(orderSkuVo.getSpuName());
logVo.setSkuId(orderSkuVo.getSkuId());
logVo.setSkuPriceActual(orderSkuVo.getSkuPriceActual().multiply(BigDecimal.valueOf(100)).negate().longValue());
logVo.setStatus(GoblinStatusConst.Status.ORDER_LOG_STATUS_22.getValue());
logVo.setOperationId(orderVo.getUserId());
logVo.setOperationType(GoblinStatusConst.Type.OPERATION_TYPE_2.getValue());
logVo.setCreatedAt(now);
mongoUtils.insertGoblinOrderLogVo(logVo);
}
}
......@@ -593,7 +593,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
logVo.setOrderCode(orderVo.getOrderCode());
logVo.setPayCode(orderVo.getPayCode());
logVo.setStoreId(orderVo.getStoreId());
if (orderSkuVo.getOrderSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) {
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) {
logVo.setOrderType("zhengzai");
} else {
logVo.setOrderType("order");
......
......@@ -359,6 +359,7 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
GoblinBackOrderVo backOrderVo = GoblinBackOrderVo.getNew();
BeanUtils.copyProperties(goblinBackOrder, backOrderVo);
backOrderVo.setCreatedAt(nowStr);
GoblinBackOrderSkuVo backOrderSkuVo = GoblinBackOrderSkuVo.getNew();
backOrderSkuVo.setOrderSkuId(orderSkuId);
backOrderSkuVo.setSpuId(orderSkuVo.getSpuId());
......@@ -367,6 +368,9 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
backOrderSkuVo.setSkuName(orderSkuVo.getSkuName());
backOrderSkuVo.setSkuSpecs(orderSkuVo.getSkuSpecs());
backOrderSkuVo.setCreatedAt(nowStr);
List<GoblinBackOrderSkuVo> orderSkuVoList = ObjectUtil.goblinBackOrderSkuVoArrayList();
orderSkuVoList.add(backOrderSkuVo);
backOrderVo.setBackOrderSkuVos(orderSkuVoList);
//添加日志
GoblinBackOrderLog backOrderLog = initBackLog(orderId, uid, now);
backOrderLog.setStatus(GoblinStatusConst.Status.ORDER_LOG_STATUS_22.getValue());
......@@ -468,7 +472,7 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
logVo.setOrderId(orderVo.getOrderId());
logVo.setOrderCode(orderVo.getOrderCode());
logVo.setPayCode(orderVo.getPayCode());
if (orderSkuVo.getOrderSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) {
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) {
logVo.setOrderType("zhengzai");
} else {
logVo.setOrderType("order");
......
......@@ -51,12 +51,16 @@ public class ObjectUtil {
private static final ArrayList<GoblinShoppingCartVoDetail> goblinShoppingCartVoDetailArrayList=new ArrayList<>();
private static final ArrayList<GoblinStoreBackOrderListVo> goblinStoreBackOrderListVoArrayList=new ArrayList<>();
private static final ArrayList<GoblinAppOrderListVo> goblinAppOrderListVoArrayList=new ArrayList<>();
private static final ArrayList<GoblinBackOrderSkuVo> goblinBackOrderSkuVoArrayList=new ArrayList<>();
private static final BasicDBObject basicDBObject = new BasicDBObject();
public static PagedResult<GoblinStoreMgtGoodsListVo> getGoblinStoreMgtGoodsVoPagedResult() {
return goblinStoreMgtGoodsVoPagedResult.clone();
}
public static ArrayList<GoblinBackOrderSkuVo> goblinBackOrderSkuVoArrayList() {
return (ArrayList<GoblinBackOrderSkuVo>) goblinBackOrderSkuVoArrayList.clone();
}
public static ArrayList<GoblinShoppingCartVo> goblinShoppingCartVoArrayList() {
return (ArrayList<GoblinShoppingCartVo>) goblinShoppingCartVoArrayList.clone();
}
......
......@@ -63,6 +63,8 @@ goblin_order.store.backOrder=INSERT INTO goblin_back_order (`back_order_id`,`bac
goblin_order.store.refundPrice=UPDATE goblin_store_order SET price_refund = ? ,status = ? , updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
goblin_order.store.refundSkuPrice=UPDATE goblin_order_sku SET price_refund = ? ,status = ? , updated_at = ? WHERE order_sku_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
goblin_order.store.refundBackOrder=UPDATE goblin_back_order SET status = ? , updated_at = ? WHERE back_order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
#---- 用户订单操作
goblin_order.user.applyRefund=INSERT INTO goblin_back_order (`back_order_id`,`back_code`,`order_id`,`order_code`,`store_id`,`user_id`,`sku_id_nums`,`type`,`reason`,`describes`,`real_back_price`,`status`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,)
#---- 购物车操作
goblin_shop.cart.delete = UPDATE goblin_shopping_cart set del_tag=? where user_id=? and sku_id=?
goblin_shop.cart.insert = insert into goblin_shopping_cart (car_id, user_id, store_id,spu_id, sku_id, `number`,marketing_id, del_tag, `comment`) values (?,?,?,?,?,?,?,?,?)
......
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