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

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

提交 资金接口

parent 9ad10d93
package com.liquidnet.service.goblin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
/**
* <p>
* 订单退单退款表
* </p>
*
* @author liquidnet
* @since 2021-12-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinBackOrderDetailsVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "订单退单表id")
private String backOrderId;
@ApiModelProperty(value = "退款单号")
private String backCode;
@ApiModelProperty(value = "订单id")
private String orderId;
@ApiModelProperty(value = "订单编号")
private String orderCode;
@ApiModelProperty(value = "商铺id")
private String storeId;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "退款sku")
private List<GoblinBackOrderSkuVo> backOrderSkuVos;
@ApiModelProperty(value = "类型[1-退款|2-退货]")
private Integer type;
@ApiModelProperty(value = "退款/退货原因[1-不想买了|2-收货人信息有误|3-未按指定时间发货|4-其他|5-不想买了|6-商品质量问题|7-收到商品与描述不符|8-商铺发起|9-系统自动申请]")
private String reason;
@ApiModelProperty(value = "问题说明")
private String describes;
@ApiModelProperty(value = "返回方式[1-快递返回]目前只有快递返回 (退货的时候用户给商城寄送商品)")
private Integer backType;
@ApiModelProperty(value = "退货时候实际退款金额")
private BigDecimal realBackPrice;
@ApiModelProperty(value = "快递费退款金额(包含在realBackPrice内)")
private BigDecimal backPriceExpress;
@ApiModelProperty(value = "上传的退款凭证或者质检发票 多个图片 用, 隔开")
private String pics;
@ApiModelProperty(value = "退款/退货状态[0-商铺发起退款|1-退款申请(用户发送退款请求)|2-退款成功(商家同意退款)|3-退款拒绝(商家拒绝退款)|4-退货申请(用户发起退货请求)|5-退货拒绝(商家拒绝退货)|6-退货审核通过等待用户填写物流(商家审核通过,等待用户寄回商品)|7-待收货(用户已确认)|8-退货完成(商家收货并且同意退款给用户)|9-退货失败(商家不同意退款)")
private Integer status;
@ApiModelProperty(value = "物流公司名称")
private String logisCompanyName;
@ApiModelProperty(value = "物流单号")
private String mailNo;
@ApiModelProperty(value = "退款时间")
private String refundAt;
@ApiModelProperty(value = "审核时间")
private String auditAt;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "过期时间")
private String expireAt;
@ApiModelProperty(value = "支付时间")
private String payTime;
@ApiModelProperty(value = "优惠金额")
private BigDecimal priceVoucher;
@ApiModelProperty(value = "快递金额")
private BigDecimal priceExpress;
@ApiModelProperty(value = "实付金额")
private BigDecimal priceActual;
@ApiModelProperty(value = "是否会员")
private int isMember;
@ApiModelProperty(value = "下单时用户昵称")
private String userName;
@ApiModelProperty(value = "下单时手机号")
private String userMobile;
@ApiModelProperty(value = "订单SkuVo")
List<GoblinOrderSkuVo> orderSkuVoList;
private static final GoblinBackOrderDetailsVo obj = new GoblinBackOrderDetailsVo();
public static GoblinBackOrderDetailsVo getNew() {
try {
return (GoblinBackOrderDetailsVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new GoblinBackOrderDetailsVo();
}
}
......@@ -35,6 +35,8 @@ public class GoblinBackOrderSkuVo implements Serializable,Cloneable {
private String skuName;
@ApiModelProperty(value = "Sku款式")
private String skuSpecs;
@ApiModelProperty(value = "退款金额")
private BigDecimal refundPrice;
@ApiModelProperty(value = "创建时间")
......
......@@ -3,11 +3,18 @@ package com.liquidnet.service.goblin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
/**
* <p>
* 订单退单退款表
......@@ -18,7 +25,7 @@ import java.util.List;
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinBackOrderVo implements Serializable,Cloneable {
public class GoblinBackOrderVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "订单退单表id")
......@@ -47,6 +54,8 @@ public class GoblinBackOrderVo implements Serializable,Cloneable {
private Integer backType;
@ApiModelProperty(value = "退货时候实际退款金额")
private BigDecimal realBackPrice;
@ApiModelProperty(value = "快递费退款金额(包含在realBackPrice内)")
private BigDecimal backPriceExpress;
@ApiModelProperty(value = "上传的退款凭证或者质检发票 多个图片 用, 隔开")
private String pics;
@ApiModelProperty(value = "退款/退货状态[0-商铺发起退款|1-退款申请(用户发送退款请求)|2-退款成功(商家同意退款)|3-退款拒绝(商家拒绝退款)|4-退货申请(用户发起退货请求)|5-退货拒绝(商家拒绝退货)|6-退货审核通过等待用户填写物流(商家审核通过,等待用户寄回商品)|7-待收货(用户已确认)|8-退货完成(商家收货并且同意退款给用户)|9-退货失败(商家不同意退款)")
......@@ -57,8 +66,19 @@ public class GoblinBackOrderVo implements Serializable,Cloneable {
private String logisCompanyName;
@ApiModelProperty(value = "物流单号")
private String mailNo;
@ApiModelProperty(value = "退款时间")
private String refundAt;
@ApiModelProperty(value = "审核时间")
private String auditAt;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "过期时间")
private String expireAt;
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
this.expireAt = LocalDateTime.parse(createdAt, DTF_YMD_HMS).plusDays(7).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
private static final GoblinBackOrderVo obj = new GoblinBackOrderVo();
......
......@@ -2,6 +2,8 @@ package com.liquidnet.service.goblin.service.manage;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinBackOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinBackOrderVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreBackOrderListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderListVo;
import com.liquidnet.service.goblin.param.RefundCallbackParam;
......@@ -18,6 +20,9 @@ public interface IGoblinStoreBackOrderService {
String spuName,
Integer status);
ResponseDto<GoblinStoreBackOrderListVo> orderDetails(String backOrderId);
ResponseDto<GoblinBackOrderDetailsVo> orderDetails(String backOrderId);
ResponseDto<Boolean> changeExpressRefund(String backOrderId, BigDecimal refundPrice);
ResponseDto<Boolean> changeSkuRefund(String backOrderId, BigDecimal refundPrice, String orderSkuId);
}
......@@ -8,8 +8,12 @@ import com.liquidnet.service.goblin.dto.vo.GoblinOrderLogVo;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.Valid;
import java.math.BigDecimal;
public interface IGoblinStoreMoneyService {
ResponseDto<BigDecimal> money();
ResponseDto<PageInfo<GoblinOrderLogVo>> getSpuList(String spuName, String st, String et, int page);
ResponseDto<PageInfo<GoblinOrderLogVo>> getOrderOperaList(String spuId, String orderCode, Integer type, String st, String et, int page);
......
......@@ -90,6 +90,11 @@ public class GoblinBackOrder implements Serializable,Cloneable {
*/
private BigDecimal realBackPrice;
/**
* 退款快递费
*/
private BigDecimal backPriceExpress;
/**
* 上传的退款凭证或者质检发票 多个图片 用, 隔开
*/
......
......@@ -800,4 +800,5 @@ create table goblin_store_market_purchasing
) engine = InnoDB comment '营销秒杀表[活动]';
alter table goblin_order_sku add spu_name varchar(255) default '' comment 'spu名称';
alter table goblin_store_order add store_name varchar(255) default '' comment '商铺名称';
\ No newline at end of file
alter table goblin_store_order add store_name varchar(255) default '' comment '商铺名称';
alter table goblin_back_order add back_price_express decimal (8,2) default 0 comment '退款快递费';
\ No newline at end of file
......@@ -3,6 +3,8 @@ package com.liquidnet.service.goblin.controller.manage;
import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinBackOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinBackOrderVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreBackOrderListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderListVo;
import com.liquidnet.service.goblin.param.RefundCallbackParam;
......@@ -59,7 +61,46 @@ public class GoblinStoreBackOrderController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "backOrderId", value = "订单id"),
})
@GetMapping(value = "details")
public ResponseDto<GoblinStoreBackOrderListVo> orderList(@RequestParam(value = "backOrderId", required = true) @Valid String backOrderId) {
public ResponseDto<GoblinBackOrderDetailsVo> orderList(@RequestParam(value = "backOrderId", required = true) @Valid String backOrderId) {
return goblinStoreBackOrderService.orderDetails(backOrderId);
}
// @ApiOperation(value = "同意退款")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "backOrderId", value = "订单id"),
// })
// @GetMapping(value = "agree")
// public ResponseDto<Boolean> agreeRefund(@RequestParam(value = "backOrderId", required = true) @Valid String backOrderId) {
// return goblinStoreBackOrderService.agreeRefund(backOrderId);
// }
//
// @ApiOperation(value = "拒绝退款")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "backOrderId", value = "订单id"),
// })
// @GetMapping(value = "refused")
// public ResponseDto<Boolean> refusedRefund(@RequestParam(value = "backOrderId", required = true) @Valid String backOrderId) {
// return goblinStoreBackOrderService.refusedRefund(backOrderId);
// }
@ApiOperation(value = "修改金额")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "backOrderId", value = "订单id"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "changeType", value = "类型[1-物流金额|2-退款金额]"),
@ApiImplicitParam(type = "form", required = true, dataType = "Number", name = "refundPrice", value = "价格"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "orderSkuId", value = "orderSkuId"),
})
@GetMapping(value = "change")
public ResponseDto<Boolean> changeRefund(@RequestParam(value = "backOrderId", required = true) @Valid String backOrderId,
@RequestParam(value = "changeType", required = true) @Valid Integer changeType,
@RequestParam(value = "refundPrice", required = true) @Valid BigDecimal refundPrice,
@RequestParam(value = "orderSkuId", required = false) String orderSkuId) {
if (changeType == 1) {
return goblinStoreBackOrderService.changeExpressRefund(backOrderId, refundPrice);
} else if (changeType == 2) {
return goblinStoreBackOrderService.changeSkuRefund(backOrderId, refundPrice, orderSkuId);
} else {
return ResponseDto.failure("参数异常");
}
}
}
......@@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
@ApiSupport(order = 149102)
@Api(tags = "店铺资金模块")
......@@ -25,13 +27,20 @@ public class GoblinStoreMoneyController {
@Autowired
IGoblinStoreMoneyService goblinStoreMoneyService;
@GetMapping("money")
@ApiOperation("商品资金总收入")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<BigDecimal> money() {
return goblinStoreMoneyService.money();
}
@GetMapping("spu/list")
@ApiOperation("商品资金列表")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "spuName", value = "商品名称"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "st", value = "起始时间"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "et", value = "终止时间"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "spuName", value = "商品名称"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "st", value = "起始时间"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "et", value = "终止时间"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "page", value = "页数"),
})
public ResponseDto<PageInfo<GoblinOrderLogVo>> getSpuList(@RequestParam(value = "spuName", required = false) String spuName,
......@@ -45,11 +54,11 @@ public class GoblinStoreMoneyController {
@ApiOperation("商品订单操作日志列表")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "spuId", value = "spuId"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "orderCode", value = "订单号"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "type", value = "交易类型[1-订单交易,2-订单退款,3-正在下单[订单交易],4-正在下单[订单退款]]"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "st", value = "起始时间"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "et", value = "终止时间"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "spuId", value = "spuId"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "orderCode", value = "订单号"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "type", value = "交易类型[1-订单交易,2-订单退款,3-正在下单[订单交易],4-正在下单[订单退款]]"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "st", value = "起始时间"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "et", value = "终止时间"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "page", value = "页数"),
})
public ResponseDto<PageInfo<GoblinOrderLogVo>> getOrderOperaList(@RequestParam(value = "spuId", required = false) String spuId,
......
......@@ -109,6 +109,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
backOrder.setCreatedAt(now);
if (orderVo.getMailNo() == null || orderVo.getMailNo().equals("")) {//未发货
backOrder.setRealBackPrice(orderVo.getPriceActual());
backOrder.setBackPriceExpress(orderVo.getPriceExpress());
backOrder.setReason(param.getReason());
backOrder.setPics(param.getPics());
backOrder.setDescribes(param.getDescribes());
......@@ -116,6 +117,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
} else {//已发货
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(param.getOrderSkuId());
backOrder.setRealBackPrice(orderSkuVo.getSkuPriceActual());
backOrder.setBackPriceExpress(orderVo.getPriceExpress());
backOrder.setReason(param.getReason());
backOrder.setPics(param.getPics());
backOrder.setDescribes(param.getDescribes());
......@@ -136,6 +138,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
backOrderSkuVo.setSkuId(orderSkuVo.getSkuId());
backOrderSkuVo.setSkuName(orderSkuVo.getSkuName());
backOrderSkuVo.setSkuSpecs(orderSkuVo.getSkuSpecs());
backOrderSkuVo.setRefundPrice(orderSkuVo.getSkuPriceActual());
backOrderSkuVo.setCreatedAt(nowStr);
orderSkuVoList.add(backOrderSkuVo);
backOrderLog(orderVo, orderSkuVo, now);
......@@ -148,6 +151,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
backOrderSkuVo.setSpuName(orderSkuVo.getSpuName());
backOrderSkuVo.setSkuId(orderSkuVo.getSkuId());
backOrderSkuVo.setSkuName(orderSkuVo.getSkuName());
backOrderSkuVo.setRefundPrice(orderSkuVo.getSkuPriceActual());
backOrderSkuVo.setSkuSpecs(orderSkuVo.getSkuSpecs());
backOrderSkuVo.setCreatedAt(nowStr);
orderSkuVoList.add(backOrderSkuVo);
......@@ -170,7 +174,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
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.getDescribes(), backOrder.getRealBackPrice(),backOrder.getBackPriceExpress(), backOrder.getStatus(),
backOrder.getCreatedAt()
)
);
......
......@@ -53,7 +53,7 @@ public class GoblinStoreBackOrderServiceImpl implements IGoblinStoreBackOrderSer
if (storeInfoVo == null) {
return ResponseDto.failure("无法查看");
}
HashMap<String, Object> map = mongoUtils.storeBackOrderList(storeInfoVo.getStoreId(), page, orderBackCode,type, cst, cet, orderCode, spuName, status);
HashMap<String, Object> map = mongoUtils.storeBackOrderList(storeInfoVo.getStoreId(), page, orderBackCode, type, cst, cet, orderCode, spuName, status);
long total = (long) map.get("total");
List<GoblinBackOrderVo> voList = (List<GoblinBackOrderVo>) map.get("data");
for (GoblinBackOrderVo item : voList) {
......@@ -74,22 +74,89 @@ public class GoblinStoreBackOrderServiceImpl implements IGoblinStoreBackOrderSer
}
@Override
public ResponseDto<GoblinStoreBackOrderListVo> orderDetails(String backOrderId) {
public ResponseDto<GoblinBackOrderDetailsVo> orderDetails(String backOrderId) {
String uid = CurrentUtil.getCurrentUid();
GoblinStoreInfoVo storeInfoVo = redisUtils.getStoreInfoVoByUid(uid);
if (storeInfoVo == null) {
return ResponseDto.failure("无法查看");
}
GoblinBackOrderVo orderVo = redisUtils.getBackOrderVo(backOrderId);
GoblinStoreBackOrderListVo vo = GoblinStoreBackOrderListVo.getNew();
vo.setCreatedAt(orderVo.getCreatedAt());
vo.setBackOrderId(orderVo.getBackOrderId());
vo.setBackCode(orderVo.getBackCode());
vo.setBackOrderSkuVos(orderVo.getBackOrderSkuVos());
vo.setOrderCode(orderVo.getOrderCode());
vo.setRealBackPrice(orderVo.getBackOrderId());
vo.setStatus(orderVo.getBackOrderId());
vo.setType(orderVo.getBackOrderId());
GoblinBackOrderVo backOrderVo = redisUtils.getBackOrderVo(backOrderId);
GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(backOrderVo.getOrderId());
GoblinBackOrderDetailsVo vo = GoblinBackOrderDetailsVo.getNew();
BeanUtils.copyProperties(backOrderVo, vo);
vo.setPayTime(orderVo.getPayTime());
vo.setPriceVoucher(orderVo.getPriceVoucher());
vo.setPriceExpress(orderVo.getPriceExpress());
vo.setPriceActual(orderVo.getPriceActual());
vo.setIsMember(orderVo.getIsMember());
vo.setUserName(orderVo.getUserName());
vo.setUserMobile(orderVo.getUserMobile());
List<GoblinOrderSkuVo> orderSkuVoList = ObjectUtil.getGoblinOrderSkuVoArrayList();
for (String orderSkuVoId : orderVo.getOrderSkuVoIds()) {
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderSkuVoId);
orderSkuVoList.add(orderSkuVo);
}
vo.setOrderSkuVoList(orderSkuVoList);
return ResponseDto.success(vo);
}
@Override
public ResponseDto<Boolean> changeExpressRefund(String backOrderId, BigDecimal refundPrice) {
String uid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
GoblinStoreInfoVo storeInfoVo = redisUtils.getStoreInfoVoByUid(uid);
if (storeInfoVo == null) {
return ResponseDto.failure("无法查看");
}
GoblinBackOrderVo backOrderVo = redisUtils.getBackOrderVo(backOrderId);
BigDecimal sub = backOrderVo.getBackPriceExpress().subtract(refundPrice);
backOrderVo.setBackPriceExpress(refundPrice);
backOrderVo.setRealBackPrice(backOrderVo.getRealBackPrice().subtract(sub));
//redis
redisUtils.setBackOrderVo(backOrderId, backOrderVo);
//mongo
mongoUtils.updateGoblinBackOrderVo(backOrderId, backOrderVo);
//mysql
queueUtils.sendMsgByRedis(
MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.getKey(),
SqlMapping.get("goblin_order.store.changeExpress",
backOrderVo.getRealBackPrice(), backOrderVo.getBackPriceExpress(), now,
backOrderId, now, now
)
);
return ResponseDto.success();
}
@Override
public ResponseDto<Boolean> changeSkuRefund(String backOrderId, BigDecimal refundPrice, String orderSkuId) {
String uid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
GoblinStoreInfoVo storeInfoVo = redisUtils.getStoreInfoVoByUid(uid);
if (storeInfoVo == null) {
return ResponseDto.failure("无法查看");
}
BigDecimal sub = BigDecimal.ZERO;
GoblinBackOrderVo backOrderVo = redisUtils.getBackOrderVo(backOrderId);
for (GoblinBackOrderSkuVo backOrderSkuVo : backOrderVo.getBackOrderSkuVos()) {
if (backOrderSkuVo.getOrderSkuId().equals(orderSkuId)) {
sub = backOrderSkuVo.getRefundPrice().subtract(refundPrice);
backOrderSkuVo.setRefundPrice(refundPrice);
break;
}
}
backOrderVo.setRealBackPrice(backOrderVo.getRealBackPrice().subtract(sub));
//redis
redisUtils.setBackOrderVo(backOrderId, backOrderVo);
//mongo
mongoUtils.updateGoblinBackOrderVo(backOrderId, backOrderVo);
//mysql
queueUtils.sendMsgByRedis(
MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.getKey(),
SqlMapping.get("goblin_order.store.changeSku",
backOrderVo.getRealBackPrice(), now,
backOrderId, now, now
)
);
return ResponseDto.success();
}
}
......@@ -11,6 +11,7 @@ import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
......@@ -23,13 +24,24 @@ public class GoblinStoreMoneyServiceImpl implements IGoblinStoreMoneyService {
GoblinMongoUtils mongoUtils;
@Override
public ResponseDto<PageInfo<GoblinOrderLogVo>> getSpuList(String spuName, String st, String et, int page) {
public ResponseDto<BigDecimal> money() {
String uid = CurrentUtil.getCurrentUid();
GoblinStoreInfoVo vo = redisUtils.getStoreInfoVoByUid(uid);
if (vo == null) {
return ResponseDto.failure("店铺不存在");
}
HashMap<String, Object> map = mongoUtils.moneyGetSpuList(spuName, st, et, vo.getStoreId(), page);
BigDecimal price = mongoUtils.storeMoney("1");
return ResponseDto.success(price);
}
@Override
public ResponseDto<PageInfo<GoblinOrderLogVo>> getSpuList(String spuName, String st, String et, int page) {
String uid = CurrentUtil.getCurrentUid();
// GoblinStoreInfoVo vo = redisUtils.getStoreInfoVoByUid(uid);
// if (vo == null) {
// return ResponseDto.failure("店铺不存在");
// }
HashMap<String, Object> map = mongoUtils.moneyGetSpuList(spuName, st, et, "2", page);
PageInfo<GoblinOrderLogVo> info = new PageInfo((List<GoblinOrderLogVo>) map.get("data"));
info.setTotal((Long) map.get("total"));
return ResponseDto.success(info);
......
......@@ -366,6 +366,7 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
backOrderSkuVo.setSpuName(orderSkuVo.getSpuName());
backOrderSkuVo.setSkuId(orderSkuVo.getSkuId());
backOrderSkuVo.setSkuName(orderSkuVo.getSkuName());
backOrderSkuVo.setRefundPrice(price);
backOrderSkuVo.setSkuSpecs(orderSkuVo.getSkuSpecs());
backOrderSkuVo.setCreatedAt(nowStr);
List<GoblinBackOrderSkuVo> orderSkuVoList = ObjectUtil.goblinBackOrderSkuVoArrayList();
......
......@@ -29,6 +29,7 @@ import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
......@@ -502,11 +503,35 @@ public class GoblinMongoUtils {
return mongoTemplate.insert(vo, GoblinBackOrderVo.class.getSimpleName());
}
//修改 订单退款数据
public UpdateResult updateGoblinBackOrderVo(String backOrderId,GoblinBackOrderVo data) {
BasicDBObject object = ObjectUtil.cloneBasicDBObject().append("$set", mongoConverter.convertToMongoType(data));
return mongoTemplate.getCollection(GoblinBackOrderVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("backOrderId").is(backOrderId)).getQueryObject(),
object);
}
//获取 订单退款数据根据orderCode
public GoblinBackOrderVo getGoblinBackOrderVoByBackCode(String backCode) {
return mongoTemplate.findOne(Query.query(Criteria.where("backCode").is(backCode)), GoblinBackOrderVo.class, GoblinBackOrderVo.class.getSimpleName());
}
//店铺总收入
public BigDecimal storeMoney(String storeId) {
Criteria criteria = Criteria.where("status").in(GoblinStatusConst.Status.ORDER_LOG_STATUS_11.getValue(), GoblinStatusConst.Status.ORDER_LOG_STATUS_22.getValue(), GoblinStatusConst.Status.ORDER_LOG_STATUS_28.getValue()).and("storeId").is(storeId);
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(criteria),
Aggregation.group("storeId")
.first("storeId").as("storeId")
.first("skuPriceActual").as("skuPriceActual")
.sum("skuPriceActualBig").as("skuPriceActualBig")
);
AggregationResults<GoblinOrderLogVo> outputType = mongoTemplate.aggregate(aggregation, GoblinOrderLogVo.class.getSimpleName(), GoblinOrderLogVo.class);
List<GoblinOrderLogVo> dataList = new ArrayList(outputType.getMappedResults());
return dataList.get(0).getSkuPriceActualBig();
}
//资金列表
public HashMap<String, Object> moneyGetSpuList(String spuName, String st, String et, String storeId, int page) {
//查询销量
......@@ -516,7 +541,7 @@ public class GoblinMongoUtils {
Criteria criteria = Criteria.where("status").in(GoblinStatusConst.Status.ORDER_LOG_STATUS_11.getValue(), GoblinStatusConst.Status.ORDER_LOG_STATUS_22.getValue(), GoblinStatusConst.Status.ORDER_LOG_STATUS_28.getValue()).and("storeId").is(storeId);
if (spuName != null) {
//根据spu名称查询spuId
Query query = Query.query(Criteria.where("name").regex(".*?\\" + spuName));
Query query = Query.query(Criteria.where("name").regex(".*?"+spuName+".*"));
query.fields().include("spuId").include("name");
spuIdAndName = mongoTemplate.find(query, GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
criteria = criteria.and("spuId").in(spuIdAndName.stream().map(GoblinGoodsInfoVo::getSpuId).collect(Collectors.toList()));
......
......@@ -61,12 +61,16 @@ goblin_order.store.orderSkuPrice=UPDATE goblin_order_sku SET price_modify = ? ,p
goblin_order.store.log = INSERT INTO goblin_order_operation_log (`order_log_id`,`order_id`,`type`,`remark`,`operation_name`,`created_at`) VALUES(?,?,?,?,?,?)
goblin_order.store.refundLog = INSERT INTO goblin_back_order_log (`back_order_log_id`,`back_order_id`,`operation_type`,`message`,`operation_name`,`status`,`created_at`) VALUES(?,?,?,?,?,?,?)
goblin_order.store.orderExpressPrice=UPDATE goblin_store_order SET price_total =? , price_modify = ? ,price_voucher = ? , price_actual = ? ,price_express = ? , updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
goblin_order.store.backOrder=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_order.store.backOrder=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_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.store.changeExpress=UPDATE goblin_back_order SET real_back_price = ? ,back_price_express = ? updated_at = ? WHERE back_order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
goblin_order.store.changeSku=UPDATE goblin_back_order SET real_back_price = ? , 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_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`,`back_price_express`,`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