| @@ -1,9 +1,14 @@ | |||||
| package com.iformall.controller.sys; | package com.iformall.controller.sys; | ||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.annotation.SystemControllerLog; | |||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.MallRole; | |||||
| import com.iformall.domain.po.MallRolePermission; | |||||
| import com.iformall.domain.po.SysConfig; | import com.iformall.domain.po.SysConfig; | ||||
| import com.iformall.domain.po.SysConfigValue; | import com.iformall.domain.po.SysConfigValue; | ||||
| import com.iformall.domain.po.base.BaseEntity; | |||||
| import com.iformall.service.SysConfigService; | import com.iformall.service.SysConfigService; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||
| @@ -25,13 +30,18 @@ public class SysConfigController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private SysConfigService sysConfigService; | private SysConfigService sysConfigService; | ||||
| @ApiOperation("列表接口") | |||||
| @ApiOperation("角色列表") | |||||
| @GetMapping("list") | @GetMapping("list") | ||||
| public ResultData list() { | |||||
| //@RequiresPermissions("sys:role:list") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||||
| public ResultData list(MallRole sysRole, Integer pageNum, Integer pageSize) { | |||||
| SysConfig config = new SysConfig(); | SysConfig config = new SysConfig(); | ||||
| config.setStatus(0); | config.setStatus(0); | ||||
| List<SysConfig> list = sysConfigService.getList(config, getTenantInfo()); | |||||
| return new ResultData(list); | |||||
| PageInfo<SysConfig> page = sysConfigService.listAsPage(config, pageNum, pageSize, getTenantInfo()); | |||||
| return new ResultData(page); | |||||
| } | } | ||||
| @ApiOperation("详情接口") | @ApiOperation("详情接口") | ||||
| @@ -23,6 +23,8 @@ CREATE TABLE `sys_config_value` ( | |||||
| insert into `sys_config`(`id`,`config_item_key`,`config_item_remark`,`create_date`,`update_date`,`status`) values | insert into `sys_config`(`id`,`config_item_key`,`config_item_remark`,`create_date`,`update_date`,`status`) values | ||||
| (1,'vierfySeconds','核销过期时间,秒','2021-11-29 17:53:23','2021-11-29 17:53:23',0); | (1,'vierfySeconds','核销过期时间,秒','2021-11-29 17:53:23','2021-11-29 17:53:23',0); | ||||
| insert into `sys_config`(`id`,`config_item_key`,`config_item_remark`,`create_date`,`update_date`,`status`) values | |||||
| (2,'defaultMerchantBUserId','外部设备核销默认商户员工编号','2021-11-29 17:53:23','2021-11-29 17:53:23',0); | |||||
| insert into `sys_config_value`(`id`,`config_item_id`,`config_item_value`,`tenant_id`,`parent_tenant_id`,`create_date`,`update_date`) values | insert into `sys_config_value`(`id`,`config_item_id`,`config_item_value`,`tenant_id`,`parent_tenant_id`,`create_date`,`update_date`) values | ||||
| (1,1,'60','789',NULL,'2021-11-29 17:54:07','2021-11-29 17:54:07'); | (1,1,'60','789',NULL,'2021-11-29 17:54:07','2021-11-29 17:54:07'); | ||||
| @@ -215,7 +215,7 @@ public class WxCouponOrderController extends BaseController { | |||||
| SysConfig sysConfig = sysConfigService.getByKey(SysConfigConstant.vierfy_seconds_key, getTenantInfo()); | SysConfig sysConfig = sysConfigService.getByKey(SysConfigConstant.vierfy_seconds_key, getTenantInfo()); | ||||
| if (null == sysConfig || StringUtils.isBlank(sysConfig.getConfigItemValue())) { | if (null == sysConfig || StringUtils.isBlank(sysConfig.getConfigItemValue())) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"系统设置[手动核销超时时间未配置]"); | |||||
| return new ResultData(ErrorCode.SYS_CONFIG_VIERFY_SECODES_UNSET); | |||||
| } | } | ||||
| Map retmap = new HashMap(); | Map retmap = new HashMap(); | ||||
| @@ -1,13 +1,23 @@ | |||||
| package com.iformall.controller.callback; | package com.iformall.controller.callback; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.ResultData; | |||||
| import com.iformall.common.SysConfigConstant; | |||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.WxCouponOrderCVo; | |||||
| import com.iformall.enums.EnumAssignTagsTrigger; | import com.iformall.enums.EnumAssignTagsTrigger; | ||||
| import com.iformall.enums.EnumCouponType; | |||||
| import com.iformall.enums.EnumCouponValidType; | |||||
| import com.iformall.enums.EnumCouponVerifyType; | |||||
| import com.iformall.enums.EnumCreditLockedStatus; | |||||
| import com.iformall.exception.MallinkException; | |||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import com.iformall.service.tags.jinmao.JinMaoOrderTagsDeveloper; | import com.iformall.service.tags.jinmao.JinMaoOrderTagsDeveloper; | ||||
| import com.iformall.service.tags.jinmao.JinMaoUserTagsDeveloper; | import com.iformall.service.tags.jinmao.JinMaoUserTagsDeveloper; | ||||
| import com.iformall.utils.DateUtils; | |||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -56,8 +66,8 @@ public class JinMaoController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private JinMaoUserTagsDeveloper jinMaoUserTagsDeveloper; | private JinMaoUserTagsDeveloper jinMaoUserTagsDeveloper; | ||||
| @Autowired | |||||
| private WxCouponOrderService wxCouponOrderService; | |||||
| /** | /** | ||||
| * 金茂东风湖运动公园用户数据推送。 | * 金茂东风湖运动公园用户数据推送。 | ||||
| @@ -197,54 +207,44 @@ public class JinMaoController extends BaseController { | |||||
| } | } | ||||
| @RequestMapping(value = "/dfh/verify") | @RequestMapping(value = "/dfh/verify") | ||||
| public void dfhVerify(@RequestBody Map param) throws Exception { | |||||
| public ResultData dfhVerify(@RequestBody Map param) throws Exception { | |||||
| logger.info("dfh verify:"+param); | logger.info("dfh verify:"+param); | ||||
| try { | try { | ||||
| String price = param.get("price")==null?"":param.get("price").toString(); | |||||
| Integer payment = 0; | |||||
| if(StringUtils.isNotBlank(price)) { | |||||
| payment = new BigDecimal(price) | |||||
| .multiply(new BigDecimal(100)) | |||||
| .intValue(); | |||||
| } | |||||
| Integer num = param.get("num")==null?1:Integer.parseInt(param.get("num").toString()); | |||||
| String userPhone = param.get("userPhone")==null?"":param.get("userPhone").toString(); | |||||
| String gymName = param.get("gymName")==null?"":param.get("gymName").toString(); | |||||
| String payWay = param.get("payWay")==null?"":param.get("payWay").toString(); | |||||
| String orderId = param.get("ID")==null?"":param.get("ID").toString(); | |||||
| String timeStr = param.get("time")==null?"":param.get("time").toString(); | |||||
| Date paymentTime = null; | |||||
| if(StringUtils.isNotBlank(timeStr)){ | |||||
| paymentTime = sdf.parse(timeStr); | |||||
| String couponOrderIdStr = param.get("couponOrderId")==null?"":param.get("couponOrderId").toString(); | |||||
| if (StringUtils.isBlank(couponOrderIdStr)) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | } | ||||
| String productName = param.get("productName")==null?"":param.get("productName").toString(); | |||||
| if(StringUtils.isNotBlank(userPhone) && userPhone.matches("^1[0-9]{10}$") | |||||
| && StringUtils.isNotBlank(orderId)){ | |||||
| WxCUserBasicInfo basicInfo = new WxCUserBasicInfo(); | |||||
| basicInfo.setPhone(userPhone); | |||||
| wxCUserBasicInfoService.registerJinmao(tenantEntity,basicInfo); | |||||
| JmSportOrder order = new JmSportOrder(); | |||||
| order.updateTenantInfo(tenantEntity); | |||||
| order.setOrderId(orderId); | |||||
| order.setUserPhone(userPhone); | |||||
| order.setUserId(basicInfo.getId()); | |||||
| order.setProductName(productName); | |||||
| order.setNum(num); | |||||
| order.setPrice(price); | |||||
| order.setPayment(payment); | |||||
| order.setPaymentTime(paymentTime); | |||||
| order.setPayWay(payWay); | |||||
| order.setGymName(gymName); | |||||
| jmSportOrderService.saveOrUpdate(order); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_DEV, basicInfo,tenantEntity,jinMaoOrderTagsDeveloper); | |||||
| }else{ | |||||
| logger.error("JinMaoController --dfhOrder--订单手机号为空或者订单号为空-userPhone{}"+userPhone+"-orderId{}"+orderId); | |||||
| String _decodeCouponOrderId = WxCouponOrderCVo.getDecodeExpiredCouponOrderId(couponOrderIdStr); | |||||
| if (_decodeCouponOrderId.contains(WxCouponOrderCVo.arg)) { | |||||
| String[] decodeids = _decodeCouponOrderId.split(WxCouponOrderCVo.arg); | |||||
| couponOrderIdStr = decodeids[0]; | |||||
| String expiredtimeStr = decodeids[1]; | |||||
| Date expiredtime = DateUtils.string2Date(expiredtimeStr).getTime(); | |||||
| if (expiredtime.before(new Date())) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"码已失效,请更新二维码后重试"); | |||||
| } | |||||
| } | } | ||||
| Long couponOrderId = 0L; | |||||
| try { | |||||
| couponOrderId = Long.valueOf(couponOrderIdStr); | |||||
| } catch (NumberFormatException e) { | |||||
| couponOrderId = 0L; | |||||
| logger.error("couponOrderId参数不正确: " + param.toString()); | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | |||||
| try { | |||||
| WxCouponOrder couponOrder = wxCouponOrderService.verifyByEquiment(couponOrderId, "1035", "1037", "闸机扫码核销"); | |||||
| return new ResultData(couponOrder); | |||||
| }catch(Exception e) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),e.getMessage()); | |||||
| } | |||||
| }catch(Exception e){ | }catch(Exception e){ | ||||
| logger.error("JinMaoController --dfhOrder",e); | logger.error("JinMaoController --dfhOrder",e); | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),e.getMessage()); | |||||
| } | } | ||||
| } | } | ||||
| @@ -30,7 +30,12 @@ public enum ErrorCode{ | |||||
| REPORT_TYPE_UNKNOWN(1014, "不支持的报表类型"), | REPORT_TYPE_UNKNOWN(1014, "不支持的报表类型"), | ||||
| SYS_MCH_NOT_FOUND(1015, "微信商户号未找到"), | SYS_MCH_NOT_FOUND(1015, "微信商户号未找到"), | ||||
| SYS_AUTH_ERROR(1016, "该用户没有权限访问"), | SYS_AUTH_ERROR(1016, "该用户没有权限访问"), | ||||
| /** | |||||
| * 系统配置 | |||||
| */ | |||||
| SYS_CONFIG_VIERFY_SECODES_UNSET(1030,"系统设置【核销过期时间】未配置"), | |||||
| SYS_CONFIG_DEFAULT_MERCHANT_B_USER_UNSET(1031,"系统配置【外部设备核销默认商户员工编号】未配置"), | |||||
| /** | /** | ||||
| * 菜单 | * 菜单 | ||||
| */ | */ | ||||
| @@ -3,4 +3,5 @@ package com.iformall.common; | |||||
| public class SysConfigConstant { | public class SysConfigConstant { | ||||
| public static final String vierfy_seconds_key="vierfySeconds"; | public static final String vierfy_seconds_key="vierfySeconds"; | ||||
| public static final String default_merchant_b_user = "defaultMerchantBUserId"; | |||||
| } | } | ||||
| @@ -8,6 +8,8 @@ import java.util.List; | |||||
| public interface SysConfigService { | public interface SysConfigService { | ||||
| PageInfo<SysConfig> listAsPage(SysConfig record, Integer pageIndex, Integer pageSize,TenantEntity tenantEntity); | |||||
| /** | /** | ||||
| * 根据实体查询列表 | * 根据实体查询列表 | ||||
| * | * | ||||
| @@ -57,6 +57,9 @@ public interface WxCouponOrderService { | |||||
| * @param bUser 核销人(登录用户) | * @param bUser 核销人(登录用户) | ||||
| */ | */ | ||||
| WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser, EnumCouponVerifyType couponVerifyType); | WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser, EnumCouponVerifyType couponVerifyType); | ||||
| WxCouponOrder verifyByEquiment(Long couponOrderId,String tenantId,String parentTenantId,String remark); | |||||
| /** | /** | ||||
| * 核销后发送消息 | * 核销后发送消息 | ||||
| @@ -13,6 +13,9 @@ import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.beans.factory.annotation.Qualifier; | import org.springframework.beans.factory.annotation.Qualifier; | ||||
| import org.springframework.data.redis.core.RedisTemplate; | import org.springframework.data.redis.core.RedisTemplate; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import com.github.pagehelper.PageHelper; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| @Service | @Service | ||||
| @@ -29,6 +32,25 @@ public class SysConfigServiceImpl implements SysConfigService { | |||||
| @Qualifier("objectCommonRedisTemplate") | @Qualifier("objectCommonRedisTemplate") | ||||
| RedisTemplate<String, Object> baseRedisTemplate; | RedisTemplate<String, Object> baseRedisTemplate; | ||||
| @Override | |||||
| public PageInfo<SysConfig> listAsPage(SysConfig record, Integer pageIndex, Integer pageSize,TenantEntity tenantEntity) { | |||||
| PageInfo<SysConfig> page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> sysConfigMapper.findList(record)); | |||||
| if (null != page && null != page.getList()) { | |||||
| for (SysConfig config : page.getList()) { | |||||
| SysConfigValue cvq = new SysConfigValue(); | |||||
| cvq.setConfigItemId(config.getId()); | |||||
| cvq.updateTenantInfo(tenantEntity); | |||||
| SysConfigValue configValue = sysConfigValueMapper.findByItemId(cvq); | |||||
| if (null != configValue) { | |||||
| config.setConfigItemValue(configValue.getConfigItemValue()); | |||||
| } | |||||
| } | |||||
| } | |||||
| return page; | |||||
| } | |||||
| @Override | @Override | ||||
| public List<SysConfig> getList(SysConfig record,TenantEntity tenantEntity) { | public List<SysConfig> getList(SysConfig record,TenantEntity tenantEntity) { | ||||
| List<SysConfig> list = sysConfigMapper.findList(record); | List<SysConfig> list = sysConfigMapper.findList(record); | ||||
| @@ -106,7 +128,5 @@ public class SysConfigServiceImpl implements SysConfigService { | |||||
| RedisCacheUtils.removeCache(baseRedisTemplate, String.format(cache_prex, tenantEntity.getTenantId(),config.getConfigItemKey())); | RedisCacheUtils.removeCache(baseRedisTemplate, String.format(cache_prex, tenantEntity.getTenantId(),config.getConfigItemKey())); | ||||
| } | } | ||||
| } | } | ||||
| @@ -12,6 +12,7 @@ import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.common.SysConfigConstant; | |||||
| import com.iformall.domain.dto.WxSharingOrderDto; | import com.iformall.domain.dto.WxSharingOrderDto; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| @@ -163,6 +164,13 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Autowired | @Autowired | ||||
| OrderFactory orderFactory; | OrderFactory orderFactory; | ||||
| @Autowired | |||||
| WxCUserBasicInfoService wxCUserBasicInfoService; | |||||
| @Autowired | |||||
| SysConfigService sysConfigService; | |||||
| @Autowired | |||||
| WxMerchantBUserService wxMerchantBUserService; | |||||
| private final SimpleDateFormat mydateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | private final SimpleDateFormat mydateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||||
| @@ -543,6 +551,83 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| couponOrder.setMerchantId(merchantId); | couponOrder.setMerchantId(merchantId); | ||||
| return couponOrder; | return couponOrder; | ||||
| } | } | ||||
| @Override | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| public WxCouponOrder verifyByEquiment(Long couponOrderId,String tenantId,String parentTenantId,String remark) { | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(tenantId); | |||||
| tenantEntity.setParentTenantId(parentTenantId); | |||||
| WxCouponOrderCVo wxCouponOrderCVo = this.detailCUserVo(String.valueOf(couponOrderId),tenantEntity); | |||||
| if (wxCouponOrderCVo == null) { | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| } | |||||
| WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCouponOrderCVo.getcUserId(),wxCouponOrderCVo.getFinalTenantId()); | |||||
| if (wxCUserBasicInfo != null && EnumCreditLockedStatus.CLOSE.getCode().equals(wxCUserBasicInfo.getStatus())) { | |||||
| throw new MallinkException(ErrorCode.MEMBER_IS_LOCKED); | |||||
| } | |||||
| Date now = new Date(); | |||||
| if (wxCouponOrderCVo.getValidType().equals(EnumCouponValidType.BETWEEN_TWO_TIME.getCode())){ | |||||
| // && !wxCouponOrderCVo.getType().equals(EnumCouponType.COUPON_PREORDER.getCode())) { | |||||
| if(wxCouponOrderCVo.getType().equals(EnumCouponType.COUPON_PREORDER.getCode())){ | |||||
| if (wxCouponOrderCVo.getPickStartDate().after(now)) { | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_EARLIER_THAN_VALIDDATE); | |||||
| } | |||||
| if (wxCouponOrderCVo.getPickEndDate().before(now)) { | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_LATER_THAN_VALIDDATE); | |||||
| } | |||||
| }else{ | |||||
| if (wxCouponOrderCVo.getValidStartDate().after(now)) { | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_EARLIER_THAN_VALIDDATE); | |||||
| } | |||||
| if (wxCouponOrderCVo.getValidEndDate().before(now)) { | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_LATER_THAN_VALIDDATE); | |||||
| } | |||||
| } | |||||
| } else { | |||||
| if (wxCouponOrderCVo.getExpiredTime().before(now)) { | |||||
| throw new MallinkException(ErrorCode.COUPON_IS_EXPIRED); | |||||
| } | |||||
| } | |||||
| WxCouponOrder wxCouponOrder = this.getById(couponOrderId,tenantEntity.getTenantId()); | |||||
| if (wxCouponOrder == null) { | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| } | |||||
| SysConfig sysConfig = sysConfigService.getByKey(SysConfigConstant.default_merchant_b_user, tenantEntity); | |||||
| if (null == sysConfig) { | |||||
| throw new MallinkException(ErrorCode.SYS_CONFIG_DEFAULT_MERCHANT_B_USER_UNSET); | |||||
| } | |||||
| WxMerchantBUser wxMerchantBUser = wxMerchantBUserService.getById(Long.parseLong(sysConfig.getConfigItemValue())); | |||||
| if (wxMerchantBUser == null) { | |||||
| throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "核销员ID不存在"); | |||||
| } | |||||
| WxCouponOrder couponOrder = null; | |||||
| try { | |||||
| wxCouponOrder.setVerifyRemark(remark); | |||||
| couponOrder = this.verify(wxCouponOrder, wxMerchantBUser, EnumCouponVerifyType.VERIFY_B); | |||||
| } catch (MallinkException e) { | |||||
| logger.error("核销异常: " ,e); | |||||
| throw new MallinkException(e.getErrorCode(), e.getMessage()); | |||||
| } catch (Exception e) { | |||||
| logger.error("核销异常: " ,e); | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), e.getMessage()); | |||||
| } | |||||
| if (couponOrder != null && couponOrder.getMerchantId() != null) { | |||||
| this.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); | |||||
| } | |||||
| return couponOrder; | |||||
| } | |||||
| /** | /** | ||||
| * B端核销卷增加成长值,积分 | * B端核销卷增加成长值,积分 | ||||
| @@ -41,8 +41,7 @@ import java.util.Map; | |||||
| public class HaiKangWeiShiUtil { | public class HaiKangWeiShiUtil { | ||||
| public static final String TOKEN_URL = "https://open.hikyun.com/artemis/oauth/token"; | public static final String TOKEN_URL = "https://open.hikyun.com/artemis/oauth/token"; | ||||
| public static final String CAR_STOP_INFO = "https://open.hikyun.com/api/pmsc/v1/tempCarInRecords/page"; | |||||
| public static final String GET_FEE = "https://open.hikyun.com/api/pmsc/v1/pay/getVehicleBill"; | |||||
| public static final String GET_FEE = "https://open.hikyun.com/api/pmsc/v1/pay/ quickGetVehicleBill"; | |||||
| public static final String COUPON_USE = "https://open.hikyun.com/api/pmsc/v1/coupon/addition"; | public static final String COUPON_USE = "https://open.hikyun.com/api/pmsc/v1/coupon/addition"; | ||||
| @@ -91,58 +90,16 @@ public class HaiKangWeiShiUtil { | |||||
| } | } | ||||
| /** | /** | ||||
| * 3.5.7 查询临时车停车信息 | |||||
| */ | |||||
| private JSONObject getCarStopInfo(WxPark wxPark,String carNumber,String token) { | |||||
| String vendroParams = wxPark.getVendorParams(); | |||||
| JSONObject vp = JSON.parseObject(vendroParams); | |||||
| ArrayList<NameValuePair> list = new ArrayList<NameValuePair>(); | |||||
| list.add(new BasicNameValuePair("pageNo", "1")); | |||||
| list.add(new BasicNameValuePair("pageSize", "1")); | |||||
| list.add(new BasicNameValuePair("parkId", wxPark.getParkId())); | |||||
| list.add(new BasicNameValuePair("plateNo", carNumber));// | |||||
| String carStopInfo = ProcBussiness(CAR_STOP_INFO, list, token); | |||||
| if (StringUtils.isBlank(carStopInfo)) { | |||||
| throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "haikang getCarStopInfo error. has no result"); | |||||
| } | |||||
| JSONObject carStopInfoResult = JSON.parseObject(carStopInfo); | |||||
| if (carStopInfoResult.getInteger("code") != 0 ) { | |||||
| String message = carStopInfoResult.getString("msg"); | |||||
| throw new MallinkException(carStopInfoResult.getInteger("code"), "haikang getCarStopInfo error."+message); | |||||
| } | |||||
| JSONObject carStopInfoAttribute = carStopInfoResult.getJSONObject("data"); | |||||
| if (null == carStopInfoAttribute) { | |||||
| throw new MallinkException(carStopInfoResult.getInteger("code"), "haikang getCarStopInfo error. no result"+carNumber); | |||||
| } | |||||
| JSONArray carStopInfoList = carStopInfoResult.getJSONArray("list"); | |||||
| if (null == carStopInfoList || carStopInfoList.size() <= 0 ) { | |||||
| throw new MallinkException(carStopInfoResult.getInteger("code"), "haikang getCarStopInfo error. no result"+carNumber); | |||||
| } | |||||
| return carStopInfoList.getJSONObject(0); | |||||
| } | |||||
| /** | |||||
| * 查询停车费 3.5.3 获取账单接口 | |||||
| * 查询停车费 3.5.5 快速获取账单接口 | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| public JSONObject getFee(WxPark wxPark,String carNumber,String token) { | public JSONObject getFee(WxPark wxPark,String carNumber,String token) { | ||||
| JSONObject carStopInfo = getCarStopInfo(wxPark,carNumber,token); | |||||
| String vendroParams = wxPark.getVendorParams(); | String vendroParams = wxPark.getVendorParams(); | ||||
| JSONObject vp = JSON.parseObject(vendroParams); | JSONObject vp = JSON.parseObject(vendroParams); | ||||
| ArrayList<NameValuePair> list = new ArrayList<NameValuePair>(); | ArrayList<NameValuePair> list = new ArrayList<NameValuePair>(); | ||||
| list.add(new BasicNameValuePair("chargeSource", "THIRD"));//商户编号 | list.add(new BasicNameValuePair("chargeSource", "THIRD"));//商户编号 | ||||
| Map vehicle = new HashMap(); | |||||
| vehicle.put("parkId", wxPark.getParkId()); | |||||
| vehicle.put("plateNo", carNumber); | |||||
| vehicle.put("vehicleType", 1); | |||||
| vehicle.put("plateType", 1); | |||||
| vehicle.put("groupId", 1); | |||||
| vehicle.put("freeTime", new Object[] {}); | |||||
| list.add(new BasicNameValuePair("vehicle", "["+JSON.toJSONString(vehicle)+"]") );//商户编号 | |||||
| list.add(new BasicNameValuePair("parkId", wxPark.getParkId())); | |||||
| list.add(new BasicNameValuePair("plateNo", carNumber)); | |||||
| String retCode= ProcBussiness(GET_FEE, list, token); | String retCode= ProcBussiness(GET_FEE, list, token); | ||||
| if (StringUtils.isBlank(retCode)) { | if (StringUtils.isBlank(retCode)) { | ||||
| throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "haikang getFee error. has no result"); | throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "haikang getFee error. has no result"); | ||||