调整
This commit is contained in:
parent
4c452e05c9
commit
517ade2842
@ -18,7 +18,9 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 订单表 前端控制器
|
||||
@ -85,6 +87,20 @@ public class StoreOrderController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单备货
|
||||
*/
|
||||
@ApiOperation(value = "备货")
|
||||
@RequestMapping(value = "/prepare", method = RequestMethod.POST)
|
||||
@PreAuthorize("hasAuthority('admin:order:delete')")
|
||||
public CommonResult<String> prepare(@RequestParam(value = "ids") String ids) {
|
||||
List<Integer> idList = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList());
|
||||
if (storeOrderService.prepare(idList)) {
|
||||
return CommonResult.success();
|
||||
}
|
||||
return CommonResult.failed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 备注订单
|
||||
*/
|
||||
@ -92,7 +108,7 @@ public class StoreOrderController {
|
||||
@ApiOperation(value = "备注")
|
||||
@RequestMapping(value = "/mark", method = RequestMethod.POST)
|
||||
public CommonResult<String> mark(@RequestParam String orderNo, @RequestParam String mark) {
|
||||
if (storeOrderService.mark(orderNo, mark)) {
|
||||
if (storeOrderService.mark(orderNo, mark, null)) {
|
||||
return CommonResult.success();
|
||||
} else {
|
||||
return CommonResult.failed();
|
||||
|
@ -14,7 +14,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
|
@ -1,6 +1,6 @@
|
||||
# CRMEB 相关配置
|
||||
crmeb:
|
||||
version: CRMEB-JAVA-KY-v1.3.4 # 当前代码版本
|
||||
version: food-v1.0.0 # 当前代码版本
|
||||
domain: #配合swagger使用 # 待部署域名
|
||||
wechat-api-url: #请求微信接口中专服务器
|
||||
wechat-js-api-debug: false #微信js api系列是否开启调试模式
|
||||
|
@ -357,7 +357,7 @@ public class Constants {
|
||||
//订单状态
|
||||
public static final String ORDER_STATUS_ALL = "all"; //所有
|
||||
public static final String ORDER_STATUS_UNPAID = "unPaid"; //未支付
|
||||
public static final String ORDER_STATUS_NOT_SHIPPED = "notShipped"; //未发货
|
||||
public static final String ORDER_STATUS_NOT_SHIPPED = "notShipped"; //未发货,待备货
|
||||
public static final String ORDER_STATUS_PREPARE_ING = "prepareIng"; //备货中
|
||||
public static final String ORDER_STATUS_SPIKE = "spike"; //待收货
|
||||
public static final String ORDER_STATUS_BARGAIN = "bargain"; //已收货待评价
|
||||
@ -373,7 +373,7 @@ public class Constants {
|
||||
public static final String ORDER_STATUS_STR_PREPARE_ING = "备货中"; //未发货
|
||||
public static final String ORDER_STATUS_STR_SPIKE = "待收货"; //待收货
|
||||
public static final String ORDER_STATUS_STR_BARGAIN = "待评价"; //已收货待评价
|
||||
public static final String ORDER_STATUS_STR_TAKE = "用户已收货"; //用户已收货
|
||||
public static final String ORDER_STATUS_STR_TAKE = "订单已收货"; //用户已收货
|
||||
public static final String ORDER_STATUS_STR_COMPLETE = "交易完成"; //交易完成
|
||||
public static final String ORDER_STATUS_STR_TOBE_WRITTEN_OFF = "待核销"; //待核销
|
||||
public static final String ORDER_STATUS_STR_APPLY_REFUNDING = "申请退款"; //申请退款
|
||||
@ -411,7 +411,6 @@ public class Constants {
|
||||
public static final String PAY_TYPE_YUE = "yue"; //余额支付
|
||||
public static final String PAY_TYPE_OFFLINE = "offline"; //线下支付
|
||||
public static final String PAY_TYPE_ALI_PAY = "alipay"; //支付宝
|
||||
public static final String PAY_TYPE_TEA_FRUIT = "fruit"; //茶果支付
|
||||
|
||||
//支付客户端类型
|
||||
public static final String PAY_TYPE_WE_CHAT_FROM_H5 = "weixinh5"; //H5唤起微信支付
|
||||
@ -426,7 +425,6 @@ public class Constants {
|
||||
public static final String PAY_TYPE_STR_YUE = "余额支付"; //余额支付
|
||||
public static final String PAY_TYPE_STR_OFFLINE = "线下支付"; //线下支付
|
||||
public static final String PAY_TYPE_STR_ALI_PAY = "支付宝支付"; //支付宝
|
||||
public static final String PAY_TYPE_STR_TEA_FRUIT = "茶果兑换"; //支付宝
|
||||
public static final String PAY_TYPE_STR_OTHER = "其他支付"; //其他支付
|
||||
|
||||
//需要支付的业务类型
|
||||
@ -438,6 +436,7 @@ public class Constants {
|
||||
public static final String ORDER_LOG_REFUND_PRICE = "refund_price"; //退款
|
||||
public static final String ORDER_LOG_EXPRESS = "express"; //快递
|
||||
public static final String ORDER_LOG_DELIVERY = "delivery"; //送货
|
||||
public static final String ORDER_LOG_PREPARE = "prepare"; //备货
|
||||
public static final String ORDER_LOG_DELIVERY_GOODS = "delivery_goods"; //送货
|
||||
public static final String ORDER_LOG_REFUND_REFUSE = "refund_refuse"; //不退款
|
||||
public static final String ORDER_LOG_REFUND_APPLY = "apply_refund"; //
|
||||
|
@ -48,7 +48,7 @@ public class CreateOrderRequest implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "是否使用积分")
|
||||
// @NotNull(message = "是否使用积分不能为空")
|
||||
private Boolean useIntegral;
|
||||
private Boolean useIntegral = false;
|
||||
|
||||
@ApiModelProperty(value = "订单备注")
|
||||
private String mark;
|
||||
@ -57,7 +57,6 @@ public class CreateOrderRequest implements Serializable {
|
||||
private String deliveryTime;
|
||||
|
||||
// 以下为到店自提参数
|
||||
|
||||
@ApiModelProperty(value = "自提点id")
|
||||
private Integer storeId;
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.zbkj.common.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@ -8,16 +7,9 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import javax.validation.constraints.Max;
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 添加购物车参数Request对象
|
||||
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ -37,8 +29,8 @@ public class OrderRefundApplyRequest {
|
||||
@Length(max = 255, message = "退款原因不能超过255个字符")
|
||||
private String returnReason;
|
||||
|
||||
@ApiModelProperty(value = "退款凭证图片(多个图片请用,(英文逗号)隔开)")
|
||||
@JsonProperty("return_image")
|
||||
@ApiModelProperty(value = "退款凭证图片(多个图片请用,(英文逗号)隔开)", required = true)
|
||||
@NotNull(message = "请上传图片")
|
||||
private String returnImage;
|
||||
|
||||
@ApiModelProperty(value = "联系人电话", required = true)
|
||||
|
@ -13,7 +13,7 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="PreOrderRequest对象", description="预下单详情请求对象")
|
||||
@ApiModel(value="PreOrderDetailRequest对象", description="PreOrderDetailRequest对象")
|
||||
public class PreOrderDetailRequest {
|
||||
|
||||
@ApiModelProperty(value = "购物车编号,购物车预下单时必填")
|
||||
|
@ -16,7 +16,7 @@ import java.util.List;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="PreOrderRequest对象", description="预下单请求对象")
|
||||
@ApiModel(value="PreOrderRequest对象", description="PreOrderRequest对象")
|
||||
public class PreOrderRequest {
|
||||
|
||||
@ApiModelProperty(value = "预下单类型(“shoppingCart”:购物车下单,“buyNow”:立即购买,”again“: 再次购买,”video“: 视频号商品下单)")
|
||||
|
@ -51,7 +51,7 @@ public class OrderDetailResponse implements Serializable {
|
||||
@ApiModelProperty(value = "优惠金额")
|
||||
private BigDecimal couponPrice;
|
||||
|
||||
@ApiModelProperty(value = "订单状态(0:待发货;1:待收货;2:已收货,待评价;3:已完成;)")
|
||||
@ApiModelProperty(value = "订单状态(0:待发货(待备货);1:待收货;2:已收货,待评价;3:已完成;4:备货中)")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "订单状态")
|
||||
@ -87,7 +87,7 @@ public class OrderDetailResponse implements Serializable {
|
||||
@ApiModelProperty(value = "门店id")
|
||||
private Integer storeId;
|
||||
|
||||
@ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提")
|
||||
@ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提,3=骑手配送")
|
||||
private Integer shippingType;
|
||||
|
||||
@ApiModelProperty(value = "活动类型")
|
||||
|
@ -81,7 +81,7 @@ public class StoreOrderDetailInfoResponse implements Serializable {
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "订单状态(0:待发货;1:待收货;2:已收货,待评价;3:已完成;)")
|
||||
@ApiModelProperty(value = "订单状态(0:待发货(待备货);1:待收货;2:已收货,待评价;3:已完成;4:备货中)")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "0 未退款 1 申请中 2 已退款")
|
||||
@ -162,7 +162,7 @@ public class StoreOrderDetailInfoResponse implements Serializable {
|
||||
@ApiModelProperty(value = "门店id")
|
||||
private Integer storeId;
|
||||
|
||||
@ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提")
|
||||
@ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提,3=骑手配送")
|
||||
private Integer shippingType;
|
||||
|
||||
// @ApiModelProperty(value = "店员id")
|
||||
|
@ -26,6 +26,9 @@ public class StoreOrderDetailResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "订单号")
|
||||
private String orderId;
|
||||
|
||||
|
@ -68,12 +68,15 @@ public class StoreOrderInfoResponse implements Serializable {
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "订单状态(-1 : 申请退款 -2 : 退货成功 0:待发货;1:待收货;2:已收货;3:待评价;-1:已退款)")
|
||||
@ApiModelProperty(value = "订单状态(-1 : 申请退款 -2 : 退货成功 0:待发货(待备货);1:待收货;2:已收货;3:待评价;4:备货中;-1:已退款)")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "0 未退款 1 申请中 2 已退款")
|
||||
private Integer refundStatus;
|
||||
|
||||
@ApiModelProperty(value = "退款图片")
|
||||
private String refundReasonWapImg;
|
||||
|
||||
@ApiModelProperty(value = "快递名称/送货人姓名")
|
||||
private String deliveryName;
|
||||
|
||||
@ -104,7 +107,7 @@ public class StoreOrderInfoResponse implements Serializable {
|
||||
@ApiModelProperty(value = "核销码")
|
||||
private String verifyCode;
|
||||
|
||||
@ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提")
|
||||
@ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提,3=骑手配送")
|
||||
private Integer shippingType;
|
||||
|
||||
@ApiModelProperty(value = "订单状态")
|
||||
@ -122,6 +125,9 @@ public class StoreOrderInfoResponse implements Serializable {
|
||||
@ApiModelProperty(value = "订单商品详情")
|
||||
List<StoreOrderInfoOldVo> orderInfo;
|
||||
|
||||
@ApiModelProperty(value = "售后信息")
|
||||
ApplyRecordsResponse returnInfo;
|
||||
|
||||
@ApiModelProperty(value = "提货点")
|
||||
private SystemStore systemStore;
|
||||
|
||||
|
@ -128,7 +128,7 @@ public class DeliveryUtil {
|
||||
}
|
||||
String start = startDateTime.format(formatter);
|
||||
String end = endDateTime.format(formatter);
|
||||
intervals.add(start + "-" + end);
|
||||
intervals.add(start + "~" + end);
|
||||
|
||||
if (end.equals(endTime.toString())) {
|
||||
break;
|
||||
|
@ -37,8 +37,8 @@ public class UploadFrontController {
|
||||
@ApiOperation(value = "图片上传")
|
||||
@RequestMapping(value = "/image", method = RequestMethod.POST)
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "model", value = "模块 用户user,商品product,微信wechat,news文章"),
|
||||
@ApiImplicitParam(name = "pid", value = "分类ID 0编辑器,1商品图片,2拼团图片,3砍价图片,4秒杀图片,5文章图片,6组合数据图,7前台用户,8微信系列 ", allowableValues = "range[0,1,2,3,4,5,6,7,8]")
|
||||
@ApiImplicitParam(name = "model", value = "模块 用户user,商品product,微信wechat"),
|
||||
@ApiImplicitParam(name = "pid", value = "分类ID 0编辑器,1商品图片,6组合数据图,7前台用户,8微信系列 ", allowableValues = "range[0,1,2,6,7,8]")
|
||||
})
|
||||
public CommonResult<FileResultVo> image(MultipartFile multipart,@RequestParam(value = "model") String model,
|
||||
@RequestParam(value = "pid") Integer pid) throws IOException {
|
||||
|
@ -1,3 +1,14 @@
|
||||
# 相关配置
|
||||
crmeb:
|
||||
version: food-v1.0.0 # 当前代码版本
|
||||
domain: #配合swagger使用 # 待部署域名
|
||||
wechat-api-url: #请求微信接口中专服务器
|
||||
wechat-js-api-debug: false #微信js api系列是否开启调试模式
|
||||
wechat-js-api-beta: true #微信js api是否是beta版本
|
||||
asyncConfig: false #是否同步config表数据到redis
|
||||
asyncWeChatProgramTempList: false #是否同步小程序公共模板库
|
||||
imagePath: F:\idea_projects\my\prepare_food\foodimage\ # 服务器图片路径配置 斜杠结尾
|
||||
|
||||
server:
|
||||
port: 20011
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 相关配置
|
||||
crmeb:
|
||||
version: front-1.0.0 # 当前代码版本
|
||||
version: front-v1.0.0 # 当前代码版本
|
||||
|
||||
# 配置端口
|
||||
server:
|
||||
|
@ -74,4 +74,10 @@ public interface StoreOrderDao extends BaseMapper<StoreOrder> {
|
||||
*/
|
||||
List<CanApplyOrderResponse> canApplyOrderList(Integer userId);
|
||||
|
||||
/**
|
||||
* 退款拒绝,清空字段
|
||||
* @param storeOrder
|
||||
*/
|
||||
void refundRefuseUpdateById(StoreOrder storeOrder);
|
||||
|
||||
}
|
||||
|
@ -109,9 +109,6 @@ public class OrderUtils {
|
||||
case Constants.PAY_TYPE_ALI_PAY:
|
||||
payTypeStr = "支付宝支付";
|
||||
break;
|
||||
case Constants.PAY_TYPE_TEA_FRUIT:
|
||||
payTypeStr = "茶叶兑换商品";
|
||||
break;
|
||||
default:
|
||||
payTypeStr = "其他支付方式";
|
||||
break;
|
||||
|
@ -21,6 +21,13 @@ public interface StoreOrderReturnService extends IService<StoreOrderReturn> {
|
||||
*/
|
||||
CommonPage<ApplyRecordsResponse> applyRecordsList(PageParamRequest pageRequest);
|
||||
|
||||
/**
|
||||
* 售后信息
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
ApplyRecordsResponse getApplyByOrderId(Integer orderId);
|
||||
|
||||
/**
|
||||
* 售后详情
|
||||
* @param id
|
||||
|
@ -386,4 +386,12 @@ public interface StoreOrderService extends IService<StoreOrder> {
|
||||
* @return
|
||||
*/
|
||||
List<CanApplyOrderResponse> canApplyOrderList(Integer userId);
|
||||
|
||||
/**
|
||||
* 订单备货
|
||||
* @param idList
|
||||
* @return
|
||||
*/
|
||||
Boolean prepare(List<Integer> idList);
|
||||
|
||||
}
|
||||
|
@ -567,7 +567,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
// 订单详情对象列表
|
||||
List<OrderInfoResponse> infoResponseList = CollUtil.newArrayList();
|
||||
List<StoreOrderInfo> infoList = storeOrderInfoService.getListByOrderNo(storeOrder.getOrderId());
|
||||
infoList.forEach(e -> {
|
||||
BigDecimal proTotalPrice = BigDecimal.ZERO;
|
||||
for (StoreOrderInfo e : infoList) {
|
||||
OrderInfoResponse orderInfoResponse = new OrderInfoResponse();
|
||||
orderInfoResponse.setStoreName(e.getProductName());
|
||||
orderInfoResponse.setImage(e.getImage());
|
||||
@ -577,8 +578,10 @@ public class OrderServiceImpl implements OrderService {
|
||||
orderInfoResponse.setIsReply(e.getIsReply() ? 1 : 0);
|
||||
orderInfoResponse.setAttrId(e.getAttrValueId());
|
||||
orderInfoResponse.setSku(e.getSku());
|
||||
orderInfoResponse.setCouponPrice(e.getCouponPrice());
|
||||
infoResponseList.add(orderInfoResponse);
|
||||
});
|
||||
proTotalPrice = proTotalPrice.add(orderInfoResponse.getPrice().multiply(new BigDecimal(e.getPayNum())));
|
||||
}
|
||||
storeOrderDetailResponse.setOrderInfoList(infoResponseList);
|
||||
|
||||
// 系统门店信息
|
||||
@ -587,11 +590,9 @@ public class OrderServiceImpl implements OrderService {
|
||||
storeOrderDetailResponse.setSystemStore(systemStoreService.getByCondition(systemStorePram));
|
||||
// 腾讯云地图key
|
||||
storeOrderDetailResponse.setMapKey(systemConfigService.getValueByKey(SysConfigConstants.CONFIG_SITE_TENG_XUN_MAP_KEY));
|
||||
BeanUtils.copyProperties(storeOrder, storeOrderDetailResponse);
|
||||
storeOrderDetailResponse.setStatusPic(orderStatusVo.getStr("statusPic"));
|
||||
storeOrderDetailResponse.setOrderStatusMsg(orderStatusVo.getStr("msg"));
|
||||
storeOrderDetailResponse.setPayTypeStr(orderStatusVo.getStr("payTypeStr"));
|
||||
BigDecimal proTotalPrice = storeOrderDetailResponse.getPayPrice().add(storeOrderDetailResponse.getCouponPrice()).add(storeOrderDetailResponse.getDeductionPrice()).subtract(storeOrderDetailResponse.getPayPostage());
|
||||
storeOrderDetailResponse.setProTotalPrice(proTotalPrice);
|
||||
return storeOrderDetailResponse;
|
||||
}
|
||||
@ -630,8 +631,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
record.set("msg", "正在为您退款,感谢您的支持");
|
||||
} else if (storeOrder.getStatus() == 0) {
|
||||
record.set("type", 1);
|
||||
record.set("title", "未发货");
|
||||
record.set("msg", "商家未发货,请耐心等待");
|
||||
record.set("title", "待发货");
|
||||
record.set("msg", "商家待发货,请耐心等待");
|
||||
} else if (storeOrder.getStatus() == 1) { // 待收货处理
|
||||
// 待收货
|
||||
if (null != storeOrder.getDeliveryType() && storeOrder.getDeliveryType().equals(Constants.ORDER_STATUS_STR_SPIKE_KEY)) { // 送货
|
||||
@ -651,8 +652,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
List<StoreOrderStatus> sOrderStatusResults = storeOrderStatusService.getByEntity(storeOrderStatus);
|
||||
if (sOrderStatusResults.size()>0) {
|
||||
record.set("type", 2);
|
||||
record.set("title", "待收货");
|
||||
record.set("msg", "商家已发货,请耐心等待");
|
||||
record.set("title", "配送中");
|
||||
record.set("msg", "商家正在配送中,请耐心等待");
|
||||
}
|
||||
}else {
|
||||
StoreOrderStatus storeOrderStatus = new StoreOrderStatus();
|
||||
@ -677,6 +678,10 @@ public class OrderServiceImpl implements OrderService {
|
||||
record.set("type", 4);
|
||||
record.set("title", "交易完成");
|
||||
record.set("msg", "交易完成,感谢您的支持");
|
||||
}else if (storeOrder.getStatus() == 4) {
|
||||
record.set("type", 5);
|
||||
record.set("title", "备货中");
|
||||
record.set("msg", "正在备货中,请耐心等待");
|
||||
}
|
||||
|
||||
// 支付方式
|
||||
@ -843,6 +848,10 @@ public class OrderServiceImpl implements OrderService {
|
||||
orderInfoResponse.setCartNum(e.getInfo().getPayNum());
|
||||
orderInfoResponse.setPrice(e.getInfo().getPrice());
|
||||
orderInfoResponse.setProductId(e.getProductId());
|
||||
orderInfoResponse.setCouponPrice(e.getInfo().getCouponPrice());
|
||||
orderInfoResponse.setAttrId(e.getInfo().getAttrValueId());
|
||||
orderInfoResponse.setSku(e.getInfo().getSku());
|
||||
orderInfoResponse.setIsReply(e.getInfo().getIsReply());
|
||||
infoResponseList.add(orderInfoResponse);
|
||||
});
|
||||
response.setOrderInfoList(infoResponseList);
|
||||
@ -897,6 +906,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
orderInfoResponse.setProductId(e.getProductId());
|
||||
orderInfoResponse.setCouponPrice(e.getCouponPrice());
|
||||
orderInfoResponse.setAttrId(e.getAttrValueId());
|
||||
orderInfoResponse.setSku(e.getSku());
|
||||
orderInfoResponse.setIsReply(e.getIsReply() ? 1 : 0);
|
||||
infoResponseList.add(orderInfoResponse);
|
||||
});
|
||||
storeOrder.setOrderInfoList(infoResponseList);
|
||||
@ -1230,7 +1241,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
verifyCode = CrmebUtil.randomCount(1000000000L, 9999999999L) + "";
|
||||
userAddressStr = systemStore.getName();
|
||||
} else if (request.getShippingType() == 3) { // 骑手配送
|
||||
String deliveryTime = request.getDeliveryTime().split("-")[0];
|
||||
String deliveryTime = request.getDeliveryTime().split("~")[0];
|
||||
if (request.getAddressId() <= 0) throw new CrmebException("请选择配送地址");
|
||||
if (StringUtils.isEmpty(deliveryTime)) throw new CrmebException("请选择配送时间");
|
||||
|
||||
@ -1248,7 +1259,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
Integer isNowDay = DeliveryUtil.isNowDay(dTime);
|
||||
// 配送时间不是今天 或 (是今天下午 && 当前时间是上午) 通过
|
||||
if (!(isNowDay == 0 || (isNowDay == 1 && DeliveryUtil.isAmOrPm(dTime) == 1 && DeliveryUtil.isAmOrPm(now) == 0))) {
|
||||
throw new CrmebException("请重新选择配送时间");
|
||||
throw new CrmebException("配送时间有误");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1782,6 +1793,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
detailVo.setIsSub(storeProduct.getIsSub());
|
||||
detailVo.setProductType(Constants.PRODUCT_TYPE_NORMAL);
|
||||
detailVo.setVipPrice(detailVo.getPrice());
|
||||
detailVo.setCouponPrice(BigDecimal.ZERO);
|
||||
if (ObjectUtil.isNotNull(finalUserLevel)) {
|
||||
BigDecimal vipPrice = detailVo.getPrice().multiply(new BigDecimal(finalUserLevel.getDiscount())).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
|
||||
detailVo.setVipPrice(vipPrice);
|
||||
|
@ -40,6 +40,8 @@ public class StoreOrderReturnServiceImpl extends ServiceImpl<StoreOrderReturnDao
|
||||
public void refundErr(Integer orderId, String verifyFailReason) {
|
||||
LambdaQueryWrapper<StoreOrderReturn> lw = new LambdaQueryWrapper<>();
|
||||
lw.eq(StoreOrderReturn::getOrderId, orderId);
|
||||
lw.orderByDesc(StoreOrderReturn::getId);
|
||||
lw.last(" limit 1");
|
||||
StoreOrderReturn one = getOne(lw);
|
||||
StoreOrderReturn upd = new StoreOrderReturn();
|
||||
upd.setId(one.getId());
|
||||
@ -53,6 +55,8 @@ public class StoreOrderReturnServiceImpl extends ServiceImpl<StoreOrderReturnDao
|
||||
public void refundOk(Integer orderId) {
|
||||
LambdaQueryWrapper<StoreOrderReturn> lw = new LambdaQueryWrapper<>();
|
||||
lw.eq(StoreOrderReturn::getOrderId, orderId);
|
||||
lw.orderByDesc(StoreOrderReturn::getId);
|
||||
lw.last(" limit 1");
|
||||
StoreOrderReturn one = getOne(lw);
|
||||
StoreOrderReturn upd = new StoreOrderReturn();
|
||||
upd.setId(one.getId());
|
||||
@ -68,21 +72,36 @@ public class StoreOrderReturnServiceImpl extends ServiceImpl<StoreOrderReturnDao
|
||||
List<ApplyRecordsResponse> list = dao.applyRecordsList(userId, null);
|
||||
PageHelper.clearPage();
|
||||
for (ApplyRecordsResponse ar : list) {
|
||||
ar.setReturnInfoList(storeOrderReturnInfoService.selectByReturnId(ar.getId()));
|
||||
List<StoreOrderReturnInfo> returnInfoList = storeOrderReturnInfoService.selectByReturnId(ar.getId());
|
||||
ar.setReturnInfoList(returnInfoList);
|
||||
ar.setReturnNum(returnInfoList.stream().map(StoreOrderReturnInfo::getReturnNum).reduce(0, Integer::sum));
|
||||
}
|
||||
return CommonPage.restPage(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplyRecordsResponse getApplyRecord(String id) {
|
||||
Integer userId = userService.getUserIdException();
|
||||
List<ApplyRecordsResponse> list = dao.applyRecordsList(userId, Integer.parseInt(id));
|
||||
if (list.isEmpty()) { throw new CrmebException("未找到信息"); }
|
||||
public ApplyRecordsResponse getApplyByOrderId(Integer orderId) {
|
||||
LambdaQueryWrapper<StoreOrderReturn> lw = new LambdaQueryWrapper<>();
|
||||
lw.eq(StoreOrderReturn::getOrderId, orderId);
|
||||
lw.orderByDesc(StoreOrderReturn::getId);
|
||||
lw.last(" limit 1");
|
||||
StoreOrderReturn oReturn = dao.selectOne(lw);
|
||||
return getReturn(null, oReturn.getId());
|
||||
}
|
||||
|
||||
private ApplyRecordsResponse getReturn(Integer userId, Integer returnId) {
|
||||
List<ApplyRecordsResponse> list = dao.applyRecordsList(userId, returnId);
|
||||
if (list.isEmpty()) { throw new CrmebException("未找到信息"); }
|
||||
ApplyRecordsResponse response = list.get(0);
|
||||
List<StoreOrderReturnInfo> returnInfoList = storeOrderReturnInfoService.selectByReturnId(response.getId());
|
||||
response.setReturnInfoList(returnInfoList);
|
||||
response.setReturnNum(returnInfoList.stream().map(StoreOrderReturnInfo::getReturnNum).reduce(0, Integer::sum));
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplyRecordsResponse getApplyRecord(String id) {
|
||||
Integer userId = userService.getUserIdException();
|
||||
return getReturn(userId, Integer.parseInt(id));
|
||||
}
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
Page<Object> startPage = PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
|
||||
QueryWrapper<StoreOrder> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("id", "order_id", "uid", "real_name", "pay_price", "pay_type", "create_time", "status", "refund_status"
|
||||
, "refund_reason_wap_img", "refund_reason_wap_explain", "refund_reason_wap", "refund_reason", "refund_reason_time"
|
||||
, "refund_reason_wap_img", "refund_reason_wap_explain", "refund_reason_wap", "refund_reason", "refund_reason_time", "refund_price"
|
||||
, "is_del", "combination_id", "pink_id", "seckill_id", "bargain_id", "verify_code", "remark", "paid", "is_system_del", "shipping_type", "type", "is_alter_price");
|
||||
if (StrUtil.isNotBlank(request.getOrderNo())) {
|
||||
queryWrapper.eq("order_id", request.getOrderNo());
|
||||
@ -522,7 +522,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
//退款
|
||||
if (storeOrder.getPayType().equals(Constants.PAY_TYPE_WE_CHAT) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) {
|
||||
try {
|
||||
storeOrderRefundService.refund(request, storeOrder);
|
||||
//storeOrderRefundService.refund(request, storeOrder);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new CrmebException("微信申请退款失败!");
|
||||
@ -592,8 +592,12 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
// User spread = userService.getById(brokerageRecord.getUid());
|
||||
// storeOrderInfoResponse.setSpreadName(spread.getNickname());
|
||||
// }
|
||||
|
||||
// 售后信息
|
||||
storeOrderInfoResponse.setProTotalPrice(storeOrder.getTotalPrice().subtract(storeOrder.getTotalPostage()));
|
||||
if (storeOrderInfoResponse.getRefundStatus() > 0) {
|
||||
ApplyRecordsResponse returnInfo = storeOrderReturnService.getApplyByOrderId(storeOrderInfoResponse.getId());
|
||||
storeOrderInfoResponse.setReturnInfo(returnInfo);
|
||||
}
|
||||
return storeOrderInfoResponse;
|
||||
}
|
||||
|
||||
@ -608,7 +612,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
//订单信息
|
||||
StoreOrder storeOrder = getInfoException(request.getOrderNo());
|
||||
if (storeOrder.getIsDel()) throw new CrmebException("订单已删除,不能发货!");
|
||||
if (storeOrder.getStatus() > 0) throw new CrmebException("订单已发货请勿重复操作!");
|
||||
if (!(storeOrder.getStatus() == 0 || storeOrder.getStatus() == 4)) throw new CrmebException("订单已发货请勿重复操作!");
|
||||
request.setId(storeOrder.getId());
|
||||
switch (request.getType()) {
|
||||
case "1":// 发货
|
||||
@ -635,6 +639,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
@Override
|
||||
public Boolean mark(String orderNo, String mark, String deliveryTime) {
|
||||
StoreOrder storeOrder = getInfoException(orderNo);
|
||||
if (StringUtils.isEmpty(mark) && StringUtils.isEmpty(deliveryTime)) { return true; }
|
||||
storeOrder.setRemark(mark);
|
||||
storeOrder.setDeliveryTime(deliveryTime);
|
||||
return updateById(storeOrder);
|
||||
@ -652,11 +657,13 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
throw new CrmebException("请填写拒绝退款原因");
|
||||
}
|
||||
StoreOrder storeOrder = getInfoException(orderNo);
|
||||
storeOrder.setRefundReason(reason);
|
||||
storeOrder.setRefundStatus(0);
|
||||
StoreOrder update = new StoreOrder();
|
||||
update.setId(storeOrder.getId());
|
||||
update.setRefundReason(reason);
|
||||
update.setRefundStatus(0);
|
||||
|
||||
Boolean execute = transactionTemplate.execute(e -> {
|
||||
updateById(storeOrder);
|
||||
dao.refundRefuseUpdateById(update);
|
||||
storeOrderReturnService.refundErr(storeOrder.getId(), reason);
|
||||
storeOrderStatusService.createLog(storeOrder.getId(), Constants.ORDER_LOG_REFUND_REFUSE, Constants.ORDER_LOG_MESSAGE_REFUND_REFUSE.replace("{reason}", reason));
|
||||
return Boolean.TRUE;
|
||||
@ -1424,6 +1431,27 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////// 以下为自定义方法
|
||||
|
||||
@Override
|
||||
public Boolean prepare(List<Integer> idList) {
|
||||
List<StoreOrder> storeOrders = dao.selectBatchIds(idList);
|
||||
// 未发货订单
|
||||
List<StoreOrder> notShippeds = storeOrders.stream().filter(i ->
|
||||
(i.getPaid() && i.getStatus() == 0 && i.getRefundStatus() == 0 && !i.getIsDel() && !i.getIsSystemDel())
|
||||
).collect(Collectors.toList());
|
||||
if (storeOrders.size() != notShippeds.size()) { throw new CrmebException("选中的订单中含有不是未发货订单!"); }
|
||||
for (StoreOrder storeOrder : notShippeds) {
|
||||
Boolean execute = transactionTemplate.execute(i -> {
|
||||
storeOrder.setStatus(4); // 改备货中
|
||||
updateById(storeOrder);
|
||||
//订单记录增加
|
||||
storeOrderStatusService.createLog(storeOrder.getId(), Constants.ORDER_LOG_PREPARE, "订单已备货");
|
||||
return Boolean.TRUE;
|
||||
});
|
||||
if (!execute) throw new CrmebException("订单备货失败!");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据时间参数获取有效订单
|
||||
* @return 有效订单列表
|
||||
@ -1925,14 +1953,14 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
queryWrapper.eq("paid", 1);
|
||||
queryWrapper.eq("status", 0);
|
||||
queryWrapper.eq("refund_status", 0);
|
||||
queryWrapper.eq("shipping_type", 1);//配送方式
|
||||
queryWrapper.in("shipping_type", 1, 3);//配送方式
|
||||
queryWrapper.eq("is_del", 0);
|
||||
break;
|
||||
case Constants.ORDER_STATUS_PREPARE_ING: //备货中
|
||||
queryWrapper.eq("paid", 1);
|
||||
queryWrapper.eq("status", 4);
|
||||
queryWrapper.eq("refund_status", 0);
|
||||
queryWrapper.eq("shipping_type", 1);//配送方式
|
||||
queryWrapper.in("shipping_type", 1, 3);//配送方式
|
||||
queryWrapper.eq("is_del", 0);
|
||||
break;
|
||||
case Constants.ORDER_STATUS_SPIKE: //待收货
|
||||
@ -2008,7 +2036,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
if (storeOrder.getPaid()
|
||||
&& storeOrder.getStatus() == 0
|
||||
&& storeOrder.getRefundStatus() == 0
|
||||
&& storeOrder.getShippingType() == 1
|
||||
&& (storeOrder.getShippingType() == 1 || storeOrder.getShippingType() == 3)
|
||||
&& !storeOrder.getIsDel()
|
||||
&& !storeOrder.getIsSystemDel()) {
|
||||
map.put("key", Constants.ORDER_STATUS_NOT_SHIPPED);
|
||||
@ -2019,7 +2047,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
if (storeOrder.getPaid()
|
||||
&& storeOrder.getStatus() == 4
|
||||
&& storeOrder.getRefundStatus() == 0
|
||||
&& storeOrder.getShippingType() == 1
|
||||
&&(storeOrder.getShippingType() == 1 || storeOrder.getShippingType() == 3)
|
||||
&& !storeOrder.getIsDel()
|
||||
&& !storeOrder.getIsSystemDel()) {
|
||||
map.put("key", Constants.ORDER_STATUS_PREPARE_ING);
|
||||
@ -2030,7 +2058,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
if (storeOrder.getPaid()
|
||||
&& storeOrder.getStatus() == 1
|
||||
&& storeOrder.getRefundStatus() == 0
|
||||
&& storeOrder.getShippingType() == 1
|
||||
&& (storeOrder.getShippingType() == 1 || storeOrder.getShippingType() == 3)
|
||||
&& !storeOrder.getIsDel()
|
||||
&& !storeOrder.getIsSystemDel()) {
|
||||
map.put("key", Constants.ORDER_STATUS_SPIKE);
|
||||
@ -2118,8 +2146,6 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
|
||||
return Constants.PAY_TYPE_STR_YUE;
|
||||
case Constants.PAY_TYPE_ALI_PAY:
|
||||
return Constants.PAY_TYPE_STR_ALI_PAY;
|
||||
case Constants.PAY_TYPE_TEA_FRUIT:
|
||||
return Constants.PAY_TYPE_STR_TEA_FRUIT;
|
||||
default:
|
||||
return Constants.PAY_TYPE_STR_OTHER;
|
||||
}
|
||||
|
@ -257,17 +257,17 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService {
|
||||
}
|
||||
|
||||
// 回滚经验
|
||||
UserExperienceRecord userExperienceRecord = userExperienceRecordService.getByOrderNoAndUid(storeOrder.getOrderId(), storeOrder.getUid());
|
||||
user.setExperience(user.getExperience() - userExperienceRecord.getExperience());
|
||||
//UserExperienceRecord userExperienceRecord = userExperienceRecordService.getByOrderNoAndUid(storeOrder.getOrderId(), storeOrder.getUid());
|
||||
//user.setExperience(user.getExperience() - userExperienceRecord.getExperience());
|
||||
|
||||
UserExperienceRecord experienceRecord = new UserExperienceRecord();
|
||||
BeanUtils.copyProperties(userExperienceRecord, experienceRecord);
|
||||
experienceRecord.setId(null);
|
||||
experienceRecord.setTitle(ExperienceRecordConstants.EXPERIENCE_RECORD_TITLE_REFUND);
|
||||
experienceRecord.setType(ExperienceRecordConstants.EXPERIENCE_RECORD_TYPE_SUB);
|
||||
experienceRecord.setBalance(user.getExperience());
|
||||
experienceRecord.setMark(StrUtil.format("订单退款,扣除{}赠送经验", userExperienceRecord.getExperience()));
|
||||
experienceRecord.setCreateTime(cn.hutool.core.date.DateUtil.date());
|
||||
// UserExperienceRecord experienceRecord = new UserExperienceRecord();
|
||||
// BeanUtils.copyProperties(userExperienceRecord, experienceRecord);
|
||||
// experienceRecord.setId(null);
|
||||
// experienceRecord.setTitle(ExperienceRecordConstants.EXPERIENCE_RECORD_TITLE_REFUND);
|
||||
// experienceRecord.setType(ExperienceRecordConstants.EXPERIENCE_RECORD_TYPE_SUB);
|
||||
// experienceRecord.setBalance(user.getExperience());
|
||||
// experienceRecord.setMark(StrUtil.format("订单退款,扣除{}赠送经验", userExperienceRecord.getExperience()));
|
||||
// experienceRecord.setCreateTime(cn.hutool.core.date.DateUtil.date());
|
||||
|
||||
// 回滚积分
|
||||
List<UserIntegralRecord> integralRecordList = userIntegralRecordService.findListByOrderIdAndUid(storeOrder.getOrderId(), storeOrder.getUid());
|
||||
@ -327,8 +327,8 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService {
|
||||
// }
|
||||
|
||||
// 经验处理
|
||||
userExperienceRecordService.save(experienceRecord);
|
||||
userLevelService.downLevel(user);
|
||||
//userExperienceRecordService.save(experienceRecord);
|
||||
//userLevelService.downLevel(user);
|
||||
|
||||
// 回滚库存
|
||||
rollbackStock(storeOrder);
|
||||
|
@ -2,6 +2,20 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.zbkj.service.dao.StoreOrderDao">
|
||||
|
||||
<update id="refundRefuseUpdateById" parameterType="com.zbkj.common.model.order.StoreOrder">
|
||||
update eb_store_order
|
||||
<set>
|
||||
refund_status = 0,
|
||||
refund_reason = #{refundReason},
|
||||
refund_reason_wap_img = null,
|
||||
refund_reason_wap_explain = null,
|
||||
refund_reason_wap = null,
|
||||
refund_reason_time = null,
|
||||
refund_price = 0
|
||||
</set>
|
||||
where id = #{ id, jdbcType=INTEGER}
|
||||
</update>
|
||||
|
||||
<select id="canApplyOrderList" resultType="com.zbkj.common.response.CanApplyOrderResponse">
|
||||
SELECT o.id, o.order_id orderId, o.create_time createTime, o.pay_price payPrice
|
||||
FROM eb_store_order o
|
||||
|
@ -7,7 +7,8 @@
|
||||
r.return_amount returnAmount, r.create_time createTime, return_verify_date returnVerifyDate,
|
||||
r.return_reason returnReason, r.return_image returnImage, refund_verify_fail_reason refundVerifyFailReason
|
||||
FROM eb_store_order_return r
|
||||
WHERE r.uid = #{uid}
|
||||
WHERE 1=1
|
||||
<if test="uid != null"> and r.uid = #{uid} </if>
|
||||
<if test="returnId != null"> and r.id = #{returnId} </if>
|
||||
ORDER BY id DESC
|
||||
</select>
|
||||
|
Loading…
Reference in New Issue
Block a user