| @@ -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(); | |||
| } | |||
| @@ -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<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") | |||
| @@ -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()); | |||
| @@ -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) { | |||
| @@ -221,12 +222,13 @@ public class WxPressOrderController extends BaseController { | |||
| orderUpdatePress.setPayment(wxCouponCVo.getSalePrice()); | |||
| orderUpdatePress.setUpdateDate(new Date()); | |||
| orderUpdatePress.updateTenantInfo(order); | |||
| orderUpdatePress.setComposeOrderId(order.getComposeOrderId()); | |||
| // 保存订单 | |||
| wxOrderService.saveOrUpdate(orderUpdatePress); | |||
| wxOrderService.saveOrUpdate(orderUpdatePress,true); | |||
| // 发送砍价成功消息 | |||
| if(index.equals(wxCouponCVo.getPressLimitNum())) { | |||
| wxOrderPressService.sendPressComplateMsg(orderUpdatePress); | |||
| //wxOrderPressService.sendPressComplateMsg(orderUpdatePress); | |||
| } | |||
| } | |||
| @@ -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()); | |||
| @@ -18,5 +18,7 @@ public interface WxBatchOrderMapper extends CommonMapper<WxBatchOrder, Long> { | |||
| 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); | |||
| } | |||
| @@ -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删除实体 | |||
| * | |||
| @@ -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()); | |||
| } | |||
| } | |||
| } | |||
| @@ -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重新调业务接口。 | |||
| @@ -94,5 +94,9 @@ | |||
| <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> | |||
| <update id="updatePayMent" parameterType="java.util.HashMap"> | |||
| update wx_batch_order set `payment` = #{payment} where id =#{id} and tenant_id=#{tenantId} | |||
| </update> | |||
| </mapper> | |||
| @@ -74,7 +74,7 @@ | |||
| <select id="queryOrderGroup" parameterType="com.iformall.domain.po.WxOrder" resultType="hashmap"> | |||
| select o.id orderId,o.order_status orderStatus,o.order_group_id orderGroupId,c.title,c.sub_title subTitle, | |||
| select o.id orderId,o.order_status orderStatus,o.order_group_id orderGroupId,o.compose_order_id composeOrderId,c.title,c.sub_title subTitle, | |||
| c.sale_price salePrice,c.cover_img coverImg,g.remain_people remainPeople,c.id couponId,g.expired_date | |||
| expiredDate,g.status,g.user_id firstUser,u.nick_name nickName,u.avatar_url avatarUrl,o.tenant_id tenantId,o.parent_tenant_id parentTenantId, | |||
| o.coupon_channel_id couponChannelId,c.press_limit_num pressLimitNum, | |||