核销增加分销与积分奖励,后台核销新增rest调用api
This commit is contained in:
@ -75,6 +75,8 @@ public interface YxStoreOrderService extends BaseService<YxStoreOrder> {
|
|||||||
|
|
||||||
void takeOrder(String orderId,int uid);
|
void takeOrder(String orderId,int uid);
|
||||||
|
|
||||||
|
void verificOrder(String orderId);
|
||||||
|
|
||||||
List<YxStoreOrderQueryVo> orderList(int uid,int type,int page,int limit);
|
List<YxStoreOrderQueryVo> orderList(int uid,int type,int page,int limit);
|
||||||
|
|
||||||
//@WebMethod
|
//@WebMethod
|
||||||
|
@ -592,6 +592,30 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<YxStoreOrderMapper,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 核销订单
|
||||||
|
* @param orderId
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void verificOrder(String orderId) {
|
||||||
|
YxStoreOrderQueryVo order = getOrderInfo(orderId,0);
|
||||||
|
if(ObjectUtil.isNull(order)) throw new ErrorRequestException("订单不存在");
|
||||||
|
|
||||||
|
YxStoreOrder storeOrder = new YxStoreOrder();
|
||||||
|
storeOrder.setStatus(OrderInfoEnum.STATUS_2.getValue());
|
||||||
|
storeOrder.setId(order.getId());
|
||||||
|
yxStoreOrderMapper.updateById(storeOrder);
|
||||||
|
|
||||||
|
//增加状态
|
||||||
|
orderStatusService.create(order.getId(),"user_take_delivery","已核销");
|
||||||
|
|
||||||
|
//奖励积分
|
||||||
|
gainUserIntegral(order);
|
||||||
|
|
||||||
|
//分销计算
|
||||||
|
userService.backOrderBrokerage(order);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 申请退款
|
* 申请退款
|
||||||
* @param param
|
* @param param
|
||||||
|
@ -12,6 +12,7 @@ import cn.hutool.core.io.FileUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.qrcode.QrCodeUtil;
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
||||||
|
import co.yixiang.annotation.AnonymousAccess;
|
||||||
import co.yixiang.aop.log.Log;
|
import co.yixiang.aop.log.Log;
|
||||||
import co.yixiang.common.api.ApiResult;
|
import co.yixiang.common.api.ApiResult;
|
||||||
import co.yixiang.common.web.controller.BaseController;
|
import co.yixiang.common.web.controller.BaseController;
|
||||||
@ -757,13 +758,43 @@ public class StoreOrderController extends BaseController {
|
|||||||
return ApiResult.ok(order);
|
return ApiResult.ok(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
order.setStatus(OrderInfoEnum.STATUS_2.getValue());
|
storeOrderService.verificOrder(order.getOrderId());
|
||||||
storeOrderService.updateById(order);
|
|
||||||
|
return ApiResult.ok("核销成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 后台订单核销用于远程调用
|
||||||
|
*/
|
||||||
|
@AnonymousAccess
|
||||||
|
@GetMapping("/order/admin/order_verific/{code}")
|
||||||
|
public ApiResult<Object> orderAminVerify(@PathVariable String code){
|
||||||
|
YxStoreOrder storeOrder = new YxStoreOrder();
|
||||||
|
storeOrder.setVerifyCode(code);
|
||||||
|
storeOrder.setIsDel(OrderInfoEnum.CANCEL_STATUS_0.getValue());
|
||||||
|
storeOrder.setPaid(OrderInfoEnum.PAY_STATUS_1.getValue());
|
||||||
|
storeOrder.setRefundStatus(OrderInfoEnum.REFUND_STATUS_0.getValue());
|
||||||
|
|
||||||
|
YxStoreOrder order = storeOrderService.getOne(Wrappers.query(storeOrder));
|
||||||
|
if(order == null) return ApiResult.fail("核销的订单不存在或未支付或已退款");
|
||||||
|
|
||||||
|
|
||||||
|
if(order.getStatus() > 0) return ApiResult.fail("订单已经核销");
|
||||||
|
|
||||||
|
if(order.getCombinationId() > 0 && order.getPinkId() > 0){
|
||||||
|
YxStorePinkQueryVo storePink = storePinkService.getYxStorePinkById(order.getPinkId());
|
||||||
|
if(!OrderInfoEnum.PINK_STATUS_2.getValue().equals(storePink.getStatus())){
|
||||||
|
return ApiResult.fail("拼团订单暂未成功无法核销");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
storeOrderService.verificOrder(order.getOrderId());
|
||||||
|
|
||||||
return ApiResult.ok("核销成功");
|
return ApiResult.ok("核销成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,9 +22,12 @@ import co.yixiang.mp.service.WxMpTemplateMessageService;
|
|||||||
import co.yixiang.mp.service.YxTemplateService;
|
import co.yixiang.mp.service.YxTemplateService;
|
||||||
import co.yixiang.mp.service.YxWechatTemplateService;
|
import co.yixiang.mp.service.YxWechatTemplateService;
|
||||||
import co.yixiang.utils.OrderUtil;
|
import co.yixiang.utils.OrderUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@ -32,7 +35,9 @@ import org.springframework.http.ResponseEntity;
|
|||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import java.text.MessageFormat;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,6 +50,9 @@ import java.util.concurrent.TimeUnit;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class StoreOrderController {
|
public class StoreOrderController {
|
||||||
|
|
||||||
|
@Value("${yshop.apiUrl}")
|
||||||
|
private String apiUrl;
|
||||||
|
|
||||||
|
|
||||||
private final YxStoreOrderService yxStoreOrderService;
|
private final YxStoreOrderService yxStoreOrderService;
|
||||||
private final YxStoreOrderStatusService yxStoreOrderStatusService;
|
private final YxStoreOrderStatusService yxStoreOrderStatusService;
|
||||||
@ -243,6 +251,8 @@ public class StoreOrderController {
|
|||||||
if(OrderInfoEnum.PAY_STATUS_0.getValue().equals(storeOrderDTO.getPaid())){
|
if(OrderInfoEnum.PAY_STATUS_0.getValue().equals(storeOrderDTO.getPaid())){
|
||||||
throw new BadRequestException("订单未支付");
|
throw new BadRequestException("订单未支付");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
if(storeOrderDTO.getStatus() > 0) throw new BadRequestException("订单已核销");
|
if(storeOrderDTO.getStatus() > 0) throw new BadRequestException("订单已核销");
|
||||||
|
|
||||||
if(storeOrderDTO.getCombinationId() > 0 && storeOrderDTO.getPinkId() > 0){
|
if(storeOrderDTO.getCombinationId() > 0 && storeOrderDTO.getPinkId() > 0){
|
||||||
@ -251,9 +261,19 @@ public class StoreOrderController {
|
|||||||
throw new BadRequestException("拼团订单暂未成功无法核销");
|
throw new BadRequestException("拼团订单暂未成功无法核销");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
**/
|
||||||
|
|
||||||
resources.setStatus(OrderInfoEnum.STATUS_2.getValue());
|
//远程调用API
|
||||||
yxStoreOrderService.update(resources);
|
RestTemplate rest = new RestTemplate();
|
||||||
|
String url = StrUtil.format(apiUrl+"/order/admin/order_verific/{}", resources.getVerifyCode());
|
||||||
|
String text = rest.getForObject(url, String.class);
|
||||||
|
|
||||||
|
JSONObject jsonObject = JSON.parseObject(text);
|
||||||
|
|
||||||
|
Integer status = jsonObject.getInteger("status");
|
||||||
|
String msg = jsonObject.getString("msg");
|
||||||
|
|
||||||
|
if(status != 200) throw new BadRequestException(msg);
|
||||||
|
|
||||||
|
|
||||||
return new ResponseEntity(HttpStatus.NO_CONTENT);
|
return new ResponseEntity(HttpStatus.NO_CONTENT);
|
||||||
|
@ -57,4 +57,5 @@ yshop:
|
|||||||
express:
|
express:
|
||||||
enable: true
|
enable: true
|
||||||
appId: 1607734
|
appId: 1607734
|
||||||
appKey: 81f43a2e-f504-45c4-9b54-2637d59f8190
|
appKey: 81f43a2e-f504-45c4-9b54-2637d59f8190
|
||||||
|
apiUrl: http://127.0.0.1:8009/api
|
Reference in New Issue
Block a user