diff --git a/mallinkAdmin/pom.xml b/mallinkAdmin/pom.xml index 781777ca8..638b94239 100644 --- a/mallinkAdmin/pom.xml +++ b/mallinkAdmin/pom.xml @@ -13,8 +13,8 @@ mallinkAdmin - 3.6.0 - 3.6.0 + 3.7.0 + 3.7.0 diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java index d268b79a4..0a4af583c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java @@ -42,7 +42,7 @@ import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import redis.clients.jedis.Protocol; -import redis.clients.util.SafeEncoder; +import redis.clients.jedis.util.SafeEncoder; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java index d01a11de5..d7b493d12 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -16,7 +16,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import redis.clients.jedis.Protocol; -import redis.clients.util.SafeEncoder; +import redis.clients.jedis.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index d2dcd8236..845acb5b4 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -373,13 +373,18 @@ public class WxMicroPayController extends BaseController { logger.error("payPrice不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "payPrice不能为空"); } + if (StringUtils.isNotBlank(authCode)) { + // 如果传了收款码,先检查收款码格式是否正确 + if (!checkAuthCode(authCode)) { + logger.error("微信收款码/authCode不符合规则: {}", authCode); + return new ResultData(ErrorCode.MICRO_PAY_ERR_AUTHCODE.getCode(), "请扫描微信收款码"); + } + } BigDecimal totalFee = new BigDecimal(payPriceStr); totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); // 第一个变量是小数位数,第二个变量是取舍方法(四舍五入) Integer payPrice = totalFee.multiply(new BigDecimal(100)).intValue(); - - String ipStr = IPUtil.getIpAddr(request); WxMerchantBUser wxMerchantBUser = wxMerchantBUserService.getById(user.getId()); @@ -415,6 +420,7 @@ public class WxMicroPayController extends BaseController { } wxCouponOrder = wxCouponOrderService.getById(couponOrderId); } + WxPayOrder couponPayOrder = null; Integer remainPrice = payPrice; if (wxCouponOrder != null) { @@ -437,12 +443,8 @@ public class WxMicroPayController extends BaseController { if (remainPrice > 0) { if (StringUtils.isBlank(authCode)) { - logger.error("authCode不能为空"); - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不能为空"); - } - if (!checkAuthCode(authCode)) { - logger.error("authCode不符合规则"); - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不符合规则"); + logger.error("微信收款码/authCode不能为空"); + return new ResultData(ErrorCode.MICRO_PAY_NO_AUTHCODE.getCode(), "请提供微信收款码"); } WxPayOrder record = new WxPayOrder(); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java index ee48542e7..951124af6 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -15,7 +15,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import redis.clients.jedis.Protocol; -import redis.clients.util.SafeEncoder; +import redis.clients.jedis.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -24,7 +24,6 @@ import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.nio.charset.Charset; import java.util.Enumeration; -import java.util.concurrent.TimeUnit; /** * 幂等检查 diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java index afc5dd872..5e32285b8 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java @@ -49,6 +49,7 @@ public class WxCampaignController extends BaseController { wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); wxCampaign.updateTenantInfo(getTenantInfo()); wxCampaign.setSortColumns(BaseEntity.SortField.SortNum_ASC, BaseEntity.SortField.CreateTime_ASC); + // TODO 缓存优化 final PageInfo page = wxCampaignService.clistAsPage(wxCampaign, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java index 25b0f0eeb..e203ad210 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java @@ -85,6 +85,7 @@ public class WxMallController extends BaseController { @ApiOperation("商场信息") @GetMapping("/mallInfo") public ResultData getMallInfo() { + //TODO 缓存优化 WxMall mall = wxMallService.getByTenantId(getTenantId()); if (mall == null) { return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java index 5ae2b3db3..ff7e81880 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -16,7 +16,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import redis.clients.jedis.Protocol; -import redis.clients.util.SafeEncoder; +import redis.clients.jedis.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; diff --git a/mallinkCallback/pom.xml b/mallinkCallback/pom.xml index 1feccd436..328265111 100644 --- a/mallinkCallback/pom.xml +++ b/mallinkCallback/pom.xml @@ -13,8 +13,8 @@ mallinkCallback - 3.6.0 - 3.6.0 + 3.7.0 + 3.7.0 diff --git a/mallinkCallback/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkCallback/src/main/java/com/iformall/interceptor/RequestInterceptor.java index d01a11de5..d7b493d12 100644 --- a/mallinkCallback/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkCallback/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -16,7 +16,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import redis.clients.jedis.Protocol; -import redis.clients.util.SafeEncoder; +import redis.clients.jedis.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 28475f560..7c108e969 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -2196,7 +2196,7 @@ public class PosServiceImpl implements PosService { cardSpendService.cardSpendForPosPay(scoreCreditCalc, cardSpend, merchant, buUser); } else { logger.error("卡支付ID未发现: " + cardSpendId); - throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR); + throw new MallinkException(ErrorCode.POS_CARD_ORDER_NOT_FOUND); } return payOrder; } diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 11b6d21bb..bf3948edd 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -269,8 +269,16 @@ public enum ErrorCode{ POS_CARD_OWNER_NOT_EQUAL(11110, "卡拥有者不对应"), POS_ORDER_HAD_SYNCED(11111, "订单已同步"), POS_ORDER_NOT_FOUND(11112, "订单未找到"), + POS_CARD_ORDER_NOT_FOUND(11113, "卡支付订单未找到"), POS_CMD_FAIL(11200, "POS命令错误"), + /** + * B端收银台 + */ + MICRO_PAY_NO_AUTHCODE(11300, "请提供微信收款码"), + MICRO_PAY_ERR_AUTHCODE(11301, "请提供微信收款码"), + + /** * 支付 diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumNeuPosPamentType.java b/mallinkService/src/main/java/com/iformall/enums/EnumNeuPosPamentType.java index 7d3cb28fa..72044f3b4 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumNeuPosPamentType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumNeuPosPamentType.java @@ -5,7 +5,7 @@ package com.iformall.enums; */ public enum EnumNeuPosPamentType { - // 来源于Neusoft的定义 0微信;1支付宝;2现金;3-会员折扣, 4优惠券;5预付卡;6银行卡7记账 + // 来源于Neusoft的定义 0微信;1支付宝;2现金;3-会员折扣, 4优惠券;5预付卡;6银行卡7记账;8:东软预付卡 WECHAT(0, "微信"), ALIPAY(1, "支付宝"), CASH(2, "现金"), @@ -14,6 +14,7 @@ public enum EnumNeuPosPamentType { MEM_CARD(5, "预付卡"), MEM_BANKCARD(6, "银行卡"), RECORD(7, "记账"), + NEU_CARD(8, "东软预付卡"), ; public static EnumNeuPosPamentType getEnum(Integer code) { for (EnumNeuPosPamentType value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java index 32fb1e3dd..0c282b5c5 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -24,6 +24,7 @@ public interface WxCouponOrderMapper extends CommonMapper { // 券包核销 int updateVerifyCouponOrder(WxCouponOrder wxCouponOrder); int updateVerifyCouponOrderStatus(WxCouponOrder wxCouponOrder); + int updateVerifyCouponOrderStatusForMicroPay(WxCouponOrder wxCouponOrder); int cancelVerifyCouponOrder(WxCouponOrder wxCouponOrder); //统一的计数接口 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index 59bf9fe87..cb3b79c18 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -177,6 +177,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { couponId = record.getCouponId(); record.setCouponId(null); } + // TODO 缓存优化 List voList = wxCouponChannelMapper.findVoList(record); if (voList.isEmpty()) { return new ResultData(Result.SUCCESS, "查询成功", null); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 06413212b..e0c87eb76 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1269,7 +1269,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("核销异常:updatete num " + num); throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); } - } else if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) { + } else if (couponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode())) { // 券已预核销后,但是未做支付,此券还能继续使用 // 1. update posOrderId PosCouponOrderVerify vQ = new PosCouponOrderVerify(); @@ -1294,7 +1294,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { couponOrder.setBUserId(bUser.getId()); couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode()); couponOrder.setUpdateDate(new Date()); - num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder); + num = wxCouponOrderMapper.updateVerifyCouponOrderStatusForMicroPay(couponOrder); } catch (Exception e) { logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/wechat/FmOpenInRedisDBConfigStorage.java b/mallinkService/src/main/java/com/iformall/service/wechat/FmOpenInRedisDBConfigStorage.java index fbdd5b7d4..8104ee485 100644 --- a/mallinkService/src/main/java/com/iformall/service/wechat/FmOpenInRedisDBConfigStorage.java +++ b/mallinkService/src/main/java/com/iformall/service/wechat/FmOpenInRedisDBConfigStorage.java @@ -13,7 +13,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; -import redis.clients.util.Pool; +import redis.clients.jedis.util.Pool; import java.util.Date; diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index e1901b3fa..9aae563c0 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -121,7 +121,17 @@ and `b_user_id` = #{bUserId} + + + update wx_coupon_order + set `coupon_order_status` = #{couponOrderStatus}, + `b_user_id` = #{bUserId}, + `update_date` = #{updateDate}, + `verify_type` = #{verifyType} + where 1=1 + and `tenant_id`=#{tenantId} + and id=#{id} diff --git a/mallinkSysAdmin/pom.xml b/mallinkSysAdmin/pom.xml index f99b954fb..7f6f2ef0b 100644 --- a/mallinkSysAdmin/pom.xml +++ b/mallinkSysAdmin/pom.xml @@ -13,8 +13,8 @@ mallinkSysAdmin - 3.6.0 - 3.6.0 + 3.7.0 + 3.7.0 diff --git a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java index d268b79a4..0a4af583c 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java @@ -42,7 +42,7 @@ import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import redis.clients.jedis.Protocol; -import redis.clients.util.SafeEncoder; +import redis.clients.jedis.util.SafeEncoder; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; diff --git a/mallinkSysAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkSysAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java index d01a11de5..d7b493d12 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -16,7 +16,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import redis.clients.jedis.Protocol; -import redis.clients.util.SafeEncoder; +import redis.clients.jedis.util.SafeEncoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; diff --git a/mybatis-multi-tenancy/pom.xml b/mybatis-multi-tenancy/pom.xml index 3066602fb..3f2930697 100644 --- a/mybatis-multi-tenancy/pom.xml +++ b/mybatis-multi-tenancy/pom.xml @@ -10,13 +10,13 @@ com.github.jsqlparser jsqlparser - 1.4 + 2.0 compile org.mybatis mybatis - 3.5.2 + 3.5.4 compile @@ -30,13 +30,13 @@ test mysql mysql-connector-java - 8.0.17 + 8.0.19 test com.alibaba druid - 1.1.17 + 1.1.22 diff --git a/pom.xml b/pom.xml index ab13e1699..fd58a4556 100644 --- a/pom.xml +++ b/pom.xml @@ -27,16 +27,16 @@ org.springframework.boot spring-boot-starter-parent - 2.1.8.RELEASE + 2.2.5.RELEASE - 3.6.0 - 3.6.0 - 3.6.0 - 3.6.0 - 3.6.0 + 3.7.0 + 3.7.0 + 3.7.0 + 3.7.0 + 3.7.0 2.3.0 @@ -92,12 +92,30 @@ flowable-spring-boot-starter-process 6.4.0 - + + + mysql + mysql-connector-java + 8.0.19 + runtime + + + + com.baomidou + mybatis-plus-boot-starter + 3.2.0 + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.2 + com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + 1.2.13 org.mybatis @@ -109,31 +127,18 @@ - - - com.baomidou - mybatis-plus-boot-starter - 3.1.0 - - + - org.mybatis.spring.boot - mybatis-spring-boot-starter - 2.1.0 + com.alibaba + druid + 1.1.22 - org.springframework spring-context-support - - mysql - mysql-connector-java - 8.0.17 - runtime - org.springframework.boot spring-boot-starter-test @@ -166,14 +171,8 @@ com.alibaba fastjson - 1.2.54 + 1.2.68 - - com.alibaba - druid - 1.1.17 - - org.quartz-scheduler @@ -195,27 +194,27 @@ io.springfox springfox-swagger2 - 2.8.0 + 2.9.2 io.springfox springfox-swagger-ui - 2.8.0 + 2.9.2 io.springfox springfox-spring-web - 2.8.0 + 2.9.2 com.fasterxml.jackson.core jackson-core - 2.9.7 + 2.10.3 com.fasterxml.jackson.core jackson-databind - 2.9.7 + 2.10.3 javax.xml.bind @@ -225,7 +224,7 @@ org.projectlombok lombok - 1.18.2 + 1.18.10 provided