| @@ -0,0 +1,242 @@ | |||
| package com.iformall.controller.market; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.SystemControllerLog; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.WxCardSpendVo; | |||
| import com.iformall.domain.vo.WxCardVo; | |||
| import com.iformall.enums.EnumMerchantSubsidySource; | |||
| import com.iformall.enums.EnumMerchantSubsidyType; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.WxCardInfoService; | |||
| import com.iformall.service.WxCardSpendService; | |||
| import com.iformall.service.WxMerchantService; | |||
| import com.iformall.service.WxOrderService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu wuguoqiang@iformall.com | |||
| */ | |||
| @RestController | |||
| @RequestMapping("cardInfo") | |||
| @Api(description = "储值卡") | |||
| public class WxCardInfoController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| WxMerchantService wxMerchantService; | |||
| @Autowired | |||
| WxOrderService wxOrderService; | |||
| @Autowired | |||
| WxCardInfoService wxCardInfoService; | |||
| @Autowired | |||
| WxCardSpendService wxCardSpendService; | |||
| @ApiOperation("批次消费卡的卡列表") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| @SystemControllerLog(description = "储值卡支付-售卡记录列表") | |||
| public ResultData cardOrderList(@ModelAttribute WxCardVo wxCardVo, Integer pageNum, Integer pageSize) { | |||
| String ipStr = getIpAddr(); | |||
| if (wxCardVo == null) {wxCardVo = new WxCardVo();} | |||
| else { | |||
| if(StringUtils.isBlank(wxCardVo.getOuPhone())) { | |||
| wxCardVo.setOuPhone(null); | |||
| } | |||
| } | |||
| wxCardVo.updateTenantInfo(getTenantInfo()); | |||
| if(StringUtils.isNotBlank(wxCardVo.getStatusStr())) { | |||
| String [] statusAttr = wxCardVo.getStatusStr().split(","); | |||
| List<Integer> tmpList = new ArrayList<Integer>(); | |||
| for(String status: statusAttr) { | |||
| tmpList.add(Integer.valueOf(status)); | |||
| } | |||
| if(!tmpList.isEmpty()) { | |||
| wxCardVo.setStatusS(tmpList); | |||
| } | |||
| } | |||
| final PageInfo<WxCardVo> page = wxCardInfoService.listAsPage(wxCardVo, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiOperation("C端扫B端储值卡交易流水(消费记录 + 补贴)列表接口") | |||
| @GetMapping("cardSpendlist") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| @SystemControllerLog(description = "储值卡支付-储值卡交易流水") | |||
| public ResultData cardSpendlist(@ModelAttribute WxCardSpendVo wxCardSpendVo, Integer pageNum, Integer pageSize) { | |||
| String ipStr = getIpAddr(); | |||
| logger.info("cardPay/cardSpendlist: " + ipStr); | |||
| if (wxCardSpendVo == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件为空"); | |||
| } | |||
| wxCardSpendVo.updateTenantInfo(getTenantInfo()); | |||
| if(StringUtils.isNotBlank(wxCardSpendVo.getPayStatusStr())) { | |||
| String [] statusAttr = wxCardSpendVo.getPayStatusStr().split(","); | |||
| List<Integer> tmpList = new ArrayList<Integer>(); | |||
| for(String status: statusAttr) { | |||
| tmpList.add(Integer.valueOf(status)); | |||
| } | |||
| if(!tmpList.isEmpty()) { | |||
| wxCardSpendVo.setPayStatusS(tmpList); | |||
| } | |||
| } | |||
| List<Integer> sources = new ArrayList<Integer>(); | |||
| sources.add(EnumMerchantSubsidySource.CARD.getCode()); | |||
| wxCardSpendVo.setSources(sources); | |||
| wxCardSpendVo.setCardSpendListShow(1); | |||
| final PageInfo<WxCardSpendVo> page = wxCardSpendService.listAsPage(wxCardSpendVo, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiOperation("C端扫B端储值卡交易流水SUM") | |||
| @GetMapping("sum") | |||
| @SystemControllerLog(description = "储值卡支付-储值卡交易流水SUM") | |||
| public ResultData sumCardSpendList(@ModelAttribute WxCardSpendVo wxCardSpend) { | |||
| String ipStr = getIpAddr(); | |||
| logger.info("cardPay/sumCardSpendList: " + ipStr + " :" + wxCardSpend.toString()); | |||
| if (wxCardSpend == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件为空"); | |||
| } | |||
| wxCardSpend.updateTenantInfo(getTenantInfo()); | |||
| List<Integer> sources = new ArrayList<Integer>(); | |||
| sources.add(EnumMerchantSubsidySource.CARD.getCode()); | |||
| wxCardSpend.setSources(sources); | |||
| wxCardSpend.setCardSpendListShow(1); | |||
| final List<Map<String, Object>> mapList = wxCardSpendService.sumCardSpendForMerchant(wxCardSpend); | |||
| return new ResultData(mapList); | |||
| } | |||
| @ApiOperation("交易流水导出") | |||
| @GetMapping("/exportData") | |||
| @SystemControllerLog(description = "储值卡支付-储值卡交易流水导出") | |||
| public void exportData(@ModelAttribute WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) { | |||
| logger.info("[" + getIpAddr() + "] cardPay/exportData"); | |||
| if (wxCardSpendVo == null) { | |||
| throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件为空"); | |||
| } | |||
| wxCardSpendVo.updateTenantInfo(getTenantInfo()); | |||
| if(StringUtils.isNotBlank(wxCardSpendVo.getPayStatusStr())) { | |||
| String [] statusAttr = wxCardSpendVo.getPayStatusStr().split(","); | |||
| List<Integer> tmpList = new ArrayList<Integer>(); | |||
| for(String status: statusAttr) { | |||
| tmpList.add(Integer.valueOf(status)); | |||
| } | |||
| if(!tmpList.isEmpty()) { | |||
| wxCardSpendVo.setPayStatusS(tmpList); | |||
| } | |||
| } | |||
| wxCardSpendService.exportData(wxCardSpendVo, request, response); | |||
| } | |||
| @ApiOperation("更新卡消费支付状态") | |||
| @PostMapping("/updatePayStatus") | |||
| @SystemControllerLog(description = "储值卡支付-更新卡消费支付状态") | |||
| public ResultData update(@RequestBody WxCardSpend wxCardSpend) { | |||
| String ipStr = getIpAddr(); | |||
| logger.info("cardPay/updatePayStatus: " + ipStr + " :" + wxCardSpend.toString()); | |||
| if (wxCardSpend == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件为空"); | |||
| } | |||
| wxCardSpend.updateTenantInfo(getTenantInfo()); | |||
| wxCardSpendService.update(wxCardSpend); | |||
| return new ResultData(); | |||
| } | |||
| @ApiOperation("卡完结") | |||
| @PostMapping("/finishCard") | |||
| @SystemControllerLog(description = "储值卡支付-卡完结") | |||
| public ResultData finishCard(@RequestBody WxCardInfo wxCardInfo) { | |||
| String ipStr = getIpAddr(); | |||
| logger.info("cardPay/finishCard: " + ipStr + " :" + wxCardInfo.toString()); | |||
| if (wxCardInfo == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件为空"); | |||
| } | |||
| if (wxCardInfo.getId() == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件ID为空"); | |||
| } | |||
| wxCardInfo.updateTenantInfo(getTenantInfo()); | |||
| int remainShareAmount = wxCardSpendService.finishCard(wxCardInfo); | |||
| return new ResultData(remainShareAmount); | |||
| } | |||
| @ApiOperation("卡订单-导出数据") | |||
| @GetMapping("/exportCardOrder") | |||
| @SystemControllerLog(description = "卡订单-导出数据") | |||
| public void exportCardOrder(@ModelAttribute WxCardVo wxCardVo, HttpServletRequest request, HttpServletResponse response) { | |||
| logger.info("[" + getIpAddr() + "] cardPay/exportCardOrder"); | |||
| if (wxCardVo == null) { | |||
| wxCardVo = new WxCardVo(); | |||
| } else { | |||
| if (StringUtils.isBlank(wxCardVo.getOuPhone())) { | |||
| wxCardVo.setOuPhone(null); | |||
| } | |||
| } | |||
| wxCardVo.updateTenantInfo(getTenantInfo()); | |||
| if (StringUtils.isNotBlank(wxCardVo.getStatusStr())) { | |||
| String[] statusAttr = wxCardVo.getStatusStr().split(","); | |||
| List<Integer> tmpList = new ArrayList<Integer>(); | |||
| for (String status : statusAttr) { | |||
| tmpList.add(Integer.valueOf(status)); | |||
| } | |||
| if (!tmpList.isEmpty()) { | |||
| wxCardVo.setStatusS(tmpList); | |||
| } | |||
| } | |||
| wxCardInfoService.exportData(wxCardVo, request, response); | |||
| } | |||
| @ApiOperation("卡消费订单-导出数据") | |||
| @GetMapping("exportCardSpend") | |||
| @SystemControllerLog(description = "卡消费订单-导出数据") | |||
| public void exportCardSpend(@ModelAttribute WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) { | |||
| String ipStr = getIpAddr(); | |||
| logger.info("cardPay/exportCardSpend: " + ipStr); | |||
| if (wxCardSpendVo == null) { | |||
| wxCardSpendVo = new WxCardSpendVo(); | |||
| } | |||
| wxCardSpendVo.updateTenantInfo(getTenantInfo()); | |||
| if (StringUtils.isNotBlank(wxCardSpendVo.getPayStatusStr())) { | |||
| String[] statusAttr = wxCardSpendVo.getPayStatusStr().split(","); | |||
| List<Integer> tmpList = new ArrayList<Integer>(); | |||
| for (String status : statusAttr) { | |||
| tmpList.add(Integer.valueOf(status)); | |||
| } | |||
| if (!tmpList.isEmpty()) { | |||
| wxCardSpendVo.setPayStatusS(tmpList); | |||
| } | |||
| } | |||
| List<Integer> sources = new ArrayList<Integer>(); | |||
| sources.add(EnumMerchantSubsidySource.CARD.getCode()); | |||
| wxCardSpendVo.setSources(sources); | |||
| wxCardSpendVo.setCardSpendListShow(1); | |||
| wxCardSpendService.exportData(wxCardSpendVo, request, response); | |||
| } | |||
| } | |||
| @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.SystemControllerLog; | |||
| import com.iformall.annotation.TenantIgnore; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.WxAppinfo; | |||
| @@ -29,6 +30,9 @@ import org.springframework.web.bind.annotation.*; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.io.IOException; | |||
| import java.io.PrintWriter; | |||
| import java.util.Map; | |||
| @RestController | |||
| @@ -59,6 +63,11 @@ public class WxCouponOrderController extends BaseController { | |||
| wxCouponOrder.getMerchantName().isEmpty()) { | |||
| wxCouponOrder.setMerchantName(null); | |||
| } | |||
| if (null == wxCouponOrder.getStartDate() && null == wxCouponOrder.getEndDate() | |||
| && null == wxCouponOrder.getVerifyStartDate() && null == wxCouponOrder.getVerifyEndDate()) { | |||
| return new ResultData(Result.ERROR,"交易时间和核销时间请至少选择一个"); | |||
| } | |||
| return wxCouponOrderService.listAdminAsPage(wxCouponOrder, pageNum, pageSize); | |||
| } | |||
| @@ -142,6 +151,18 @@ public class WxCouponOrderController extends BaseController { | |||
| wxCouponOrder.getMerchantName().isEmpty()) { | |||
| wxCouponOrder.setMerchantName(null); | |||
| } | |||
| if (null == wxCouponOrder.getStartDate() && null == wxCouponOrder.getEndDate() | |||
| && null == wxCouponOrder.getVerifyStartDate() && null == wxCouponOrder.getVerifyEndDate()) { | |||
| PrintWriter out; | |||
| try { | |||
| response.setContentType("text/html;charset=utf-8"); | |||
| out = response.getWriter(); | |||
| out.print("<div><font color = \"red\">交易时间和核销时间请至少选择一个</font></div>"); | |||
| out.close(); | |||
| } catch (IOException e) { | |||
| logger.error(" alipayCallback writeResponse error.",e); | |||
| } | |||
| } | |||
| wxCouponOrderService.exportData(false,wxCouponOrder, request, response); | |||
| } | |||
| @@ -38,7 +38,7 @@ import java.util.Map; | |||
| */ | |||
| @RestController | |||
| @RequestMapping("wxProfitPayment") | |||
| public class WxProfitPaymentControllerController extends BaseController { | |||
| public class WxProfitPaymentController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| @@ -19,7 +19,8 @@ CREATE TABLE `wx_car_pay_order` ( | |||
| `car_vendor` int(1) NOT NULL COMMENT '车场类型EnumCarVendor', | |||
| PRIMARY KEY (`id`), | |||
| UNIQUE KEY `id_UNIQUE` (`id`), | |||
| UNIQUE KEY `pay_order_no` (`park_order_no`) | |||
| UNIQUE KEY `pay_order_no` (`park_order_no`), | |||
| index KEY `c_user_id`(`c_user_id`) | |||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='支付单表'; | |||
| CREATE TABLE wx_car_pay_order_0 LIKE wx_car_pay_order; | |||
| @@ -1,4 +1,4 @@ | |||
| ALTER TABLE `mallink`.`tt_goods_category` | |||
| MODIFY COLUMN `service_fee` int(11) DEFAULT NULL COMMENT ''抖音软件服务费率(万分之)'' AFTER `is_leaf`, | |||
| ADD COLUMN `software_fee` int(11) COMMENT ''软件服务费率(万分位)'' AFTER `service_fee`; | |||
| MODIFY COLUMN `service_fee` int(11) DEFAULT NULL COMMENT '抖音软件服务费率(万分之)' AFTER `is_leaf`, | |||
| ADD COLUMN `software_fee` int(11) COMMENT '软件服务费率(万分位)' AFTER `service_fee`; | |||
| @@ -286,7 +286,7 @@ public class WxCouponController extends BaseController { | |||
| sb.append(coupon.getRemainInventory()); | |||
| } | |||
| sb.append(",\"inventory\":").append(coupon.getInventory()).append(",\"price\":").append(coupon.getPrice()).append(",\"creditPrice\":").append(coupon.getCreditPrice()); | |||
| if (null != config && config.getConfigItemValue().equals("1")) { | |||
| if (null != config && "1".equals(config.getConfigItemValue())) { | |||
| sb.append(",\"selledCount\":").append(coupon.getInventory()-coupon.getRemainInventory()); | |||
| } | |||
| sb.append("}"); | |||
| @@ -86,7 +86,7 @@ public class CarPaidNotifySchedule { | |||
| WxCarPayOrder _po = orderList.get(i); | |||
| //通知车场支付成功 | |||
| try { | |||
| String payOrderNo = ParkCreatePayOrder.getUniqueParkOrderNumber(_po.getParkOrderNo(), EnumCarVendor.getEnum(_po.getCarVendor())); | |||
| //String payOrderNo = ParkCreatePayOrder.getUniqueParkOrderNumber(_po.getParkOrderNo(), EnumCarVendor.getEnum(_po.getCarVendor())); | |||
| parkFactory.getParkService(_po.getCarVendor()).notifyPaid(wxPark,new ParkNotifyPaid(_po.getTenantId(),_po.getParkOrderNo(), _po.getPayAmount(), _po.getPayTime())); | |||
| payOrder.setParkNotify(EnumYesOrNo.YES.getCode()); | |||
| payOrder.setUpdateTime(new Date()); | |||
| @@ -357,7 +357,7 @@ public enum ErrorCode{ | |||
| REFUND_NOT_ALLOW(12017, "退款订单不允许退款"), | |||
| APP_ID_NOT_ENABLE(12019, "小程序未启用"), | |||
| APP_ID_NOT_FOUND(12020, "APPID没找到"), | |||
| APP_ID_NOT_FOUND(12020, "未找到可用的小程序"), | |||
| MCH_INFO_NOT_FOUND(12021, "微信商户平台信息没找到"), | |||
| MCH_INFO_NOT_EQUAL(12022, "微信商户平台信息不对应"), | |||
| API_KEY_NOT_FOUND(12023, "支付密钥未配置"), | |||
| @@ -95,7 +95,7 @@ public class WxCampaign extends TenantEntity { | |||
| if(type.equals(EnumCampaignType.PAGEPATH.getCode())) { | |||
| return pagePath; | |||
| } | |||
| return Constant.mainPageUrl + "?type=bd&bt="+type+"&id="+id; | |||
| return Constant.mainPageUrl + "?type=bd&bt="+type+"&id="+id+"&tenantId="+tenantId; | |||
| } | |||
| public String getWeappScene() { | |||
| @@ -104,7 +104,7 @@ public class WxCampaign extends TenantEntity { | |||
| if(type.equals(EnumCampaignType.PAGEPATH.getCode())) { | |||
| return pageScene; | |||
| } | |||
| return "t:bd:" + type + ":" +id; | |||
| return "t:bd:" + type + ":" + id + ":" + tenantId; | |||
| } | |||
| } | |||
| @@ -304,24 +304,24 @@ public class WxMerchant extends TenantEntity { | |||
| public String getWeappPath() { | |||
| if(id == null) | |||
| return Constant.mainPageUrl; | |||
| return Constant.mainPageUrl + "?type=md&id=" + id; | |||
| return Constant.mainPageUrl + "?type=md&id=" + id + "&tenantId=" + tenantId; | |||
| } | |||
| public String getTtparams(){ | |||
| return Constant.mainPageUrl; | |||
| } | |||
| public String getTtPath(){ | |||
| JsonObject object = new JsonObject(); | |||
| object.addProperty("type","md"); | |||
| object.addProperty("id",id); | |||
| return object.toString(); | |||
| } | |||
| // public String getTtparams(){ | |||
| // return Constant.mainPageUrl; | |||
| // } | |||
| // | |||
| // public String getTtPath(){ | |||
| // JsonObject object = new JsonObject(); | |||
| // object.addProperty("type","md"); | |||
| // object.addProperty("id",id); | |||
| // return object.toString(); | |||
| // } | |||
| public String getWeappScene() { | |||
| if(id == null) | |||
| return ""; | |||
| return "t:md:" + id; | |||
| return "t:md:" + id + ":" + tenantId; | |||
| } | |||
| @io.swagger.annotations.ApiModelProperty(value = "积分锁定0正常1锁定", name = "creditLocked") | |||
| @@ -1241,17 +1241,22 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| private void handleWxCouponOrderBVoQueryParam(WxCouponOrderBVo wxCouponOrder) { | |||
| if(null == wxCouponOrder.getStartDate()) { | |||
| wxCouponOrder.setStartDate(DateUtils.getFirstDayForCurrMonth()); | |||
| // if(null == wxCouponOrder.getStartDate()) { | |||
| // wxCouponOrder.setStartDate(DateUtils.getFirstDayForCurrMonth()); | |||
| // } | |||
| if (null != wxCouponOrder.getStartDate()) { | |||
| wxCouponOrder.setStartDateTimes(wxCouponOrder.getStartDate().getTime()); | |||
| wxCouponOrder.setStartDate(null); | |||
| } | |||
| wxCouponOrder.setStartDateTimes(wxCouponOrder.getStartDate().getTime()); | |||
| wxCouponOrder.setStartDate(null); | |||
| if(null == wxCouponOrder.getEndDate()) { | |||
| wxCouponOrder.setEndDate(DateUtils.getLastDayForMonth(new Date())); | |||
| // if(null == wxCouponOrder.getEndDate()) { | |||
| // wxCouponOrder.setEndDate(DateUtils.getLastDayForMonth(new Date())); | |||
| // } | |||
| if (null != wxCouponOrder.getEndDate()) { | |||
| wxCouponOrder.setEndDateTimes(wxCouponOrder.getEndDate().getTime()); | |||
| wxCouponOrder.setEndDate(null); | |||
| } | |||
| wxCouponOrder.setEndDateTimes(wxCouponOrder.getEndDate().getTime()); | |||
| wxCouponOrder.setEndDate(null); | |||
| String cuserPhone = StringUtils.trimToNull(wxCouponOrder.getcuserPhone()); | |||
| if (null != cuserPhone) { | |||
| @@ -955,7 +955,12 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||
| }else { | |||
| //置空,删除此收款账号 | |||
| if (StringUtils.isBlank(wxMerchant.getAccount())){ | |||
| return wxProfitPaymentReceiverService.deleteReceiver(receiver, receiver.getId()); | |||
| ResultData data = wxProfitPaymentReceiverService.deleteReceiver(receiver, receiver.getId()); | |||
| String key = Constant.paymentReceicerPrev + wxMerchant.getTenantId() | |||
| + ":" + EnumAppPlat.WX.getCode() | |||
| + ":" + wxMerchant.getId(); | |||
| RedisCacheUtils.removeCache(redisTemplate, key); | |||
| return data; | |||
| } | |||
| } | |||
| StringBuffer psb = new StringBuffer("{\"").append(Constant.paymentReceiverParamIsv).append("\":").append(wxMerchant.getIsIsv()).append(""); | |||
| @@ -43,7 +43,8 @@ import com.iformall.utils.RedisLock; | |||
| /** | |||
| * 福特停车 | |||
| * | |||
| * http://hsh.appykt.com/ | |||
| * 1287230005_888888 123456 | |||
| */ | |||
| @Service | |||
| public class FuteParkService extends BaseParkService implements ParkAdapterService { | |||
| @@ -51,10 +51,10 @@ import java.util.TimeZone; | |||
| @Slf4j | |||
| public class FuteUtil { | |||
| public static final String QUERY_PRICE = "http://p.appykt.com/zld/parkapi/query_price"; | |||
| public static final String COUPON_CREATE = "http://p.appykt.com/zld/createTicketByApi"; | |||
| public static final String COUPON_USE = "http://p.appykt.com/zld/useTicket"; | |||
| public static final String NOTIFY_PAID = "http://p.appykt.com/zld/parkapi/pay_notify"; | |||
| public static final String QUERY_PRICE = "http://s.appykt.com/zld/parkapi/query_price"; | |||
| public static final String COUPON_CREATE = "http://s.appykt.com/zld/createTicketByApi"; | |||
| public static final String COUPON_USE = "http://s.appykt.com/zld/useTicket"; | |||
| public static final String NOTIFY_PAID = "http://s.appykt.com/zld/parkapi/pay_notify"; | |||
| /** | |||
| * @description UTC时间转化为本地时间 | |||