瀏覽代碼

认证通会员支付part2

Aslee 3 年之前
父節點
當前提交
2a89a1b6a9

+ 9 - 0
src/main/java/com/caimei365/order/controller/PayNonOrderApi.java

@@ -462,4 +462,13 @@ public class PayNonOrderApi {
         }
         return payNonOrderService.superVipOnlineRefund(payVipDto);
     }
+
+    @ApiOperation("购买认证通会员-查询是否购买成功")
+    @GetMapping("/auth/vip/check")
+    public ResponseJson authVipCheck(Integer vipRecordId) {
+        if (null == vipRecordId) {
+            return ResponseJson.error("购买记录id不能为空!", null);
+        }
+        return payNonOrderService.authVipCheck(vipRecordId);
+    }
 }

+ 4 - 0
src/main/java/com/caimei365/order/mapper/PayOrderMapper.java

@@ -245,4 +245,8 @@ public interface PayOrderMapper {
     Integer findPayStatus(Integer recordId);
 
     Integer findClubType(Integer userId);
+
+    void deleteAuthVipRoleRelation(int userId);
+
+    void insertAuthVipRoleRelation(Integer userId, Integer roleId);
 }

+ 6 - 0
src/main/java/com/caimei365/order/service/PayNonOrderService.java

@@ -151,4 +151,10 @@ public interface PayNonOrderService {
      * }
      */
     ResponseJson<JSONObject> authVipOnlineRefund(PayVipDto payVipDto) throws NoSuchAlgorithmException, InvalidKeySpecException;
+
+    /**
+     * 购买认证通会员-查询是否购买成功
+     * @return
+     */
+    ResponseJson authVipCheck(Integer vipRecordId);
 }

+ 39 - 1
src/main/java/com/caimei365/order/service/impl/PayNonOrderServiceImpl.java

@@ -29,7 +29,6 @@ import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.security.NoSuchAlgorithmException;
 import java.security.spec.InvalidKeySpecException;
 import java.text.SimpleDateFormat;
@@ -1314,9 +1313,19 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
         if (null != authVip.getId()) {
             // 更新会员信息
             payOrderMapper.updateAuthVipInfo(authVip);
+            if (authVip.getBeginTime().compareTo(beginTime) >= 0) {
+                // 删除原有角色关联
+                payOrderMapper.deleteAuthVipRoleRelation(userId);
+                // 续费重新分配角色
+                saveRoleRelation(userId, "1,2");
+            }
         } else {
             // 新增会员信息
             payOrderMapper.insertAuthVipInfo(authVip);
+            // 删除原有角色关联
+            payOrderMapper.deleteAuthVipRoleRelation(userId);
+            // 分配角色
+            saveRoleRelation(userId, "1,2");
         }
         // 修改会员历史记录支付状态
         VipRecordBo record = payOrderMapper.getAuthVipRecord(recordId);
@@ -1413,4 +1422,33 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
         log.info("【线上退款】成功>>>>>>>vipRecordId:" + payVipDto.getVipRecordId());
         return ResponseJson.success(result);
     }
+
+    @Override
+    public ResponseJson<Map<String,Map<String,String>>> authVipCheck(Integer vipRecordId) {
+        // 获取会员套餐记录
+        VipRecordBo record = payOrderMapper.getAuthVipRecord(vipRecordId);
+        Map<String, Map<String,String>> map1 = new HashMap<>();
+        Map<String, String> map2 = new HashMap<>();
+        if (null != record.getPayStatus() && 1 == record.getPayStatus()) {
+            map2.put("status", "1");
+            map1.put("data", map2);
+            return ResponseJson.success("支付成功!", map1);
+        }
+        map2.put("status", "0");
+        map1.put("data", map2);
+        return ResponseJson.success("支付失败", map1);
+    }
+
+    public void saveRoleRelation(Integer userId, String roleIds) {
+        if (StringUtils.isNotEmpty(roleIds)) {
+            // 设置用户角色
+            String[] split = roleIds.split(",");
+            for (String s : split) {
+                if (org.springframework.util.StringUtils.hasLength(s)) {
+                    // 保存用户角色关系
+                    payOrderMapper.insertAuthVipRoleRelation(userId, Integer.valueOf(s));
+                }
+            }
+        }
+    }
 }

+ 7 - 1
src/main/resources/mapper/PayOrderMapper.xml

@@ -32,6 +32,9 @@
             onlineMoney   = #{onlineMoney}
         WHERE userID = #{userId}
     </update>
+    <delete id="deleteAuthVipRoleRelation">
+        DELETE FROM auth_role_user WHERE user_id = #{userId}
+    </delete>
     <insert id="insertOrderPayLink" keyColumn="id" keyProperty="id"  parameterType="com.caimei365.order.model.vo.OrderPayLinkVo" useGeneratedKeys="true">
         INSERT INTO cm_order_pay_link (orderId, vipRecordId, authVipRecordId, vipMonth, linkLogo, unpaidAmount,
                                        generateTime, effectiveTime, payStatus, payType, delFlag)
@@ -67,6 +70,9 @@
     <insert id="insertCouponRecord" keyColumn="id" keyProperty="id" parameterType="com.caimei365.order.model.po.CouponRecordPo" useGeneratedKeys="true">
         INSERT INTO cm_coupon_buyrecord (couponId, userId) VALUES (#{couponId},#{userId})
     </insert>
+    <insert id="insertAuthVipRoleRelation">
+        INSERT INTO auth_role_user(user_id, role_id) VALUES(#{userId}, #{roleId})
+    </insert>
     <update id="updateUserVipInfo">
         UPDATE cm_svip_user set userId=#{userId}, beginTime=#{beginTime}, endTime=#{endTime}, delFlag=#{delFlag}, updateTime=#{updateTime}
         WHERE userId = #{userId}
@@ -321,7 +327,7 @@
     </select>
     <select id="getAuthVipRecord" resultType="com.caimei365.order.model.bo.VipRecordBo">
         SELECT id, authUserId as userId, packageId, price, payStatus FROM auth_vip_history WHERE id = #{vipRecordId};
-        </select>
+    </select>
     <select id="getAuthVipPackagePrice" resultType="java.lang.Double">
         SELECT price FROM auth_vip_package WHERE id = #{packageId};
     </select>