小么熊🐻 il y a 1 an
Parent
commit
8801f5d772

+ 1 - 1
jsjp-admin/src/main/java/com/miaxis/app/controller/wx/WxJsjpController.java

@@ -166,7 +166,7 @@ public class WxJsjpController extends BaseController {
         if(wxOrderGoodsDTO.getGoodsType()==2) {
             GzptUserInfo gzptUserInfo = userInfoService.getInfoById(wxOrderGoodsDTO.getUserId());
 
-            int count = vipUserExamService.getUserExamByUserIdAndGoodsId(wxOrderGoodsDTO.getUserId(), wxOrderGoodsDTO.getGoodsId());
+            int count = vipUserExamService.getUserExamCountByUserIdAndGoodsId(wxOrderGoodsDTO.getUserId(), wxOrderGoodsDTO.getGoodsId());
             if (count > 0) {
                 throw new CustomException("您已购买过该考场,退回上个页面,重新进入。");
             }

+ 4 - 4
jsjp-admin/src/main/resources/application-dev.yml

@@ -136,10 +136,10 @@ wxpay:
     merchantId: 1611324484
     serialNumber: 53EBF541F383371B121D7B57B25305FC0BB04F42
     v3key: 7hM14893GvG3JK05575jk1l6P4tF042B
-#    notifyUrl: https://1a0j71808.imdo.co/open-api/wx/notify/wxpay
-#    notifyUrlRefund: https://1a0j71808.imdo.co/open-api/wx/notify/refund
-    notifyUrl: https://jsjp-admin1.zzxcx.net/stage-api/open-api/wx/notify/wxpay
-    notifyUrlRefund: https://jsjp-admin1.zzxcx.net/stage-api/wx/notify/refund
+    notifyUrl: https://1a0j71808.imdo.co/open-api/wx/notify/wxpay
+    notifyUrlRefund: https://1a0j71808.imdo.co/open-api/wx/notify/refund
+    #notifyUrl: https://jsjp-admin1.zzxcx.net/stage-api/open-api/wx/notify/wxpay
+    #notifyUrlRefund: https://jsjp-admin1.zzxcx.net/stage-api/wx/notify/refund
 
 # 苹果支付
 applepay:

+ 4 - 1
jsjp-service/src/main/java/com/miaxis/examvip/mapper/VipUserExamMapper.java

@@ -23,6 +23,9 @@ public interface VipUserExamMapper extends BaseMapper<VipUserExam> {
 
     void deleteVipUserExamByUserIdAndGoodsId(@Param("userId")Long userId,@Param("goodsId") Long goodsId);
 
-    int getUserExamByUserIdAndGoodsId(@Param("userId")Long userId,@Param("goodsId") Long goodsId);
+    int getUserExamCountByUserIdAndGoodsId(@Param("userId")Long userId,@Param("goodsId") Long goodsId);
+
+    VipUserExam getUserExamByUserIdAndGoodsId(@Param("userId")Long userId,@Param("goodsId") Long goodsId);
+
 
 }

+ 5 - 1
jsjp-service/src/main/java/com/miaxis/examvip/service/IVipUserExamService.java

@@ -22,5 +22,9 @@ public interface IVipUserExamService extends IService<VipUserExam>{
 
     void deleteVipUserExamByUserIdAndGoodsId(Long userId, Long goodsId);
 
-    int getUserExamByUserIdAndGoodsId(Long userId, Long goodsId);
+    int getUserExamCountByUserIdAndGoodsId(Long userId, Long goodsId);
+
+    VipUserExam getUserExamByUserIdAndGoodsId(Long userId, Long goodsId);
+
+
 }

+ 8 - 1
jsjp-service/src/main/java/com/miaxis/examvip/service/impl/VipUserExamServiceImpl.java

@@ -37,7 +37,14 @@ public class VipUserExamServiceImpl extends ServiceImpl<VipUserExamMapper, VipUs
     }
 
     @Override
-    public int getUserExamByUserIdAndGoodsId(Long userId, Long goodsId) {
+    public int getUserExamCountByUserIdAndGoodsId(Long userId, Long goodsId) {
+        return vipUserExamMapper.getUserExamCountByUserIdAndGoodsId(userId,goodsId);
+    }
+
+
+    @Override
+    public VipUserExam getUserExamByUserIdAndGoodsId(Long userId, Long goodsId) {
         return vipUserExamMapper.getUserExamByUserIdAndGoodsId(userId,goodsId);
     }
+
 }

+ 28 - 12
jsjp-service/src/main/java/com/miaxis/order/service/impl/OrderInfoServiceImpl.java

@@ -907,7 +907,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
     @Override
     public void writeExamDataToDb(WxJsOrder order, int payType) {
         long oneYearLong = 1000 * 60 * 60 * 24 * 365l;
-
+        Date now = new Date();
         OrderInfo orderInfo = new OrderInfo();
         orderInfo.setGoodsId(order.getGoodsId());
         orderInfo.setGoodsName(order.getGoodsName());
@@ -932,17 +932,33 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         if(order.getGoodsType()==2) { //考场
             //添加会员信息
             ExamInfo examInfo = examInfoService.getById(order.getGoodsId());
-            VipUserExam vipUserExam = new VipUserExam();
-            vipUserExam.setUserId(order.getUserId());
-            vipUserExam.setName(order.getUserName());
-            vipUserExam.setLogincode(order.getLogincode());
-            vipUserExam.setExamId(examInfo.getId());
-            vipUserExam.setExamName(examInfo.getName());
-            Date now = new Date();
-            long x = now.getTime() + oneYearLong;
-            Date oneYear = new Date(x);
-            vipUserExam.setExpirationTime(oneYear);
-            vipUserExamService.save(vipUserExam);
+            VipUserExam vipUserExam = vipUserExamService.getUserExamByUserIdAndGoodsId(order.getUserId(),order.getGoodsId());
+            if(vipUserExam!=null) {
+                Date expirationTime = vipUserExam.getExpirationTime();
+                if (expirationTime != null && now.compareTo(expirationTime)<0) {  //存在会员时间 当前时间小于会员时间
+                    long x = expirationTime.getTime() + oneYearLong;
+                    Date oneYear = new Date(x);
+                    vipUserExam.setExpirationTime(oneYear);
+                    vipUserExamService.updateById(vipUserExam);
+                } else {
+                    long x = now.getTime() + oneYearLong;
+                    Date oneYear = new Date(x);
+                    vipUserExam.setExpirationTime(oneYear);
+                    vipUserExamService.updateById(vipUserExam);
+                }
+
+            } else {
+                vipUserExam = new VipUserExam();
+                vipUserExam.setUserId(order.getUserId());
+                vipUserExam.setName(order.getUserName());
+                vipUserExam.setLogincode(order.getLogincode());
+                vipUserExam.setExamId(examInfo.getId());
+                vipUserExam.setExamName(examInfo.getName());
+                long x = now.getTime() + oneYearLong;
+                Date oneYear = new Date(x);
+                vipUserExam.setExpirationTime(oneYear);
+                vipUserExamService.save(vipUserExam);
+            }
             this.save(orderInfo);
         } else if(order.getGoodsType()==3) { //商品
             //添加会员信息

+ 5 - 1
jsjp-service/src/main/resources/mapper/examvip/VipUserExamMapper.xml

@@ -44,9 +44,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
-    <select id="getUserExamByUserIdAndGoodsId" resultType="int">
+    <select id="getUserExamCountByUserIdAndGoodsId" resultType="int">
         select count(1) from vip_user_exam where exam_id = #{goodsId} and user_id = #{userId}
     </select>
 
+    <select id="getUserExamByUserIdAndGoodsId" resultMap="VipUserExamResult">
+        select * from vip_user_exam where exam_id = #{goodsId} and user_id = #{userId}
+    </select>
+
 
 </mapper>