瀏覽代碼

Merge remote-tracking branch 'origin/saas' into saas

zouxuan 3 年之前
父節點
當前提交
3030d7922c

+ 4 - 4
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -69,7 +69,7 @@ public class NewsController extends BaseController {
 	public Object getList(NewsInformationQueryInfo queryInfo) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		
-		if(queryInfo.getType() == 6 || queryInfo.getType() == 7){
+		if(queryInfo.getType() == 6 || queryInfo.getType() == 4){
 			queryInfo.setTenantId(-1);
 		}
 
@@ -111,7 +111,7 @@ public class NewsController extends BaseController {
 	@GetMapping(value = "/queryPage")
 	public Object queryPage(NewsInformationQueryInfo queryInfo) {
 		
-		if(queryInfo.getType() != null && (queryInfo.getType() == 6 || queryInfo.getType() == 7)){
+		if(queryInfo.getType() != null && (queryInfo.getType() == 6 || queryInfo.getType() == 4)){
 			queryInfo.setTenantId(-1);
 		}
 		
@@ -163,7 +163,7 @@ public class NewsController extends BaseController {
 	@PreAuthorize("@pcs.hasPermissions('news/add')")
 	public Object add(SysNewsInformation newsInfo) {
 		
-		if(newsInfo.getType() == 6 || newsInfo.getType() == 7){
+		if(newsInfo.getType() == 6 || newsInfo.getType() == 4){
 			newsInfo.setTenantId(-1);
 		}
 		if (newsInfo.getContent().length() > 7999) {
@@ -189,7 +189,7 @@ public class NewsController extends BaseController {
 			newsInfo.setType(originNewsInfo.getType());
 		}
 		
-		if(newsInfo.getType() == 6 || newsInfo.getType() == 7){
+		if(newsInfo.getType() == 6 || newsInfo.getType() == 4){
 			newsInfo.setTenantId(-1);
 		}
 		return succeed(sysNewsInformationService.update(newsInfo));

+ 20 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/CloudTeacherOrderService.java

@@ -6,9 +6,9 @@ import com.ym.mec.biz.dal.page.CloudTeacherAddQueryInfo;
 import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
-import com.ym.mec.thirdparty.yqpay.Msg;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -39,6 +39,8 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
      */
     CloudTeacher addStudentCloudTeacher(CloudTeacherOrder cloudTeacherOrder);
 
+    Date calcCloudTeacherOrderTime(CloudTeacherOrder cloudTeacherOrder, Date startTime, Date endTime);
+
     /**
      * 获取乐团云教练订单
      *
@@ -54,10 +56,11 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
      * @param studentId
      * @return
      */
-    List<CloudTeacherOrder> getStudentCloudTeacherOrder(Integer studentId,String musicGroupId);
+    List<CloudTeacherOrder> getStudentCloudTeacherOrder(Integer studentId, String musicGroupId);
 
     /**
      * 退云教练
+     *
      * @param cloudTeacherOrders
      * @param refundAmount
      * @return
@@ -66,30 +69,34 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
 
     /**
      * 退云教练
+     *
      * @param order
      * @param refundAmount
      * @return
      */
     Boolean quitCloudTeacherOrder(CloudTeacherOrder order, BigDecimal refundAmount);
-	
-	/**
-	 * 根据studentPaymentOrder表id查询对象
-	 * @param orderId
-	 * @return
-	 */
-	CloudTeacherOrder queryByOrderId(Long orderId);
-    
+
+    /**
+     * 根据studentPaymentOrder表id查询对象
+     *
+     * @param orderId
+     * @return
+     */
+    CloudTeacherOrder queryByOrderId(Long orderId);
+
     /**
      * 根据订单编号查询订单详情
+     *
      * @param orderId
      * @return
      */
     CloudTeacherOrderDto queryOrderInfoByOrderId(Long orderId);
 
-    List<Map<Long, String>> queryNoStartByUserIds(Set<Integer> userIds,Boolean isMusicMember);
+    List<Map<Long, String>> queryNoStartByUserIds(Set<Integer> userIds, Boolean isMusicMember);
 
     /**
      * 获取学员购买的云教练活动订单
+     *
      * @param userId
      * @param activeRemark
      * @param remark
@@ -99,16 +106,13 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
 
     /**
      * 支付未激活用户
+     *
      * @param cloudTeacherStudents 选择中用户清单
      * @return 是否成功
      */
     Map<String, Object> pay(List<CloudTeacherStudent> cloudTeacherStudents) throws Exception;
 
-    Msg payNotify(Msg msg) throws Exception;
-
-    Boolean payCheck(TenantOrderRecord record, int i);
-
-    Boolean payCheck(String orderNo) throws Exception;
+    Boolean payCheck(String orderNo);
 
     PageInfo<CloudTeacherStudent> queryRecord(CloudTeacherOrderQueryInfo cloudTeacherOrderQueryInfo);
 

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/TenantOrderRecordService.java

@@ -23,6 +23,9 @@ public interface TenantOrderRecordService extends IService<TenantOrderRecord> {
 
     void checkTenantOrder();
 
-    Boolean rechargeCheck(TenantOrderRecord record, int i);
+    void activeCloudTeacher(TenantOrderRecord record);
+
+    void rechargeSuccess(TenantOrderRecord record);
+
 }
 

+ 46 - 173
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java

@@ -3,8 +3,6 @@ package com.ym.mec.biz.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.CloudTeacherDao;
 import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
 import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
@@ -22,15 +20,10 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
-import com.ym.mec.thirdparty.yqpay.Msg;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import jodd.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.redisson.api.RBucket;
-import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,15 +32,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.PeriodEnum.*;
 
 @Service
 public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTeacherOrder> implements CloudTeacherOrderService {
-    //订单不存在
-    public static final String PAYMENT_ID_NOT_EXISTS = "payment_id_not_exists";
 
     private static final Logger log = LoggerFactory.getLogger(CloudTeacherOrderServiceImpl.class);
     @Autowired
@@ -66,18 +56,16 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     private IdGeneratorService idGenerator;
     @Autowired
     private TenantOrderRecordService tenantOrderRecordService;
+
     @Override
     public BaseDAO<Long, CloudTeacherOrder> getDAO() {
         return cloudTeacherOrderDao;
     }
-    @Autowired
-    private RedissonClient redissonClient;
+
     @Autowired
     private SysMessageService sysMessageService;
     @Autowired
     private TenantInfoService tenantInfoService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
 
     @Override
     public boolean addStudents(CloudTeacherAddQueryInfo cloudTeacherAddQueryInfo) {
@@ -136,7 +124,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
             return pageInfo;
         }
         assert dataList != null;
-        for (CloudTeacherStudent cst: dataList) {
+        for (CloudTeacherStudent cst : dataList) {
             TenantConfig tenantConfig = tenantConfigService.getOne(new QueryWrapper<TenantConfig>().eq("tenant_id_", cst.getTenantId()));
             if (tenantConfig == null) {
                 throw new Exception("未找到组织Id " + cst.getTenantId().toString() + "在 TenantConfig 表");
@@ -177,33 +165,32 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     public Map<String, Object> pay(List<CloudTeacherStudent> cloudTeacherStudents) throws Exception {
 
         if (cloudTeacherStudents.size() == 0) {
-            throw new Exception("至少选择一条记录");
+            throw new Exception("请选择选择一条记录");
         }
         List<Integer> ids = cloudTeacherStudents.stream().map(CloudTeacherStudent::getCloudTeacherOrderId).collect(
                 Collectors.toList());
         if (cloudTeacherOrderDao.checkOrdered(StringUtil.join(ids, ",")) != 0) {
-            throw new Exception("学生已经支付");
+            throw new Exception("存在已经支付完成的学生,请重新选择");
         }
         Integer tenantId = null;
-        for (CloudTeacherStudent cts: cloudTeacherStudents) {
+        BigDecimal sumAmount = new BigDecimal(0);
+        for (CloudTeacherStudent cts : cloudTeacherStudents) {
             if (cts.getAmount() == null) {
-                throw new Exception("金额错误在, 学生编号: " + cts.getStudentId().toString());
+                throw new Exception("支付金额异常, 请按规定操作 ");
             }
+            sumAmount = sumAmount.add(cts.getAmount());
             if (tenantId == null) {
                 tenantId = cts.getTenantId();
             }
         }
-        BigDecimal sumAmount = new BigDecimal(0);
-        for (CloudTeacherStudent cts: cloudTeacherStudents) {
-            sumAmount = sumAmount.add(cts.getAmount());
-        }
         return this.payExec(sumAmount, tenantId, cloudTeacherStudents);
     }
 
     /**
      * 团练宝支付
+     *
      * @param payAmount 金额
-     * @param tenantId 分部
+     * @param tenantId  分部
      * @return 支付结果
      */
     private Map<String, Object> payExec(BigDecimal payAmount, Integer tenantId, List<CloudTeacherStudent> cloudTeacherStudents) throws Exception {
@@ -228,75 +215,22 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         } else { // 消费大于 0 元 已支付 直接激活
             orderState = 1;
         }
+        payMap.put("amount", payAmount);
+        payMap.put("orderNo", orderNo);
         TenantOrderRecord record = tenantInfoService.createOrderRecord(tenantId, payAmount, orderNo, tenantEnum, orderState, WrapperUtil.toStr(payMap, "routingMerNos"));
         for (CloudTeacherStudent cts : cloudTeacherStudents) {
             if (cloudTeacherOrderDao.updateOrderId(cts.getCloudTeacherOrderId(), cts.getAmount(), record.getId()) <= 0) {
                 throw new Exception("更新订单失败");
             }
         }
-        if (orderState == 1) { // 成功手直接成功
-            this.paySuccess(record);
+        //0元直接成功
+        if (orderState == 1) {
+            tenantOrderRecordService.activeCloudTeacher(record);
         }
         log.info("tenant pay >>>>> " + JSON.toJSONString(payMap));
         return payMap;
     }
 
-    @Transactional(rollbackFor = Exception.class)
-    public Msg payNotify(Msg msg) throws Exception {
-        log.info("tenant orderNotify >>>>> " + msg.toString());
-        msg.setMsg("fail");
-        Map<String, String> notifyMap = JSON.parseObject(msg.getResponseParameters(), Map.class);
-        TenantOrderRecord record = tenantOrderRecordService.getOne(
-                new QueryWrapper<TenantOrderRecord>().eq("order_no_", notifyMap.get("orderNo")));
-        record.setOrderNo(notifyMap.get("merMerOrderNo"));
-        record.setTransNo(notifyMap.get("orderNo"));
-        String channelType = notifyMap.get("channelType").equals("1") ? "WXPay" : (notifyMap.get("channelType").equals("2") ? "Alipay" : "quickPay");
-        record.setPayChannel(channelType);
-
-        //支付中订单存在,更新状态
-        if (msg.getResponseType().equals("1") && notifyMap.size() > 0 && msg.getCode().equals("88")) {
-            //tradeState 88就是正确的 其他错误的
-            //            DealStatusEnum
-            //            notifyMap.put("totalMoney", notifyMap.get("payAmount"));
-            this.paySuccess(record);
-            record.setOrderState(1);
-            msg.setCode("000000");
-            msg.setMsg("success");
-        } else {
-            log.info("tenant orderNotify fail");
-            //支付失败
-            record.setOrderState(2);
-        }
-        tenantOrderRecordService.update(record, new QueryWrapper<TenantOrderRecord>()
-                .eq("order_no_", record.getOrderNo()));
-        log.info("tenant orderNotify return>>>>> " + msg.toString());
-        return msg;
-    }
-
-    @Override
-    public Boolean payCheck(TenantOrderRecord record, int i) {
-        RBucket<Object> bucket = redissonClient.getBucket("tenant_check_order");
-        if (!bucket.trySet(1, 3L, TimeUnit.SECONDS)) {
-            return false;
-        }
-        log.info("  团练宝激活 check >>>>> {} ", i);
-        checkTransOrderState(record);
-        if (record.getOrderState() == 1) {
-            tenantOrderRecordService.updateById(record);
-            try {
-                this.paySuccess(record); // 充值成功
-                log.info("  团练宝激活 成功 >>>>> {}", i);
-                return true;
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
-        }
-        bucket.delete();
-        log.info(" 团练宝 支付 失败 >>>>> {} ", i);
-        return false;
-    }
-
     @Override
     public int sendSms(TenantOrderRecord record) {
         List<Mapper> orderUsers = cloudTeacherOrderDao.findUserNameByOrderId(record.getId());
@@ -308,76 +242,14 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         return 0;
     }
 
-    //主动去第三方查询订单状态
-    private void checkTransOrderState(TenantOrderRecord orderRecord) {
-        if (StringUtils.equals(orderRecord.getPaymentChannel(), PaymentChannelEnum.ADAPAY.getCode())) {
-            Map<String, Object> payment;
-            try {
-                payment = Payment.queryPayment(orderRecord.getTransNo());
-                log.info("    >>>>> payment 团练宝 payment query start");
-                String status = (String) payment.get("status");
-                //判断状态是成功还是失败
-                if (status.equals("succeeded")) {
-                    orderRecord.setOrderState(1);
-                } else if (Objects.nonNull(payment.get("error_code"))) {
-                    //若状态是失败则判断code
-                    if (!PAYMENT_ID_NOT_EXISTS.equals(payment.get("error_code"))) {
-                        //不等于这个异常都是失败
-                        orderRecord.setOrderState(2);
-                    } else {
-                        long orderTime = orderRecord.getCreatedTime().getTime();//订单创建时间
-                        long nowTime = new Date().getTime();
-                        //丢弃5分钟之前的订单 300000 = 5 * 60秒 * 1000
-                        long exTime = 300000L;
-                        if (nowTime - orderTime > exTime) {
-                            orderRecord.setOrderState(2);
-                        }
-                    }
-                }
-                log.info("     >>>>> payment 团练宝  >>>>> {}", payment);
-                log.info("     >>>>> payment 团练宝  >>>>> {}", JSON.toJSONString(orderRecord));
-            } catch (Exception e) {
-                log.error("     >>>>> payment 团练宝  >>>>> {}", JSON.toJSONString(orderRecord));
-            }
-        }
-    }
-
-    private boolean paySuccess(TenantOrderRecord record) throws Exception {
-        log.info("tenant orderNotify update order status start" + record.getId().toString());
-        if (record.getId() == null) {
-            throw new Exception("订单未找到");
-        }
-        record.setPayDate(new Date());
-        record.setPayTime(new Date());
-        tenantOrderRecordService.updateById(record);
-        // cloudTeacherOrderDao.updateOrderStatusOK(record.getId()
-        List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderDao.findByPlatformOrderId(record.getId());
-        Date startTime = DateUtil.trunc(new Date());
-        Date endTime = new Date();
-        for (CloudTeacherOrder cto : cloudTeacherOrders) {
-            endTime = calcCloudTeacherOrderTime(cto, startTime, endTime);
-            cto.setStartTime(startTime);
-            cto.setEndTime(endTime);
-            cto.setStatus(2);
-            cloudTeacherOrderDao.update(cto);
-            log.info("团练宝更新订单");
-            studentService.updateMemberRank(cto.getStudentId(), cto.getType(), cto.getTime(), 1);
-            log.info("团练宝更新学生");
-        }
-
-        log.info("tenant orderNotify update order status end");
-        sendSms(record);
-        return true;
-    }
-
-    public Boolean payCheck(String orderNo) throws Exception {
+    public Boolean payCheck(String orderNo) {
         TenantOrderRecord record = tenantOrderRecordService.getOne(new QueryWrapper<TenantOrderRecord>().eq("order_no_", orderNo));
         return record.getOrderState() == 1;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-	public void addOrderDetail2CloudTeacher(StudentPaymentOrder order,BigDecimal cloudTeacherFee) {
+    public void addOrderDetail2CloudTeacher(StudentPaymentOrder order, BigDecimal cloudTeacherFee) {
         CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
         cloudTeacherOrder.setTenantId(order.getTenantId());
         cloudTeacherOrder.setOrganId(order.getOrganId());
@@ -389,21 +261,21 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         cloudTeacherOrder.setAmount(cloudTeacherFee);
         cloudTeacherOrder.setStudentId(order.getUserId());
         cloudTeacherOrder.setStatus(1);
-		cloudTeacherOrderDao.insert(cloudTeacherOrder);
-	}
+        cloudTeacherOrderDao.insert(cloudTeacherOrder);
+    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public CloudTeacher addStudentCloudTeacher(CloudTeacherOrder cloudTeacherOrder) {
         Date nowDate = new Date();
         CloudTeacher cloudTeacher = cloudTeacherDao.getByStudentId(cloudTeacherOrder.getStudentId());
-        Date startTime = null;
+        Date startTime;
         Date endTime = null;
-        Date endBaseTime = null;
-        
+        Date endBaseTime;
+
         //更新student表信息
         studentService.updateMemberRank(cloudTeacherOrder);
-        
+
         if (cloudTeacher == null) {
             cloudTeacher = new CloudTeacher();
             startTime = DateUtil.trunc(nowDate);
@@ -438,7 +310,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         return cloudTeacher;
     }
 
-    private Date calcCloudTeacherOrderTime(CloudTeacherOrder cloudTeacherOrder, Date startTime, Date endTime) {
+    public Date calcCloudTeacherOrderTime(CloudTeacherOrder cloudTeacherOrder, Date startTime, Date endTime) {
         if (cloudTeacherOrder.getType() == DAY) { // 日
             endTime = DateUtil.addDays(startTime, cloudTeacherOrder.getTime());
         } else if (cloudTeacherOrder.getType() == MONTH) { // 月
@@ -459,8 +331,8 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     }
 
     @Override
-    public List<CloudTeacherOrder> getStudentCloudTeacherOrder(Integer studentId,String musicGroupId) {
-        return cloudTeacherOrderDao.getStudentCloudTeacherOrder(studentId,musicGroupId);
+    public List<CloudTeacherOrder> getStudentCloudTeacherOrder(Integer studentId, String musicGroupId) {
+        return cloudTeacherOrderDao.getStudentCloudTeacherOrder(studentId, musicGroupId);
     }
 
     @Override
@@ -472,15 +344,15 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
             if (cloudTeacherOrder.getStatus().equals(3)) {
                 throw new BizException("团练宝已退,请勿重复退");
             }
-            if (cloudTeacherOrder.getStatus().equals(2) && DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
-                    DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) < 0) {
+            if (cloudTeacherOrder.getStatus().equals(2) && DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT), DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
+                    DateUtil.stringToDate(DateUtil.format(nowDate, DateUtil.ISO_EXPANDED_DATE_FORMAT), DateUtil.ISO_EXPANDED_DATE_FORMAT)) < 0) {
                 throw new BizException("团练宝已过服务期,不可退费");
             }
             Integer oldStatus = cloudTeacherOrder.getStatus();
             cloudTeacherOrder.setStatus(3);
-            if(i == 0){
+            if (i == 0) {
                 cloudTeacherOrder.setRefundAmount(refundAmount);
-            }else {
+            } else {
                 cloudTeacherOrder.setRefundAmount(BigDecimal.ZERO);
             }
             cloudTeacherOrder.setUpdateTime(nowDate);
@@ -493,7 +365,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
             }
             int days = DateUtil.daysBetween(DateUtil.trunc(nowDate), cloudTeacherOrder.getEndTime());
             CloudTeacher cloudTeacher = cloudTeacherDao.getByStudentId(cloudTeacherOrder.getStudentId());
-            if(cloudTeacher != null){
+            if (cloudTeacher != null) {
                 Date endDate = DateUtil.addDays(cloudTeacherOrder.getEndTime(), -days);
                 cloudTeacher.setEndTime(endDate);
                 cloudTeacher.setUpdateTime(nowDate);
@@ -504,6 +376,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         }
         return true;
     }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean quitCloudTeacherOrder(CloudTeacherOrder cloudOrder, BigDecimal refundAmount) {
@@ -511,8 +384,8 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         if (cloudOrder.getStatus().equals(3)) {
             throw new BizException("团练宝已退,请勿重复退");
         }
-        if (cloudOrder.getStatus().equals(2) && DateUtil.stringToDate(DateUtil.format(cloudOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
-                DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) < 0) {
+        if (cloudOrder.getStatus().equals(2) && DateUtil.stringToDate(DateUtil.format(cloudOrder.getEndTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT), DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
+                DateUtil.stringToDate(DateUtil.format(nowDate, DateUtil.ISO_EXPANDED_DATE_FORMAT), DateUtil.ISO_EXPANDED_DATE_FORMAT)) < 0) {
             throw new BizException("团练宝已过服务期,不可退费");
         }
         Integer oldStatus = cloudOrder.getStatus();
@@ -537,23 +410,23 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         return true;
     }
 
-	@Override
-	public CloudTeacherOrder queryByOrderId(Long orderId) {
-		return cloudTeacherOrderDao.queryByOrderId(orderId);
-	}
+    @Override
+    public CloudTeacherOrder queryByOrderId(Long orderId) {
+        return cloudTeacherOrderDao.queryByOrderId(orderId);
+    }
 
-	@Override
-	public CloudTeacherOrderDto queryOrderInfoByOrderId(Long orderId) {
-		return cloudTeacherOrderDao.queryOrderInfoByOrderId(orderId);
-	}
+    @Override
+    public CloudTeacherOrderDto queryOrderInfoByOrderId(Long orderId) {
+        return cloudTeacherOrderDao.queryOrderInfoByOrderId(orderId);
+    }
 
     @Override
-    public List<Map<Long, String>> queryNoStartByUserIds(Set<Integer> userIds,Boolean isMusicMember) {
-        return cloudTeacherOrderDao.queryNoStartByUserIds(userIds,isMusicMember);
+    public List<Map<Long, String>> queryNoStartByUserIds(Set<Integer> userIds, Boolean isMusicMember) {
+        return cloudTeacherOrderDao.queryNoStartByUserIds(userIds, isMusicMember);
     }
 
     @Override
     public String queryActiveOrderPage(Integer userId, Integer activeRemark, String remark) {
-        return cloudTeacherOrderDao.queryActiveOrderPage(userId,activeRemark,remark);
+        return cloudTeacherOrderDao.queryActiveOrderPage(userId, activeRemark, remark);
     }
 }

+ 21 - 115
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java

@@ -52,32 +52,12 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
     @Autowired
     private RedissonClient redissonClient;
     @Autowired
-    private CloudTeacherOrderService cloudTeacherOrderService;
-    @Autowired
     private TenantConfigService tenantConfigService;
-
-    @Autowired
-    private SysConfigService sysConfigService;
-
     @Autowired
     private SysConfigDao sysConfigDao;
 
-    @Autowired
-    private SysPaymentConfigService sysPaymentConfigService;
-
-    //支付类型
-    private static final Map<String, Function<PaymentParam, Map<String, Object>>> checkOrderType = new HashMap<>();
-
-    {
-        //开通缴费/续费
-        checkOrderType.put("tenant", this::openOrRenew);
-        //团练宝激活支付
-        checkOrderType.put("cloudTeacherOrder", this::cloudTeacherOrder);
-        //机构充值
-        checkOrderType.put("tenantRecharge", this::tenantRecharge);
-        //teacher
-        checkOrderType.put("teacher", this::teacher);
-    }
+    //tenant 机构开通、续费付款、 cloudTeacherOrder 团练宝激活支付、tenantRecharge 机构充值
+    private static final String[] tenantPlatform = {"tenant", "cloudTeacherOrder", "tenantRecharge"};
 
     @Override
     public Map<String, Object> executePayment(BigDecimal amount, String orderNo, String payChannel, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) throws Exception {
@@ -91,19 +71,19 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
         checkSing(payParam);
         //返回值
         Map<String, Object> payment;
-        //如果platform is null 则应该是这一个,因为老代码就是这样写的。
-        if (StringUtils.isBlank(platform)) {
-            payment = student(payParam);
+
+        if (WrapperUtil.checkStr(platform, tenantPlatform)) {
+            //tenant 机构开通、续费付款、 cloudTeacherOrder 团练宝激活支付、tenantRecharge 机构充值
+            payment = tenantPlatformOrder(payParam);
+            //主动延迟检查订单
+            delayCheckTenant();
+        } else if (platform.equals("teacher")) {
+            payment = teacher(payParam);
         } else {
-            //根据传入platform 来判断执行哪个操作
-            Function<PaymentParam, Map<String, Object>> function = checkOrderType.get(platform);
             //如果以上操作都没有 则应该是这一个,因为老代码就是这样写的。
-            if (Objects.isNull(function)) {
-                payment = student(payParam);
-            } else {
-                payment = function.apply(payParam);
-            }
+            payment = student(payParam);
         }
+
         return payment;
     }
 
@@ -147,36 +127,13 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
         return payment;
     }
 
-    // 机构充值
-    private Map<String, Object> tenantRecharge(PaymentParam payParam) {
+    //机构开通、续费付款、 团练宝激活支付、机构充值
+    private Map<String, Object> tenantPlatformOrder(PaymentParam payParam) {
         TenantOrderRecord tenantOrderRecord = getTenantOrderRecord(payParam.getOrderNo());
-        Map<String, Object> payment = checkOrderGetPayment(payParam, tenantOrderRecord);
-        //主动延迟检查订单
-        log.info("executePayment delayCheckTenantRecharge >>>>> ");
-        delayCheckTenantRecharge(tenantOrderRecord);
-        return payment;
-    }
-
-    // 团练宝激活支付
-    private Map<String, Object> cloudTeacherOrder(PaymentParam payParam) {
-        TenantOrderRecord tenantOrderRecord = getTenantOrderRecord(payParam.getOrderNo());
-        if (tenantOrderRecord.getOrderState() == 1) {
-            throw new BizException("订单已完成支付.");
+        if (tenantOrderRecord.getOrderState() != 0) {
+            throw new BizException("订单已处理!");
         }
-        Map<String, Object> payment = checkOrderGetPayment(payParam, tenantOrderRecord);
-        // 团练宝激活支付 主动延迟检查订单
-        log.info("executePayment delayCheckCloudTeacherOrder >>>>> ");
-        delayCheckCloudTeacherOrder(tenantOrderRecord);
-        return payment;
-    }
-
-    //机构开通、续费付款
-    private Map<String, Object> openOrRenew(PaymentParam payParam) {
-        TenantOrderRecord tenantOrderRecord = getTenantOrderRecord(payParam.getOrderNo());
-        Map<String, Object> payment = checkOrderGetPayment(payParam, tenantOrderRecord);
-        //主动延迟检查订单
-        delayCheckTenant();
-        return payment;
+        return checkOrderGetPayment(payParam, tenantOrderRecord);
     }
 
     //查询订单
@@ -322,7 +279,6 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
                 // 延时分账
                 paymentParams.put("pay_mode", "delay");
             } else {
-
                 Function<BigDecimal, BigDecimal> amountTo = (a) -> a
                         .multiply(tenantConfig.getChargeRate())
                         .divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
@@ -333,14 +289,14 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
                 List<Map<String, Object>> divMemberList = new ArrayList<>();
                 // 实时分账
                 if (amount.doubleValue() > 0) {
-    				
+
     				/*SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
     		        if (Objects.isNull(config)) {
     		            throw new BizException("平台收款账户没有设置[platform_collection_organ]");
     		        }
-    	        	
+
     	        	SysPaymentConfig sysPaymentConfig = sysPaymentConfigService.findPaymentConfigByOrganId(Integer.parseInt(config.getParanValue()));
-    	        	
+
     	        	if(sysPaymentConfig == null || StringUtils.isBlank(sysPaymentConfig.getHfMerNo())){
     	        		throw new BizException("分部[{}]没有设置收款账号", config.getParanValue());
     	        	}*/
@@ -398,7 +354,7 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
     //锁的时间
     private static final int lockTime = (int) (times * sleepTime / 1000 - 1);
 
-    //主动检查订单状态
+    //主动检查机构像平台支付的订单状态
     private void delayCheckTenant() {
         RBucket<Object> bucket = redissonClient.getBucket("delay_check_tenant");
         if (!bucket.trySet(1, lockTime, TimeUnit.SECONDS)) {
@@ -420,56 +376,6 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
         });
     }
 
-    // 检查云教室
-    private void delayCheckCloudTeacherOrder(TenantOrderRecord record) {
-        RBucket<Object> bucket = redissonClient.getBucket("delay_check_cloud_tenant");
-        if (!bucket.trySet(1, 15L, TimeUnit.SECONDS)) {
-            return;
-        }
-        //异步
-        CompletableFuture.runAsync(() -> {
-            //检查5次
-            Boolean ret;
-            for (int i = 0; i <= 20; i++) { // 检查5分钟
-                try {
-                    ret = cloudTeacherOrderService.payCheck(record, i);
-                    if (ret) break;
-                    Thread.sleep(3000);//每3秒触发一次
-                    log.info("团练宝激活支付 重试>>>>>  start {}", i);
-                } catch (Exception e) {
-                    log.info("团练宝激活支付 异常 : {}", e.toString());
-                    e.printStackTrace();
-                }
-            }
-            bucket.delete();
-        });
-    }
-
-    // 检查机构充值
-    private void delayCheckTenantRecharge(TenantOrderRecord record) {
-        RBucket<Object> bucket = redissonClient.getBucket("delay_check_recharge_tenant");
-        if (!bucket.trySet(1, 15L, TimeUnit.SECONDS)) {
-            log.info("executePayment bucket retryset >>>>> ");
-            return;
-        }
-        //异步
-        CompletableFuture.runAsync(() -> {
-            //检查5次
-            for (int i = 0; i <= 20; i++) { // 检查5分钟
-                try {
-                    Boolean ret = tenantOrderRecordService.rechargeCheck(record, i);
-                    if (ret) break;
-                    Thread.sleep(3000); // 每3秒触发一次
-                    log.info("机构充值 重试 >>>>>  start {}", i);
-                } catch (InterruptedException e) {
-                    log.info("机构充值 异常 >>>>>  start {}", e.toString());
-                    return;
-                }
-            }
-            bucket.delete();
-        });
-    }
-
     static class PaymentParam {
         private BigDecimal amount;
         private String orderNo;

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -771,7 +771,11 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         }
         result.put("amount", amount);
         result.put("orderNo", orderNo);
-        createOrderRecord(tenantId, amount, orderNo, tenantEnum, orderState, WrapperUtil.toStr(result, "routingMerNos"));
+        TenantOrderRecord orderRecord = createOrderRecord(tenantId, amount, orderNo, tenantEnum, orderState, WrapperUtil.toStr(result, "routingMerNos"));
+        if (orderState == 1) {
+            //0元支付成功后直接成功
+            tenantOrderRecordService.rechargeSuccess(orderRecord);
+        }
         log.info("tenant pay >>>>> {} ", result);
         return result;
     }

+ 87 - 60
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
 import com.ym.mec.biz.dal.dao.TenantOrderRecordDao;
 import com.ym.mec.biz.dal.dto.TenantOrderRecordDto;
 import com.ym.mec.biz.dal.entity.*;
@@ -12,12 +13,14 @@ import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
 import com.ym.mec.biz.dal.enums.TenantOrderRecordEnum;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
+import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.joda.time.LocalDateTime;
@@ -27,6 +30,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -58,6 +62,12 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
     private TenantConfigService tenantConfigService;
     @Autowired
     private SysMessageService sysMessageService;
+    @Autowired
+    private CloudTeacherOrderDao cloudTeacherOrderDao;
+    @Autowired
+    private CloudTeacherOrderService cloudTeacherOrderService;
+    @Autowired
+    private StudentService studentService;
     //订单不存在
     private static final String PAYMENT_ID_NOT_EXISTS = "payment_id_not_exists";
 
@@ -68,6 +78,10 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         checkOrder.put(TenantOrderRecordEnum.TENANT_OPEN.getCode(), this::open);
         //续费
         checkOrder.put(TenantOrderRecordEnum.TENANT_RENEW.getCode(), this::renew);
+        //激活团练宝
+        checkOrder.put(TenantOrderRecordEnum.CLOUD_TEACHER.getCode(), this::activeCloudTeacher);
+        //充值
+        checkOrder.put(TenantOrderRecordEnum.TENANT_RECHARGE.getCode(), this::rechargeSuccess);
     }
 
     @Override
@@ -89,6 +103,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
      * @param orderNo 我方订单编号
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> checkTenantOrder(String orderNo) {
         TenantOrderRecord orderRecord = this.getOne(new WrapperUtil<TenantOrderRecord>()
                 .hasEq("order_no_", orderNo).queryWrapper());
@@ -96,6 +111,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> checkTenantOrder(TenantOrderRecord orderRecord) {
         return getTenantOrderState(orderRecord);
     }
@@ -103,7 +119,6 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
     private Map<String, Object> getTenantOrderState(TenantOrderRecord orderRecord) {
         //主动去第三方查询订单状态
         checkTransOrderState(orderRecord);
-
         //返回
         Map<String, Object> result = new HashMap<>();
         result.put("groupType", orderRecord.getOrderType());
@@ -119,7 +134,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         //查询该机构的财务公章
         TenantConfig tenantConfig = tenantConfigService.getOne(new QueryWrapper<TenantConfig>()
                 .eq("tenant_id_", orderRecord.getTenantId()));
-        result.put("financeChops",tenantConfig.getCorporateFinanceChops());
+        result.put("financeChops", tenantConfig.getCorporateFinanceChops());
 
         log.info("checkTenantOrder  getOrderState>>>>> {}", JSON.toJSONString(orderRecord));
         getOrderState(orderRecord, result);
@@ -128,6 +143,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void checkTenantOrder() {
         RBucket<Object> bucket = redissonClient.getBucket("tenant_check_order");
         if (!bucket.trySet(1, 3L, TimeUnit.SECONDS)) {
@@ -157,6 +173,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         bucket.delete();
     }
 
+    //开通成功
     private void open(TenantOrderRecord record) {
         //机构产品信息
         TenantProductInfo productInfo = tenantProductInfoService.getOne(new WrapperUtil<TenantProductInfo>()
@@ -172,6 +189,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         tenantProductInfoService.updateById(productInfo);
     }
 
+    //续费成功
     private void renew(TenantOrderRecord record) {
         //机构产品信息
         TenantProductInfo productInfo = tenantProductInfoService.getOne(new WrapperUtil<TenantProductInfo>()
@@ -181,7 +199,66 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         Integer val = bucket.get();
         //修改产品信息
         tenantInfoService.renewSuccess(val, productInfo, record.getActualAmount());
-        //删除订单数据及订单缓存
+    }
+
+    //激活团练宝成功
+    @Autowired
+    @Transactional(rollbackFor = Exception.class)
+    public void activeCloudTeacher(TenantOrderRecord record) {
+        if (record.getId() == null) {
+            throw new BizException("订单未找到");
+        }
+        record.setPayDate(new Date());
+        record.setPayTime(new Date());
+        updateById(record);
+        List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderDao.findByPlatformOrderId(record.getId());
+        Date startTime = DateUtil.trunc(new Date());
+        Date endTime = new Date();
+        for (CloudTeacherOrder cto : cloudTeacherOrders) {
+            endTime = cloudTeacherOrderService.calcCloudTeacherOrderTime(cto, startTime, endTime);
+            cto.setStartTime(startTime);
+            cto.setEndTime(endTime);
+            cto.setStatus(2);
+            cloudTeacherOrderDao.update(cto);
+            studentService.updateMemberRank(cto.getStudentId(), cto.getType(), cto.getTime(), 1);
+        }
+        //发信息
+        cloudTeacherOrderService.sendSms(record);
+    }
+
+    //充值成功
+    @Autowired
+    @Transactional(rollbackFor = Exception.class)
+    public void rechargeSuccess(TenantOrderRecord record) {
+        // 更新 tenantAssetsInfo
+        log.info("checkRechargeCheck  updateAmount>>>>>");
+        int ret = assetsInfoService.updateAmount(record.getTenantId(), record.getExpectAmount());
+        if (ret != 1) {
+            throw new BizException("更新支付失败");
+        }
+        record.setPayDate(new Date());
+        record.setPayTime(new Date());
+        baseMapper.updateById(record); // 添加支付时间
+        // 取余额
+        TenantAssetsInfo assets = assetsInfoService.getOne(new WrapperUtil<TenantAssetsInfo>()
+                .hasEq("tenant_id_", record.getTenantId()).queryWrapper());
+        TenantInfo tenantInfo = tenantInfoService.getOne(new WrapperUtil<TenantInfo>()
+                .hasEq("id_", record.getTenantId()).queryWrapper());
+        Integer receiveUserId = tenantInfo.getUserId();
+        String email = tenantInfo.getEmail();
+
+        Object[] objs = {tenantInfo.getName(), record.getActualAmount(), assets.getBalance()};
+
+        // 发邮件, 发短信
+        Map<Integer, String> sendPar = new HashMap<>();
+        sendPar.put(receiveUserId, email);
+        log.info("platformSendToAll 充值成功发送邮件  >>> receiveUserId {} email {} objs {} sendPar {}", receiveUserId, email, objs, sendPar);
+        sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TENANT_RECHARGE, sendPar, null, 0, null, "SYSTEM", objs);
+
+        Map<Integer, String> sendPar2 = new HashMap<>();
+        sendPar2.put(receiveUserId, email);
+        log.info("platformSendToAll 充值成功发送邮件分发器  >>> receiveUserId {} email {} objs {} sendPar {}", receiveUserId, email, objs, sendPar2);
+        sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.EMAIL, MessageTypeEnum.EMAIL_TENANT_RECHARGE, sendPar2, null, 0, null, "SYSTEM", objs);
     }
 
     //主动去第三方查询订单状态
@@ -210,7 +287,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
                         }
                     }
                 }
-                log.info("    >>>>> checkTenantOrder  payment >>>>> {}", payment);
+                log.info("    >>>>> checkTenantOrder orderType {} payment >>>>> {}", orderRecord.getOrderType(), payment);
                 log.info("    >>>>> checkTenantOrder  orderRecord >>>>> {}", JSON.toJSONString(orderRecord));
             } catch (Exception e) {
                 log.error("    >>>>> checkTenantOrder  payment error>>>>> {}", JSON.toJSONString(orderRecord));
@@ -226,9 +303,12 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         switch (orderRecord.getOrderState()) {
             case 1:
                 tenantOrderSuccess(orderRecord, detail);
-
-                checkOrder.get(orderRecord.getOrderType()).accept(orderRecord);
-
+                Consumer<TenantOrderRecord> consumer = checkOrder.get(orderRecord.getOrderType());
+                if (Objects.isNull(consumer)) {
+                    code = DealStatusEnum.ING.getCode();
+                    break;
+                }
+                consumer.accept(orderRecord);
                 code = DealStatusEnum.SUCCESS.getCode();
                 LocalDateTime now = LocalDateTime.now();
                 orderRecord.setPayDate(now.toLocalDate().toDate());
@@ -262,59 +342,6 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         detail.put("num", productInfo.getExpiryCount());
     }
 
-    private void rechargeSuccess(TenantOrderRecord record) throws Exception {
-        // 更新 tenantAssetsInfo
-        log.info("checkRechargeCheck  updateAmount>>>>>");
-        int ret = assetsInfoService.updateAmount(record.getTenantId(), record.getExpectAmount());
-        if (ret != 1) {
-            throw new Exception("更新支付失败");
-        }
-        record.setPayDate(new Date());
-        record.setPayTime(new Date());
-        baseMapper.updateById(record); // 添加支付时间
-        // 取余额
-        TenantAssetsInfo assets = assetsInfoService.getOne(new WrapperUtil<TenantAssetsInfo>().hasEq("tenant_id_", record.getTenantId()).queryWrapper());
-        TenantInfo tenantInfo = tenantInfoService.getOne(new WrapperUtil<TenantInfo>().hasEq("id_", record.getTenantId()).queryWrapper());
-        Integer receiveUserId = tenantInfo.getUserId();
-        String email = tenantInfo.getEmail();
-
-        Object[] objs = {tenantInfo.getName(), record.getActualAmount(), assets.getBalance()};
-
-        // 发邮件, 发短信
-        Map<Integer, String> sendPar = new HashMap<>();
-        sendPar.put(receiveUserId, email);
-        log.info("platformSendToAll 充值成功发送邮件  >>> receiveUserId {} email {} objs {} sendPar {}", receiveUserId, email, objs, sendPar);
-        sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TENANT_RECHARGE, sendPar, null, 0, null, "SYSTEM", objs);
-
-        Map<Integer, String> sendPar2 = new HashMap<>();
-        sendPar2.put(receiveUserId, email);
-        log.info("platformSendToAll 充值成功发送邮件分发器  >>> receiveUserId {} email {} objs {} sendPar {}", receiveUserId, email, objs, sendPar2);
-        sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.EMAIL, MessageTypeEnum.EMAIL_TENANT_RECHARGE, sendPar2, null, 0, null, "SYSTEM", objs);
-
-
-    }
 
-    @Override
-    public Boolean rechargeCheck(TenantOrderRecord record, int i) {
-        RBucket<Object> bucket = redissonClient.getBucket("tenant_check_recharge");
-        if (!bucket.trySet(1, 3L, TimeUnit.SECONDS)) {
-            return false;
-        }
-        log.info("    机构充值 {} rechargeCheck>>>>>", i);
-        checkTransOrderState(record);
-        if (record.getOrderState() == 1) {
-            baseMapper.updateById(record);
-            try {
-                log.info("    机构充值 {} rechargeSuccess>>>>>", i);
-                this.rechargeSuccess(record); // 充值成功
-                return true;
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
-        }
-        bucket.delete();
-        return false;
-    }
 }
 

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/page/WrapperUtil.java

@@ -168,7 +168,7 @@ public class WrapperUtil<T> {
      * 包含返回true
      */
     public static boolean checkStr(String o, String... str) {
-        if (ObjPredicate.test(str)) {
+        if (StrPredicate.test(o) && ObjPredicate.test(str)) {
             return Arrays.asList(str).contains(o);
         } else {
             return false;

+ 1 - 6
mec-web/src/main/java/com/ym/mec/web/controller/CloudTeacherOrderController.java

@@ -1,12 +1,10 @@
 package com.ym.mec.web.controller;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.ym.mec.biz.dal.entity.CloudTeacherStudent;
 import com.ym.mec.biz.dal.entity.TenantOrderRecord;
 import com.ym.mec.biz.dal.page.CloudTeacherAddQueryInfo;
 import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
 import com.ym.mec.biz.service.CloudTeacherOrderService;
-import com.ym.mec.biz.service.OrderPayOpsService;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.biz.service.TenantOrderRecordService;
 import com.ym.mec.common.controller.BaseController;
@@ -16,13 +14,10 @@ import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -94,7 +89,7 @@ public class CloudTeacherOrderController extends BaseController {
     @ApiOperation(value = "轮询查询订单状态")
     @GetMapping("/payCheck")
     @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/payCheck')")
-    public HttpResponseResult<Boolean> payCheck(@RequestParam String orderNo) throws Exception {
+    public HttpResponseResult<Boolean> payCheck(@RequestParam String orderNo) {
         return succeed(cloudTeacherOrderService.payCheck(orderNo));
     }