From 263e54ee920e4f36e3682eb3d174453314dd04d6 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 16 Feb 2022 14:49:18 +0800 Subject: [PATCH] fix bug --- .../controller/market/WxOrderController.java | 4 +- .../iformall/controller/WxBillController.java | 97 +++++++++---------- .../controller/WxMicroPayController.java | 4 +- .../controller/WxPressOrderController.java | 7 +- .../com/iformall/file/aliyun/AliyunOSS.java | 7 +- .../iformall/mapper/WxBatchOrderMapper.java | 2 + .../com/iformall/service/WxOrderService.java | 6 +- .../service/impl/WxOrderServiceImpl.java | 6 +- .../park/impl/jieshun/JieShunParkService.java | 17 ++++ .../resources/mapper/WxBatchOrderMapper.xml | 4 + 10 files changed, 94 insertions(+), 60 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java index dcb341c07..d74bc704c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java @@ -92,7 +92,7 @@ public class WxOrderController extends BaseController { logger.debug("[" + getIpAddr() + "] WxOrderController::add"); //Assert.notNull(wxOrder.getName(), "角色名不能为空"); //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); - wxOrderService.saveOrUpdate(wxOrder); + wxOrderService.saveOrUpdate(wxOrder,false); return new ResultData(); } @@ -101,7 +101,7 @@ public class WxOrderController extends BaseController { @SystemControllerLog(description = "订单管理-更新") public ResultData update(@RequestBody WxOrder wxOrder) { logger.debug("[" + getIpAddr() + "] WxOrderController::update"); - wxOrderService.saveOrUpdate(wxOrder); + wxOrderService.saveOrUpdate(wxOrder,false); return new ResultData(); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java index c568ac29a..d7d3cab62 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java @@ -1,5 +1,6 @@ package com.iformall.controller; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.WxMerchant; @@ -37,56 +38,54 @@ public class WxBillController extends BaseController { @Autowired WxBillSettleService wxBillSettleService; - //TODO 待优化数据 -// @ApiOperation("所有欠缴和待缴的数据") -// @PostMapping("listBillOweAndWaitPay") -// public ResultData listBillOweAndWaitPay(@RequestBody WxBillAll wxBillAll) { -// -// if(StringUtils.isEmpty(wxBillAll.getTenantId())){ -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"tenantId不能为空"); -// } -// if(wxBillAll.getMerchantId()==null){ -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"merchantId不能为空"); -// } -// WxMerchant wxMerchant = wxMerchantService.getById(wxBillAll.getMerchantId()); -// if(wxMerchant==null){ -// return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); -// } -// if(wxMerchant.getStatus().equals(EnumMerchantStatus.NOT_VALID.getCode())){ -// return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID); -// } -// List> result=wxBillAllService.listBillOweAndWaitPay(wxBillAll); -// return new ResultData(result); -// } + @ApiOperation("所有欠缴和待缴的数据") + @PostMapping("listBillOweAndWaitPay") + public ResultData listBillOweAndWaitPay(@RequestBody WxBillAll wxBillAll) { - //TODO 待优化数据 -// @ApiOperation("账单") -// @PostMapping("listBill") -// public ResultData listBill(@RequestBody WxBillAll wxBillAll) { -// -// if(StringUtils.isEmpty(wxBillAll.getTenantId())){ -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"tenantId不能为空"); -// } -// if(wxBillAll.getMerchantId()==null){ -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"merchantId不能为空"); -// } -// WxMerchant wxMerchant = wxMerchantService.getById(wxBillAll.getMerchantId()); -// if(wxMerchant==null){ -// return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); -// } -// if(wxMerchant.getStatus().equals(EnumMerchantStatus.NOT_VALID.getCode())){ -// return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID); -// } -// if(!StringUtils.isEmpty(wxBillAll.getStarttime()) && StringUtils.isEmpty(wxBillAll.getEndtime())){ -// logger.info("开始时间和结束时间要同时存在或不存在"); -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"starttime和endtime要同时存在或不存在"); -// } -// if(StringUtils.isEmpty(wxBillAll.getStarttime()) && !StringUtils.isEmpty(wxBillAll.getEndtime())){ -// logger.info("开始时间和结束时间要同时存在或不存在"); -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"starttime和endtime要同时存在或不存在"); -// } -// return wxBillAllService.listBill(wxBillAll); -// } + if(StringUtils.isEmpty(wxBillAll.getTenantId())){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"tenantId不能为空"); + } + if(wxBillAll.getMerchantId()==null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"merchantId不能为空"); + } + WxMerchant wxMerchant = wxMerchantService.getById(wxBillAll.getMerchantId()); + if(wxMerchant==null){ + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); + } + if(wxMerchant.getStatus().equals(EnumMerchantStatus.NOT_VALID.getCode())){ + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID); + } + List> result=wxBillAllService.listBillOweAndWaitPay(wxBillAll); + return new ResultData(result); + } + + @ApiOperation("账单") + @PostMapping("listBill") + public ResultData listBill(@RequestBody WxBillAll wxBillAll) { + + if(StringUtils.isEmpty(wxBillAll.getTenantId())){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"tenantId不能为空"); + } + if(wxBillAll.getMerchantId()==null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"merchantId不能为空"); + } + WxMerchant wxMerchant = wxMerchantService.getById(wxBillAll.getMerchantId()); + if(wxMerchant==null){ + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); + } + if(wxMerchant.getStatus().equals(EnumMerchantStatus.NOT_VALID.getCode())){ + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID); + } + if(!StringUtils.isEmpty(wxBillAll.getStarttime()) && StringUtils.isEmpty(wxBillAll.getEndtime())){ + logger.info("开始时间和结束时间要同时存在或不存在"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"starttime和endtime要同时存在或不存在"); + } + if(StringUtils.isEmpty(wxBillAll.getStarttime()) && !StringUtils.isEmpty(wxBillAll.getEndtime())){ + logger.info("开始时间和结束时间要同时存在或不存在"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"starttime和endtime要同时存在或不存在"); + } + return wxBillAllService.listBill(wxBillAll); + } @GetMapping("/findSettleById") diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index 62d153624..a1239cebb 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -463,7 +463,9 @@ public class WxMicroPayController extends BaseController { WxOrder updateOrder = new WxOrder(); updateOrder.setId(microOrder.getId()); updateOrder.setPayment(remainPrice); - wxOrderService.saveOrUpdate(updateOrder); + updateOrder.setComposeOrderId(composeOrder.getMainOrderId()); + updateOrder.updateTenantInfo(wxMerchantBUser); + wxOrderService.saveOrUpdate(updateOrder,true); } catch (MallinkException e) { logger.error("核销异常: " + e.getMessage(),e); return new ResultData(e.getErrorCode(), e.getMessage()); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java index 22a61dd54..6dcb2fc69 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java @@ -208,8 +208,9 @@ public class WxPressOrderController extends BaseController { orderUpdatePress.setPressCurrentValue(order.getPressCurrentValue()); orderUpdatePress.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); orderUpdatePress.setUpdateDate(new Date()); + orderUpdatePress.updateTenantInfo(order); // 保存订单 - wxOrderService.saveOrUpdate(orderUpdatePress); + wxOrderService.saveOrUpdate(orderUpdatePress,false); } private void updatePressOrderComplete(WxOrder order, WxCouponCVo wxCouponCVo, Integer index) { @@ -222,11 +223,11 @@ public class WxPressOrderController extends BaseController { orderUpdatePress.setUpdateDate(new Date()); orderUpdatePress.updateTenantInfo(order); // 保存订单 - wxOrderService.saveOrUpdate(orderUpdatePress); + wxOrderService.saveOrUpdate(orderUpdatePress,true); // 发送砍价成功消息 if(index.equals(wxCouponCVo.getPressLimitNum())) { - wxOrderPressService.sendPressComplateMsg(orderUpdatePress); + //wxOrderPressService.sendPressComplateMsg(orderUpdatePress); } } diff --git a/mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java b/mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java index 905f531b6..73a3c15c9 100644 --- a/mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java +++ b/mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java @@ -85,7 +85,12 @@ public class AliyunOSS { ossClient.setBucketAcl(bucketName,CannedAccessControlList.PublicRead); if(null != result){ log.info("==========>OSS文件上传成功,OSS地址:"+fileUrl); - return aliyunOSSConfig.getFiledomain() + "/" + fileUrl; + //JPG的加上压缩 + if (suffix.equals("JPG") || suffix.equals("jpg")) { + return aliyunOSSConfig.getFiledomain() + "/" + fileUrl+"?x-oss-process=image/resize,w_10000/quality,q_60"; + }else { + return aliyunOSSConfig.getFiledomain() + "/" + fileUrl; + } } }catch (OSSException oe){ log.error(oe.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java index aaf89a47d..d49574e0d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java @@ -18,5 +18,7 @@ public interface WxBatchOrderMapper extends CommonMapper { WxBatchOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId); void updateCUserId(WxBatchOrder order); + + void updatePayMent(@Param("id")Long id,@Param("tenantId")String tenantId,@Param("payment")Integer payment); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index aa6c4fddd..6caf701a9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -126,7 +126,7 @@ public interface WxOrderService { * @return */ WxOrder getById(Long id,String tenantId); - + /** * 根据Id获得实体 * @@ -140,8 +140,8 @@ public interface WxOrderService { * * @param record */ - void saveOrUpdate(WxOrder record); - + void saveOrUpdate(WxOrder record,boolean updateBatchOrderPayment); + /** * 根据Id删除实体 * diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index e4dbbcea4..e375bddbb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -2103,8 +2103,9 @@ public class WxOrderServiceImpl implements WxOrderService { return wxOrderMapper.selectById(id,tenantId); } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public void saveOrUpdate(WxOrder record) { + public void saveOrUpdate(WxOrder record,boolean updateBatchOrderPayment) { if (record.getId() == null) { //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); final IdWorker idWorker = IdWorker.get(); @@ -2112,6 +2113,9 @@ public class WxOrderServiceImpl implements WxOrderService { wxOrderMapper.insert(record); } else { wxOrderMapper.updateById(record); + if (updateBatchOrderPayment && null != record.getComposeOrderId() && null != record.getPayment()) { + wxBatchOrderMapper.updatePayMent(record.getComposeOrderId(),record.getTenantId(),record.getPayment()); + } } } diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java index 57702dbbd..9e38e40e8 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java @@ -47,6 +47,22 @@ import com.iformall.utils.RedisLock; 2>小程序订单页(车牌+车场编号 ) path: pages/thirdPayOrder/payOrder?carNo=车牌&parkCode=车场编号 3>小程序订单页(订单编号) path: pages/thirdPayOrderByNo/payOrder?orderNo=订单编号 + +* 捷顺商户平台:http://merchant.jslife.com.cn/merchant/index.html#/auth/login +* 捷顺门店平台:http://merchant.jslife.com.cn/store/index.html#/auth/login + * wxParK配置: + * { + * "cid": "000000008032172", //获取token cid. [http://www.jslife.com.cn/jsaims/login] + * "psw": "000000008032172", //获取token pwd. [http://www.jslife.com.cn/jsaims/login] + * "usr": "000000008032172", //获取token usr. [http://www.jslife.com.cn/jsaims/login] + * "signkey": "71f1a4ab8c544379a192e1bf1b7e7d9e", //加密key + * "version": "2", //加密version + * "parkCode": "p201127315", //停车场编号 + * "loginUser": "000000008032172000003", //捷顺门店平台登录账号 + * "loginPassword": "ycHqp61Acudxz", //捷顺门店平台登录密码 + * "businesserCode": "000000008032172" //捷顺商户编号 + * } + * @author alascor * */ @@ -109,6 +125,7 @@ public class JieShunParkService extends BaseParkService implements ParkAdapterSe * 捷顺门店平台:http://merchant.jslife.com.cn/store/index.html#/auth/login * 门店商户号 000000008032172000003 密码 ycHqp61Acudxz * + * * API对接注意事项: 1、token有效期两个小时,每两小时内登录一次获取token,调业务接口不需要频繁登录用,建议获取一次token存本地缓存,之后从本地获取,两小时内刷新一次, 为避免调业务接口时刚好token被刷新,导致token失效(无效的令牌或令牌已过期),可以做下容错,重新登录获取token或用最新token重新调业务接口。 diff --git a/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml index e5d86842d..2e6f589db 100644 --- a/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml @@ -94,5 +94,9 @@ update wx_batch_order set `c_user_id` = #{cUserId} where id =#{id} and tenant_id=#{tenantId} + + + update wx_batch_order set `payment` = #{payment} where id =#{id} and tenant_id=#{tenantId} +