From 5510edce9f3a62ad53a09589b7facdcb35df6183 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 11 Nov 2022 19:00:48 +0800 Subject: [PATCH] =?UTF-8?q?//=E5=BE=AE=E4=BF=A1=E6=97=B6=E9=97=B4=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/WxBusinessOrderController.java | 27 +++++------------ .../callback/WxMemberCardController.java | 29 ++++--------------- .../WxBusinessCircleOrderServiceImpl.java | 20 ++++--------- .../java/com/iformall/utils/DateUtils.java | 26 +++++++++++++++++ 4 files changed, 44 insertions(+), 58 deletions(-) diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java index f354ba3ed..3b3153d86 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java @@ -14,6 +14,7 @@ import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.pay.WxPayConstant; import com.iformall.service.*; +import com.iformall.utils.DateUtils; import com.iformall.utils.MaUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -26,11 +27,8 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; -import java.util.Locale; import java.util.Map; @RestController @@ -39,8 +37,6 @@ public class WxBusinessOrderController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD'T'HH:mm:ssXXX"); - @Autowired WxMallService wxMallService; @@ -213,7 +209,7 @@ public class WxBusinessOrderController extends BaseController { WxBusinessCircleOrder wxBusinessCircleOrder = new WxBusinessCircleOrder(); wxBusinessCircleOrder.updateTenantInfo(tenantEntity); wxBusinessCircleOrder.setNoticeId(notifyData.getId()); - wxBusinessCircleOrder.setNoticeCreateTime(sdf.parse(notifyData.getCreateTime())); + wxBusinessCircleOrder.setNoticeCreateTime(DateUtils.rfc3339Formatter(notifyData.getCreateTime())); wxBusinessCircleOrder.setNoticeEventType(notifyData.getEventType()); wxBusinessCircleOrder.setSummary(notifyData.getSummary()); @@ -228,7 +224,7 @@ public class WxBusinessOrderController extends BaseController { wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); wxBusinessCircleOrder.setAppid(result.getAppid()); wxBusinessCircleOrder.setOpenid(result.getOpenid()); - wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getTimeEnd())); + wxBusinessCircleOrder.setTimeEnd(DateUtils.rfc3339Formatter(result.getTimeEnd())); wxBusinessCircleOrder.setAmount(result.getAmount()); wxBusinessCircleOrder.setPayAmount(result.getAmount()); wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); @@ -248,7 +244,7 @@ public class WxBusinessOrderController extends BaseController { wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); wxBusinessCircleOrder.setAppid(result.getAppid()); wxBusinessCircleOrder.setOpenid(result.getOpenid()); - wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getRefundTime())); + wxBusinessCircleOrder.setTimeEnd(DateUtils.rfc3339Formatter(result.getRefundTime())); wxBusinessCircleOrder.setAmount(result.getPayAmount()); wxBusinessCircleOrder.setPayAmount(result.getPayAmount()); wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); @@ -268,11 +264,6 @@ public class WxBusinessOrderController extends BaseController { logger.error("微信商圈通知---"+e.getCustomErrorMsg()); resultMap.put("code","FAIL"); return resultMap; - } catch (ParseException e) { - e.printStackTrace(); - logger.error("微信商圈通知---时间转换异常"); - resultMap.put("code","FAIL"); - return resultMap; } catch(MallinkException e){ logger.error("微信商圈通知---"+e.getMessage()); resultMap.put("code","FAIL"); @@ -349,7 +340,7 @@ public class WxBusinessOrderController extends BaseController { // WxBusinessCircleOrder wxBusinessCircleOrder = new WxBusinessCircleOrder(); // wxBusinessCircleOrder.updateTenantInfo(tenantEntity); // wxBusinessCircleOrder.setNoticeId(notifyData.getId()); -// wxBusinessCircleOrder.setNoticeCreateTime(sdf.parse(notifyData.getCreateTime())); +// wxBusinessCircleOrder.setNoticeCreateTime(DateUtils.rfc3339Formatter(notifyData.getCreateTime())); // wxBusinessCircleOrder.setNoticeEventType(notifyData.getEventType()); // wxBusinessCircleOrder.setSummary(notifyData.getSummary()); // @@ -364,7 +355,7 @@ public class WxBusinessOrderController extends BaseController { // wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); // wxBusinessCircleOrder.setAppid(result.getAppid()); // wxBusinessCircleOrder.setOpenid(result.getOpenid()); -// wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getTimeEnd())); +// wxBusinessCircleOrder.setTimeEnd(DateUtils.rfc3339Formatter(result.getTimeEnd())); // wxBusinessCircleOrder.setAmount(result.getAmount()); // wxBusinessCircleOrder.setPayAmount(result.getAmount()); // wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); @@ -382,7 +373,7 @@ public class WxBusinessOrderController extends BaseController { // wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); // wxBusinessCircleOrder.setAppid(result.getAppid()); // wxBusinessCircleOrder.setOpenid(result.getOpenid()); -// wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getRefundTime())); +// wxBusinessCircleOrder.setTimeEnd(DateUtils.rfc3339Formatter(result.getRefundTime())); // wxBusinessCircleOrder.setAmount(result.getPayAmount()); // wxBusinessCircleOrder.setPayAmount(result.getPayAmount()); // wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); @@ -397,10 +388,6 @@ public class WxBusinessOrderController extends BaseController { // e.printStackTrace(); // logger.error("微信商圈通知---"+e.getCustomErrorMsg()); // -// } catch (ParseException e) { -// e.printStackTrace(); -// logger.error("微信商圈通知---时间转换异常"); -// // } catch(MallinkException e){ // logger.error("微信商圈通知---"+e.getMessage()); // diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java index 87805337e..960355cd5 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java @@ -1,8 +1,5 @@ package com.iformall.controller.callback; -import com.github.binarywang.wxpay.bean.businesscircle.BusinessCircleNotifyData; -import com.github.binarywang.wxpay.bean.businesscircle.PaidResult; -import com.github.binarywang.wxpay.bean.businesscircle.RefundResult; import com.github.binarywang.wxpay.bean.ecommerce.SignatureHeader; import com.github.binarywang.wxpay.bean.membercard.MemberCardActivateResult; import com.github.binarywang.wxpay.bean.membercard.MemberCardNotifyData; @@ -10,7 +7,6 @@ import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.service.WxPayService; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxBusinessCircleOrder; import com.iformall.domain.po.WxMemberCard; import com.iformall.domain.po.WxPayAccount; import com.iformall.domain.po.base.TenantEntity; @@ -20,6 +16,7 @@ import com.iformall.enums.EnumMemberCardStatus; import com.iformall.exception.MallinkException; import com.iformall.pay.WxPayConstant; import com.iformall.service.*; +import com.iformall.utils.DateUtils; import com.iformall.utils.MaUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -32,10 +29,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.HashMap; -import java.util.Locale; import java.util.Map; @RestController @@ -44,8 +38,6 @@ public class WxMemberCardController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD'T'HH:mm:ssXXX"); - @Autowired WxMallService wxMallService; @@ -123,7 +115,7 @@ public class WxMemberCardController extends BaseController { memberCard.setUnionId(result.getUnionid()); if(WxPayConstant.MEMBER_CARD_ACTIVATE.equals(result.getEventType())){ memberCard.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); - memberCard.setCreateDate(sdf.parse(result.getEventTime())); + memberCard.setCreateDate(DateUtils.rfc3339Formatter(result.getEventTime())); memberCard.setActivateScene(EnumMemberCardActivateScene.getEnum(result.getActivateScene()).getCode()); // memberCard.setOuterStr(result.getOuterStr()); wxMemberCardService.saveorupdateByCode(memberCard); @@ -135,7 +127,7 @@ public class WxMemberCardController extends BaseController { resultMap.put("code","SUCCESS"); return resultMap; }else if(WxPayConstant.USER_DELETE_MEMBERCARD.equals(result.getEventType())){ - memberCard.setUpdateDate(sdf.parse(result.getEventTime())); + memberCard.setUpdateDate(DateUtils.rfc3339Formatter(result.getEventTime())); memberCard.setUserCardStatus(EnumMemberCardStatus.DELETE.getCode()); wxMemberCardService.delUserCardStatusByCode(memberCard); @@ -155,11 +147,6 @@ public class WxMemberCardController extends BaseController { logger.error("微信会员卡通知---"+e.getCustomErrorMsg()); resultMap.put("code","FAIL"); return resultMap; - } catch (ParseException e) { - e.printStackTrace(); - logger.error("微信会员卡通知---时间转换异常"); - resultMap.put("code","FAIL"); - return resultMap; } catch(MallinkException e){ logger.error("微信会员卡通知---"+e.getMessage()); resultMap.put("code","FAIL"); @@ -236,7 +223,7 @@ public class WxMemberCardController extends BaseController { // WxBusinessCircleOrder wxBusinessCircleOrder = new WxBusinessCircleOrder(); // wxBusinessCircleOrder.updateTenantInfo(tenantEntity); // wxBusinessCircleOrder.setNoticeId(notifyData.getId()); -// wxBusinessCircleOrder.setNoticeCreateTime(sdf.parse(notifyData.getCreateTime())); +// wxBusinessCircleOrder.setNoticeCreateTime(DateUtils.rfc3339Formatter(notifyData.getCreateTime())); // wxBusinessCircleOrder.setNoticeEventType(notifyData.getEventType()); // wxBusinessCircleOrder.setSummary(notifyData.getSummary()); // @@ -251,7 +238,7 @@ public class WxMemberCardController extends BaseController { // wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); // wxBusinessCircleOrder.setAppid(result.getAppid()); // wxBusinessCircleOrder.setOpenid(result.getOpenid()); -// wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getTimeEnd())); +// wxBusinessCircleOrder.setTimeEnd(DateUtils.rfc3339Formatter(result.getTimeEnd())); // wxBusinessCircleOrder.setAmount(result.getAmount()); // wxBusinessCircleOrder.setPayAmount(result.getAmount()); // wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); @@ -269,7 +256,7 @@ public class WxMemberCardController extends BaseController { // wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); // wxBusinessCircleOrder.setAppid(result.getAppid()); // wxBusinessCircleOrder.setOpenid(result.getOpenid()); -// wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getRefundTime())); +// wxBusinessCircleOrder.setTimeEnd(DateUtils.rfc3339Formatter(result.getRefundTime())); // wxBusinessCircleOrder.setAmount(result.getPayAmount()); // wxBusinessCircleOrder.setPayAmount(result.getPayAmount()); // wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); @@ -284,10 +271,6 @@ public class WxMemberCardController extends BaseController { // e.printStackTrace(); // logger.error("微信商圈通知---"+e.getCustomErrorMsg()); // -// } catch (ParseException e) { -// e.printStackTrace(); -// logger.error("微信商圈通知---时间转换异常"); -// // } catch(MallinkException e){ // logger.error("微信商圈通知---"+e.getMessage()); // diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java index a8eeb3c07..b5ff15c67 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java @@ -13,9 +13,7 @@ import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; -import com.iformall.domain.po.msg.AfterAddCreditMsg; import com.iformall.domain.po.msg.AfterBusinessCreditMsg; -import com.iformall.domain.po.msg.AfterCarInOutMsg; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBusinessCircleOrderMapper; @@ -35,19 +33,14 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; -import java.util.Locale; @Service public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD'T'HH:mm:ssXXX"); - private final String WX_CIRCLE_KEY = "CIRCLE:WX:"; @Autowired @@ -412,11 +405,11 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe request.setEarnPoints(true); request.setIncreasedPoints(record.getIncreasedPoints()); - request.setPointsUpdateTime(sdf.format(record.getPointsUpdateTime())); + request.setPointsUpdateTime(DateUtils.toRfc3339Str(record.getPointsUpdateTime())); }else{ request.setEarnPoints(false); request.setIncreasedPoints(0); - request.setPointsUpdateTime(sdf.format(new Date())); + request.setPointsUpdateTime(DateUtils.toRfc3339Str(new Date())); request.setNoPointsRemarks("该订单不参与积分活动"); } try { @@ -484,17 +477,14 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe updCuser.updateTenantInfo(tenantEntity); updCuser.setOpenId(authorizations.getOpenid()); updCuser.setAuthorizeState(authorizeState.getCode()); - updCuser.setAuthorizeTime(sdf.parse(authorizations.getAuthorizeTime())); - updCuser.setDeauthorizeTime(sdf.parse(authorizations.getDeauthorizeTime())); + updCuser.setAuthorizeTime(DateUtils.rfc3339Formatter(authorizations.getAuthorizeTime())); + updCuser.setDeauthorizeTime(DateUtils.rfc3339Formatter(authorizations.getDeauthorizeTime())); wxCUserService.updateAuthorizeStateByOpenId(updCuser); } return new ResultData(authorizeState); } catch (WxPayException e) { e.printStackTrace(); return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); - } catch (ParseException e) { - e.printStackTrace(); - return new ResultData(ErrorCode.SYS_CLASSCAST_ERROR.getCode(),"时间转换异常"); } } @@ -542,7 +532,7 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe request.setOpenid(openId); request.setPlateNumber(plate_number); request.setState(state); - request.setTime(sdf.format(time)); + request.setTime(DateUtils.toRfc3339Str(time)); wxPayService.getBusinessCircleService().notifyParkings(request); return new ResultData(); diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 7555833ea..1fcdbf48d 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -1,5 +1,8 @@ package com.iformall.utils; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; + import javax.xml.datatype.XMLGregorianCalendar; import java.sql.Timestamp; import java.text.DateFormat; @@ -1444,4 +1447,27 @@ public class DateUtils { return 0; } } + + /** + * 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE + * 转换 + * @param rfcDate + * @return + */ + public static Date rfc3339Formatter(String rfcDate) { + DateTime dateTime = new DateTime(rfcDate); + long timeInMillis = dateTime.toCalendar(Locale.getDefault()).getTimeInMillis(); + return new Date(timeInMillis); + } + + /** + * 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE + * 转换 北京时间 + * @param date + * @return + */ + public static String toRfc3339Str(Date date) { + DateTime dateTime = new DateTime(date, DateTimeZone.forTimeZone(TimeZone.getTimeZone("Asia/Shanghai"))); + return dateTime.toString(); + } }