Browse Source

云教练缴费

zouxuan 3 years ago
parent
commit
d92c5d7124

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/interceptor/TenantInterceptor.java

@@ -50,7 +50,7 @@ public class TenantInterceptor extends HandlerInterceptorAdapter {
 				if(tenantInfo != null){
 					request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
 				}else {
-					throw new BizException("机构信息异常,请联系管理员");
+					throw new BizException("机构服务已停用,请联系机构管理员");
 				}
 			}
 		}

+ 9 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudCoachPaymentProgramServiceImpl.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.CloudCoachPaymentProgramService;
 import com.ym.mec.biz.service.MemberFeeSettingService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -15,6 +16,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
+import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -93,15 +95,17 @@ public class CloudCoachPaymentProgramServiceImpl extends BaseServiceImpl<Long, C
 		}else {
 			//推送缴费消息
 			TenantInfo tenantInfo = tenantInfoDao.selectById(cloudCoachPaymentProgram.getTenantId());
-			Map<Integer, String> phoneMaps = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(userIds)));
-			String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
-			String pushUrl = baseApiUrl + "/#/auditionActive/1?groupId=";
+			Map<Integer, String> phoneMaps = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(userIds,",")));
+			String baseApiUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+			StringBuffer pushUrl = new StringBuffer(baseApiUrl).append("/#/studentMember?id=").append(cloudCoachPaymentProgram.getId());
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_CLOUD_PAYMENT,phoneMaps,
-					null,0,"",null,tenantInfo.getName());
+					null,0,"",null,tenantInfo.getName(), HttpUtil.getSortUrl(pushUrl.toString()));
+
+			StringBuffer notifyUrl = new StringBuffer("8?").append(baseApiUrl).append("/#/studentMember?id=").append(cloudCoachPaymentProgram.getId());
 			Map<Integer, String> userIdMaps = new HashMap<>(userIds.size());
 			userIds.forEach(e->userIdMaps.put(e,e.toString()));
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_CLOUD_PAYMENT,userIdMaps,
-					null,0,"","STUDENT",tenantInfo.getName());
+					null,0,notifyUrl.toString(),"STUDENT",tenantInfo.getName());
 		}
 	}
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -113,12 +113,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		Long paymentId = memberPayParamDto.getPaymentId();
 		CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(paymentId);
 		if(cloudCoachPaymentProgram == null){
-			throw new BizException("云教练订单不存在,请联系指导老师");
+			throw new BizException("云教练缴费订单不存在,请联系指导老师");
 		}
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		StudentCloudCoachPaymentDetails cloudCoachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(paymentId,sysUser.getId());
 		if(cloudCoachPaymentDetails == null){
-			throw new BizException("云教练订单不存在该学员,请联系指导老师");
+			throw new BizException("您不在当前云教练缴费项目中,请联系指导老师");
 		}
 		if(cloudCoachPaymentDetails.getPaymentStatus() == 1){
 			throw new BizException("当前云教练订单已支付,感谢您的支持");
@@ -242,8 +242,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
 		// 支付成功
 		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
-			StudentCloudCoachPaymentDetails coachPaymentDetails = studentCloudCoachPaymentDetailsService.get(Long.parseLong(studentPaymentOrder.getMusicGroupId()));
-			CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(coachPaymentDetails.getCloudCoachPaymentProgramId());
+			CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(Long.parseLong(studentPaymentOrder.getMusicGroupId()));
+			StudentCloudCoachPaymentDetails coachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(cloudCoachPaymentProgram.getId(),studentPaymentOrder.getUserId());
 			//保存云教练数据
 			CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
 			cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());

+ 8 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -12,6 +12,9 @@ import java.util.Map.Entry;
 import java.util.Objects;
 import java.util.Random;
 import java.util.Set;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -390,10 +393,13 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	@Async
 	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
 			String url,String jpushType, Object... args) {
-		batchSendMessage(TenantContextHolder.getTenantId(), messageSender, type, receivers, triggerTime, readStatus, url, jpushType, args);
+		ExecutorService executor = Executors.newFixedThreadPool(5);
+		CompletableFuture.runAsync(()->{
+			batchSendMessage(TenantContextHolder.getTenantId(), messageSender, type, receivers, triggerTime, readStatus, url, jpushType, args);
+		},executor);
+		executor.shutdown();
 	}
 
 

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

@@ -810,7 +810,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
                 if (tenantInfo != null) {
                     request.setAttribute("datasourceId", tenantInfo.getDataSource());
                 } else {
-                    throw new BizException("机构信息异常,请联系管理员");
+                    throw new BizException("机构服务已停用,请联系机构管理员");
                 }
             }
         }

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml

@@ -485,6 +485,16 @@
             </if>
         </where>
     </sql>
+
+    <insert id="batchInsert">
+        INSERT INTO cloud_teacher_order (organ_id_,student_id_, type_, level_, time_, amount_,status_,
+        remark_,create_time_, update_time_,tenant_id_)
+        VALUES
+        <foreach collection="userIds" item="userId" separator=",">
+            (#{bean.organId},#{userId},#{bean.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{bean.level},
+            #{bean.time}, #{bean.amount},#{bean.status},#{bean.remark},NOW(),NOW(),#{bean.tenantId})
+        </foreach>
+    </insert>
     
     <select id="queryByUserIdAndStatus" resultMap="CloudTeacherOrder">
         select cto.* from cloud_teacher_order cto where cto.student_id_ = #{userId} and cto.status_ = #{status}

+ 18 - 1
mec-student/src/main/java/com/ym/mec/student/controller/CloudCoachPaymentProgramController.java

@@ -1,10 +1,15 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.CloudCoachPaymentProgram;
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
+import com.ym.mec.biz.dal.entity.StudentCloudCoachPaymentDetails;
 import com.ym.mec.biz.service.CloudCoachPaymentProgramService;
 import com.ym.mec.biz.service.MemberRankSettingService;
+import com.ym.mec.biz.service.StudentCloudCoachPaymentDetailsService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,11 +26,23 @@ public class CloudCoachPaymentProgramController extends BaseController {
     private CloudCoachPaymentProgramService cloudCoachPaymentProgramService;
     @Autowired
     private MemberRankSettingService memberRankSettingService;
+    @Autowired
+    private StudentCloudCoachPaymentDetailsService studentCloudCoachPaymentDetailsService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
-    @ApiOperation(value = "新增")
+    @ApiOperation(value = "获取明细")
     @PostMapping("/get")
     public Object get(Long id){
         CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(id);
+        if(cloudCoachPaymentProgram == null){
+            throw new BizException("云教练缴费项目不存在,请联系指导老师");
+        }
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        StudentCloudCoachPaymentDetails studentCloudCoachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(id, sysUser.getId());
+        if(studentCloudCoachPaymentDetails == null){
+            throw new BizException("您不在当前云教练缴费项目中,请联系指导老师");
+        }
         MemberRankSetting memberRankSetting = memberRankSettingService.get(cloudCoachPaymentProgram.getMemberRankSettingId());
         cloudCoachPaymentProgram.setMemberIntro(memberRankSetting.getIntro());
         return succeed(cloudCoachPaymentProgram);