|
|
@@ -5,6 +5,7 @@ import java.util.List;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
@@ -137,7 +138,8 @@ public class TblDzbcOrderController extends BaseController {
|
|
|
@RepeatSubmit()
|
|
|
@PutMapping()
|
|
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblDzbcOrderBo bo) {
|
|
|
- return toAjax(tblDzbcOrderService.updateByBo(bo));
|
|
|
+// return toAjax(tblDzbcOrderService.updateByBo(bo));
|
|
|
+ return R.fail("失败");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -150,7 +152,8 @@ public class TblDzbcOrderController extends BaseController {
|
|
|
@DeleteMapping("/{ids}")
|
|
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
|
|
@PathVariable Long[] ids) {
|
|
|
- return toAjax(tblDzbcOrderService.deleteWithValidByIds(List.of(ids), true));
|
|
|
+// return toAjax(tblDzbcOrderService.deleteWithValidByIds(List.of(ids), true));
|
|
|
+ return R.fail("失败");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -164,6 +167,15 @@ public class TblDzbcOrderController extends BaseController {
|
|
|
public R getOrderWxPay(@PathVariable Long id) {
|
|
|
TblDzbcOrderVo tblDzbcOrderVo = tblDzbcOrderService.queryById(id);
|
|
|
if (tblDzbcOrderVo == null) return R.fail("该订单不存在");
|
|
|
+ Long userid=null;
|
|
|
+ if(!LoginHelper.getLoginUser().getRoles().stream().map(i->i.getRoleName()).collect(Collectors.joining(",")).contains("定制班车-管理员")){
|
|
|
+ userid = (LoginHelper.getUserId());
|
|
|
+ }
|
|
|
+ if(userid!=null){
|
|
|
+ if(!tblDzbcOrderVo.getUserId().equals(userid)){
|
|
|
+ return R.fail("您没有权限查看该订单");
|
|
|
+ }
|
|
|
+ }
|
|
|
if (tblDzbcOrderVo.getStatus().equals("0")) {
|
|
|
try {
|
|
|
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
|
|
@@ -214,13 +226,43 @@ public class TblDzbcOrderController extends BaseController {
|
|
|
@GetMapping("/cancel/{id}")
|
|
|
public R<Void> cancelOrder(@PathVariable Long id) {
|
|
|
TblDzbcOrderVo tblDzbcOrderVo = tblDzbcOrderService.queryById(id);
|
|
|
+ Long userid=null;
|
|
|
+ if(!LoginHelper.getLoginUser().getRoles().stream().map(i->i.getRoleName()).collect(Collectors.joining(",")).contains("定制班车-管理员")){
|
|
|
+ userid = (LoginHelper.getUserId());
|
|
|
+ }
|
|
|
+ if(userid!=null){
|
|
|
+ if(!tblDzbcOrderVo.getUserId().equals(userid)){
|
|
|
+ return R.fail("您没有权限查看该订单");
|
|
|
+ }
|
|
|
+ }
|
|
|
if (tblDzbcOrderVo == null) return R.fail("该订单不存在");
|
|
|
if (tblDzbcOrderVo.getStatus().equals("1")) {
|
|
|
+ //判断订单时间 订单时间距离发车>60分钟可以取消
|
|
|
+ double bl = 1;
|
|
|
+ try {
|
|
|
+ JSONObject json = JSONUtil.parseObj(tblDzbcOrderVo.getExt2()).getJSONObject("schedulInfo");
|
|
|
+ Date date = json.getDate("mdate");
|
|
|
+ String time = json.getStr("mtime");
|
|
|
+ Date date1 = DateUtil.parse(DateUtil.format(date, "yyyy-MM-dd") + " " + time, "yyyy-MM-dd HH:mm:ss");
|
|
|
+ if(date1.getTime()-DateUtil.current()>60*60*1000){
|
|
|
+ bl=1;
|
|
|
+ }else if(date1.getTime()-DateUtil.current()<60*60*1000 && date1.getTime()-DateUtil.current()>0){
|
|
|
+ bl=0.5;
|
|
|
+ }else{
|
|
|
+ return R.fail("该订单已发车,无法取消,请联系管理员");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ return R.fail("该订单无法取消");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (DateUtil.between(new Date(), tblDzbcOrderVo.getCreateTime(), DateUnit.MINUTE) > 30) {
|
|
|
+ return R.fail("该订单无法取消");
|
|
|
+ }
|
|
|
try {
|
|
|
JSONObject wxtrade = JSONUtil.parseObj(tblDzbcOrderVo.getExt2());
|
|
|
WxPayRefundRequest refundRequest = new WxPayRefundRequest();
|
|
|
refundRequest.setTotalFee(tblDzbcOrderVo.getTotalPrice());
|
|
|
- refundRequest.setRefundFee(tblDzbcOrderVo.getTotalPrice());
|
|
|
+ refundRequest.setRefundFee((int)Math.round(tblDzbcOrderVo.getTotalPrice()*bl));
|
|
|
refundRequest.setOutRefundNo(wxtrade.getStr("transactionId"));
|
|
|
refundRequest.setNotifyUrl(baseUrl + "/system/commonOther/wx/ref");
|
|
|
wxPayService.refund(refundRequest);
|
|
|
@@ -229,7 +271,7 @@ public class TblDzbcOrderController extends BaseController {
|
|
|
order1.setId(tblDzbcOrderVo.getId());
|
|
|
order1.setStatus("2");
|
|
|
tblDzbcOrderService.updateByBo(order1);
|
|
|
- return R.ok("成功");
|
|
|
+ return R.ok("成功,发车前1小时可以退50%车费");
|
|
|
}catch (Exception e){}
|
|
|
return R.fail("该订单无法取消");
|
|
|
}else if(tblDzbcOrderVo.getStatus().equals("0")){
|