| @@ -92,7 +92,7 @@ public class WxOrderController extends BaseController { | |||||
| logger.debug("[" + getIpAddr() + "] WxOrderController::add"); | logger.debug("[" + getIpAddr() + "] WxOrderController::add"); | ||||
| //Assert.notNull(wxOrder.getName(), "角色名不能为空"); | //Assert.notNull(wxOrder.getName(), "角色名不能为空"); | ||||
| //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); | //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); | ||||
| wxOrderService.saveOrUpdate(wxOrder); | |||||
| wxOrderService.saveOrUpdate(wxOrder,false); | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @@ -101,7 +101,7 @@ public class WxOrderController extends BaseController { | |||||
| @SystemControllerLog(description = "订单管理-更新") | @SystemControllerLog(description = "订单管理-更新") | ||||
| public ResultData update(@RequestBody WxOrder wxOrder) { | public ResultData update(@RequestBody WxOrder wxOrder) { | ||||
| logger.debug("[" + getIpAddr() + "] WxOrderController::update"); | logger.debug("[" + getIpAddr() + "] WxOrderController::update"); | ||||
| wxOrderService.saveOrUpdate(wxOrder); | |||||
| wxOrderService.saveOrUpdate(wxOrder,false); | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.iformall.controller; | package com.iformall.controller; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.WxMerchant; | import com.iformall.domain.po.WxMerchant; | ||||
| @@ -37,56 +38,54 @@ public class WxBillController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| WxBillSettleService wxBillSettleService; | 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<Map<String,Object>> 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<Map<String,Object>> 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") | @GetMapping("/findSettleById") | ||||
| @@ -463,7 +463,9 @@ public class WxMicroPayController extends BaseController { | |||||
| WxOrder updateOrder = new WxOrder(); | WxOrder updateOrder = new WxOrder(); | ||||
| updateOrder.setId(microOrder.getId()); | updateOrder.setId(microOrder.getId()); | ||||
| updateOrder.setPayment(remainPrice); | updateOrder.setPayment(remainPrice); | ||||
| wxOrderService.saveOrUpdate(updateOrder); | |||||
| updateOrder.setComposeOrderId(composeOrder.getMainOrderId()); | |||||
| updateOrder.updateTenantInfo(wxMerchantBUser); | |||||
| wxOrderService.saveOrUpdate(updateOrder,true); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error("核销异常: " + e.getMessage(),e); | logger.error("核销异常: " + e.getMessage(),e); | ||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | return new ResultData(e.getErrorCode(), e.getMessage()); | ||||
| @@ -208,8 +208,9 @@ public class WxPressOrderController extends BaseController { | |||||
| orderUpdatePress.setPressCurrentValue(order.getPressCurrentValue()); | orderUpdatePress.setPressCurrentValue(order.getPressCurrentValue()); | ||||
| orderUpdatePress.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); | orderUpdatePress.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); | ||||
| orderUpdatePress.setUpdateDate(new Date()); | orderUpdatePress.setUpdateDate(new Date()); | ||||
| orderUpdatePress.updateTenantInfo(order); | |||||
| // 保存订单 | // 保存订单 | ||||
| wxOrderService.saveOrUpdate(orderUpdatePress); | |||||
| wxOrderService.saveOrUpdate(orderUpdatePress,false); | |||||
| } | } | ||||
| private void updatePressOrderComplete(WxOrder order, WxCouponCVo wxCouponCVo, Integer index) { | private void updatePressOrderComplete(WxOrder order, WxCouponCVo wxCouponCVo, Integer index) { | ||||
| @@ -222,11 +223,11 @@ public class WxPressOrderController extends BaseController { | |||||
| orderUpdatePress.setUpdateDate(new Date()); | orderUpdatePress.setUpdateDate(new Date()); | ||||
| orderUpdatePress.updateTenantInfo(order); | orderUpdatePress.updateTenantInfo(order); | ||||
| // 保存订单 | // 保存订单 | ||||
| wxOrderService.saveOrUpdate(orderUpdatePress); | |||||
| wxOrderService.saveOrUpdate(orderUpdatePress,true); | |||||
| // 发送砍价成功消息 | // 发送砍价成功消息 | ||||
| if(index.equals(wxCouponCVo.getPressLimitNum())) { | if(index.equals(wxCouponCVo.getPressLimitNum())) { | ||||
| wxOrderPressService.sendPressComplateMsg(orderUpdatePress); | |||||
| //wxOrderPressService.sendPressComplateMsg(orderUpdatePress); | |||||
| } | } | ||||
| } | } | ||||
| @@ -85,7 +85,12 @@ public class AliyunOSS { | |||||
| ossClient.setBucketAcl(bucketName,CannedAccessControlList.PublicRead); | ossClient.setBucketAcl(bucketName,CannedAccessControlList.PublicRead); | ||||
| if(null != result){ | if(null != result){ | ||||
| log.info("==========>OSS文件上传成功,OSS地址:"+fileUrl); | 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){ | }catch (OSSException oe){ | ||||
| log.error(oe.getMessage()); | log.error(oe.getMessage()); | ||||
| @@ -18,5 +18,7 @@ public interface WxBatchOrderMapper extends CommonMapper<WxBatchOrder, Long> { | |||||
| WxBatchOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId); | WxBatchOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId); | ||||
| void updateCUserId(WxBatchOrder order); | void updateCUserId(WxBatchOrder order); | ||||
| void updatePayMent(@Param("id")Long id,@Param("tenantId")String tenantId,@Param("payment")Integer payment); | |||||
| } | } | ||||
| @@ -126,7 +126,7 @@ public interface WxOrderService { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| WxOrder getById(Long id,String tenantId); | WxOrder getById(Long id,String tenantId); | ||||
| /** | /** | ||||
| * 根据Id获得实体 | * 根据Id获得实体 | ||||
| * | * | ||||
| @@ -140,8 +140,8 @@ public interface WxOrderService { | |||||
| * | * | ||||
| * @param record | * @param record | ||||
| */ | */ | ||||
| void saveOrUpdate(WxOrder record); | |||||
| void saveOrUpdate(WxOrder record,boolean updateBatchOrderPayment); | |||||
| /** | /** | ||||
| * 根据Id删除实体 | * 根据Id删除实体 | ||||
| * | * | ||||
| @@ -2103,8 +2103,9 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| return wxOrderMapper.selectById(id,tenantId); | return wxOrderMapper.selectById(id,tenantId); | ||||
| } | } | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| @Override | @Override | ||||
| public void saveOrUpdate(WxOrder record) { | |||||
| public void saveOrUpdate(WxOrder record,boolean updateBatchOrderPayment) { | |||||
| if (record.getId() == null) { | if (record.getId() == null) { | ||||
| //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); | //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); | ||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| @@ -2112,6 +2113,9 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| wxOrderMapper.insert(record); | wxOrderMapper.insert(record); | ||||
| } else { | } else { | ||||
| wxOrderMapper.updateById(record); | wxOrderMapper.updateById(record); | ||||
| if (updateBatchOrderPayment && null != record.getComposeOrderId() && null != record.getPayment()) { | |||||
| wxBatchOrderMapper.updatePayMent(record.getComposeOrderId(),record.getTenantId(),record.getPayment()); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -47,6 +47,22 @@ import com.iformall.utils.RedisLock; | |||||
| 2>小程序订单页(车牌+车场编号 ) path: pages/thirdPayOrder/payOrder?carNo=车牌&parkCode=车场编号 | 2>小程序订单页(车牌+车场编号 ) path: pages/thirdPayOrder/payOrder?carNo=车牌&parkCode=车场编号 | ||||
| 3>小程序订单页(订单编号) path: pages/thirdPayOrderByNo/payOrder?orderNo=订单编号 | 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 | * @author alascor | ||||
| * | * | ||||
| */ | */ | ||||
| @@ -109,6 +125,7 @@ public class JieShunParkService extends BaseParkService implements ParkAdapterSe | |||||
| * 捷顺门店平台:http://merchant.jslife.com.cn/store/index.html#/auth/login | * 捷顺门店平台:http://merchant.jslife.com.cn/store/index.html#/auth/login | ||||
| * 门店商户号 000000008032172000003 密码 ycHqp61Acudxz | * 门店商户号 000000008032172000003 密码 ycHqp61Acudxz | ||||
| * | * | ||||
| * | |||||
| * API对接注意事项: | * API对接注意事项: | ||||
| 1、token有效期两个小时,每两小时内登录一次获取token,调业务接口不需要频繁登录用,建议获取一次token存本地缓存,之后从本地获取,两小时内刷新一次, | 1、token有效期两个小时,每两小时内登录一次获取token,调业务接口不需要频繁登录用,建议获取一次token存本地缓存,之后从本地获取,两小时内刷新一次, | ||||
| 为避免调业务接口时刚好token被刷新,导致token失效(无效的令牌或令牌已过期),可以做下容错,重新登录获取token或用最新token重新调业务接口。 | 为避免调业务接口时刚好token被刷新,导致token失效(无效的令牌或令牌已过期),可以做下容错,重新登录获取token或用最新token重新调业务接口。 | ||||
| @@ -94,5 +94,9 @@ | |||||
| <update id="updateCUserId" parameterType="com.iformall.domain.po.WxBatchOrder"> | <update id="updateCUserId" parameterType="com.iformall.domain.po.WxBatchOrder"> | ||||
| update wx_batch_order set `c_user_id` = #{cUserId} where id =#{id} and tenant_id=#{tenantId} | update wx_batch_order set `c_user_id` = #{cUserId} where id =#{id} and tenant_id=#{tenantId} | ||||
| </update> | </update> | ||||
| <update id="updatePayMent" parameterType="java.util.HashMap"> | |||||
| update wx_batch_order set `payment` = #{payment} where id =#{id} and tenant_id=#{tenantId} | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||