Joburgess %!s(int64=5) %!d(string=hai) anos
pai
achega
6fad6b011c

+ 7 - 0
edu-auth/edu-auth-api/pom.xml

@@ -30,5 +30,12 @@
 				</exclusion>
 			</exclusions>
 		</dependency>
+
+		<dependency>
+			<groupId>com.keao.edu</groupId>
+			<artifactId>edu-thirdparty</artifactId>
+			<version>1.0</version>
+			<scope>compile</scope>
+		</dependency>
 	</dependencies>
 </project>

+ 11 - 0
edu-auth/edu-auth-api/src/main/java/com/keao/edu/auth/api/client/SysMessageFeignService.java

@@ -1,10 +1,21 @@
 package com.keao.edu.auth.api.client;
 
 import com.keao.edu.auth.api.client.fallback.SysMessageFeignServiceFallback;
+import com.keao.edu.auth.api.entity.SysMessageParams;
 import com.keao.edu.common.config.FeignConfiguration;
+import com.keao.edu.common.enums.MessageTypeEnum;
+import com.keao.edu.thirdparty.message.MessageSenderPluginContext;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import java.util.Date;
+import java.util.Map;
 
 @FeignClient(contextId = "SysMessageFeignService", name = "auth-server", configuration = { FeignConfiguration.class }, fallback = SysMessageFeignServiceFallback.class)
 public interface SysMessageFeignService {
 
+
+    @GetMapping(value = "sysMessage/batchSendMessage", consumes = MediaType.APPLICATION_JSON_VALUE)
+    void batchSendMessage(SysMessageParams sysMessageParams);
 }

+ 10 - 0
edu-auth/edu-auth-api/src/main/java/com/keao/edu/auth/api/client/fallback/SysMessageFeignServiceFallback.java

@@ -1,9 +1,19 @@
 package com.keao.edu.auth.api.client.fallback;
 
 import com.keao.edu.auth.api.client.SysMessageFeignService;
+import com.keao.edu.auth.api.entity.SysMessageParams;
+import com.keao.edu.common.enums.MessageTypeEnum;
+import com.keao.edu.thirdparty.message.MessageSenderPluginContext;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
+import java.util.Map;
+
 @Component
 public class SysMessageFeignServiceFallback implements SysMessageFeignService {
 
+    @Override
+    public void batchSendMessage(SysMessageParams sysMessageParams) {
+
+    }
 }

+ 95 - 0
edu-auth/edu-auth-api/src/main/java/com/keao/edu/auth/api/entity/SysMessageParams.java

@@ -0,0 +1,95 @@
+package com.keao.edu.auth.api.entity;
+
+import com.keao.edu.common.enums.MessageTypeEnum;
+import com.keao.edu.thirdparty.message.MessageSenderPluginContext;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.07.02
+ */
+public class SysMessageParams {
+
+    private MessageSenderPluginContext.MessageSender messageSender;
+
+    private MessageTypeEnum messageType;
+
+    private Map<Integer, String> receivers;
+
+    private Date triggerTime;
+
+    private Integer readStatus;
+
+    private String url;
+
+    private String jpushType;
+
+    private Object[] args;
+
+    public MessageSenderPluginContext.MessageSender getMessageSender() {
+        return messageSender;
+    }
+
+    public void setMessageSender(MessageSenderPluginContext.MessageSender messageSender) {
+        this.messageSender = messageSender;
+    }
+
+    public MessageTypeEnum getMessageType() {
+        return messageType;
+    }
+
+    public void setMessageType(MessageTypeEnum messageType) {
+        this.messageType = messageType;
+    }
+
+    public Map<Integer, String> getReceivers() {
+        return receivers;
+    }
+
+    public void setReceivers(Map<Integer, String> receivers) {
+        this.receivers = receivers;
+    }
+
+    public Date getTriggerTime() {
+        return triggerTime;
+    }
+
+    public void setTriggerTime(Date triggerTime) {
+        this.triggerTime = triggerTime;
+    }
+
+    public Integer getReadStatus() {
+        return readStatus;
+    }
+
+    public void setReadStatus(Integer readStatus) {
+        this.readStatus = readStatus;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getJpushType() {
+        return jpushType;
+    }
+
+    public void setJpushType(String jpushType) {
+        this.jpushType = jpushType;
+    }
+
+    public Object[] getArgs() {
+        return args;
+    }
+
+    public void setArgs(Object[] args) {
+        this.args = args;
+    }
+}

+ 36 - 0
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/web/controller/SysMessageController.java

@@ -0,0 +1,36 @@
+package com.keao.edu.auth.web.controller;
+
+import com.keao.edu.auth.api.entity.SysMessageParams;
+import com.keao.edu.auth.service.SysMessageService;
+import com.keao.edu.common.controller.BaseController;
+import com.keao.edu.common.enums.MessageTypeEnum;
+import com.keao.edu.thirdparty.message.MessageSenderPluginContext;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.07.02
+ */
+@RestController
+@RequestMapping("sysMessage")
+@Api(tags = "消息推送服务")
+public class SysMessageController extends BaseController {
+
+    @Autowired
+    private SysMessageService sysMessageService;
+
+    @ApiOperation(value = "发送消息")
+    @PostMapping(value = "/batchSendMessage")
+    public void batchSendMessage(@RequestBody SysMessageParams sysMessageParams){
+        sysMessageService.batchSendMessage(sysMessageParams.getMessageSender(), sysMessageParams.getMessageType(), sysMessageParams.getReceivers(),
+                sysMessageParams.getTriggerTime(), sysMessageParams.getReadStatus(), sysMessageParams.getUrl(), sysMessageParams.getJpushType(), sysMessageParams.getArgs());
+    }
+
+}

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamOrganizationRelationController.java

@@ -50,7 +50,7 @@ public class ExamOrganizationRelationController extends BaseController {
     }
 
     @ApiOperation("发送考级报名链接")
-    @GetMapping(value = "/sendUrl")
+    @PostMapping(value = "/sendUrl")
     public HttpResponseResult sendUrl(Integer examId, String organIds){
         examOrganizationRelationService.sendUrl(examId, organIds);
         return succeed();

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/SysConfigService.java

@@ -6,6 +6,8 @@ import com.keao.edu.common.service.BaseService;
 
 public interface SysConfigService extends BaseService<Long, SysConfig> {
 
+    String BASE_API_URL = "base_api_url";
+
     /**
      * @return com.keao.edu.biz.dal.entity.SysConfig
      * @params paramName

+ 30 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -1,8 +1,11 @@
 package com.keao.edu.user.service.impl;
 
 import com.keao.edu.auth.api.client.SysMessageFeignService;
+import com.keao.edu.auth.api.client.SysUserFeignService;
+import com.keao.edu.auth.api.entity.SysMessageParams;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.entity.SysConfig;
 import com.keao.edu.common.enums.MessageTypeEnum;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.page.PageInfo;
@@ -12,6 +15,7 @@ import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.thirdparty.message.MessageSenderPluginContext;
 import com.keao.edu.user.dao.ExamOrganizationRelationDao;
 import com.keao.edu.user.dao.ExaminationBasicDao;
+import com.keao.edu.user.dao.TeacherDao;
 import com.keao.edu.user.entity.ExamOrganizationRelation;
 import com.keao.edu.user.entity.ExaminationBasic;
 import com.keao.edu.user.entity.Organization;
@@ -21,6 +25,7 @@ import com.keao.edu.user.page.ExamOrganizationRelationQueryInfo;
 import com.keao.edu.user.service.ExamOrganizationRelationService;
 import com.keao.edu.user.service.OrganizationService;
 import com.keao.edu.user.service.ShortUrlService;
+import com.keao.edu.user.service.SysConfigService;
 import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.formula.functions.T;
@@ -46,7 +51,11 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 	@Autowired
 	private ShortUrlService shortUrlService;
 	@Autowired
+	private SysUserFeignService sysUserFeignService;
+	@Autowired
 	private SysMessageFeignService sysMessageFeignService;
+	@Autowired
+	private SysConfigService sysConfigService;
 
 	@Override
 	public BaseDAO<Long, ExamOrganizationRelation> getDAO() {
@@ -136,15 +145,31 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 			throw new BizException("考级项目不存在");
 		}
 
+		SysConfig baseUrlConfig = sysConfigService.findByParamName(SysConfigService.BASE_API_URL);
+		String baseUrl="";
+		if(Objects.nonNull(baseUrlConfig)){
+			baseUrl=baseUrlConfig.getParanValue();
+		}
+		baseUrl = baseUrl+"/#/signUp?";
+
 		for (ExamOrganizationRelation examOrgan : examOrgans) {
 			examOrgan.setUrl(shortUrlService.createShortUrl(""));
 			examOrgan.setSendUrlFlag(YesOrNoEnum.YES);
 
-//			SysUser student = teacherDao.getUser(practiceGroup.getStudentId());
-//			Map<Integer, String> userPhoneMap = new HashMap<>();
-//			userPhoneMap.put(practiceGroup.getStudentId(), student.getPhone());
-//			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.EXAM_REGISTRATION_URL_PUSH,
-//					userPhoneMap, null, 0, null, "STUDENT", groupStartTime, groupEndTime, teacherName, drillTimesOnWeek, firstCourseStartTime);
+			String registrationUrl = baseUrl + "organId=" + examOrgan.getOrganId();
+			String registShortUrl = shortUrlService.createShortUrl(registrationUrl);
+
+			SysUser student = sysUserFeignService.queryUserById(examOrgan.getOrganId());
+			Map<Integer, String> userPhoneMap = new HashMap<>();
+			userPhoneMap.put(examOrgan.getOrganId(), student.getPhone());
+
+			SysMessageParams sysMessageParams=new SysMessageParams();
+			sysMessageParams.setMessageSender(MessageSenderPluginContext.MessageSender.YIMEI);
+			sysMessageParams.setMessageType(MessageTypeEnum.EXAM_REGISTRATION_URL_PUSH);
+			sysMessageParams.setReceivers(userPhoneMap);
+			sysMessageParams.setReadStatus(0);
+			sysMessageParams.setArgs(new Object[]{registShortUrl});
+			sysMessageFeignService.batchSendMessage(sysMessageParams);
 		}
 
 		examOrganizationRelationDao.batchUpdate(examOrgans);

+ 8 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ShortUrlServiceImpl.java

@@ -1,10 +1,12 @@
 package com.keao.edu.user.service.impl;
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.entity.SysConfig;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.ShortUrlDao;
 import com.keao.edu.user.entity.ShortUrl;
 import com.keao.edu.user.service.ShortUrlService;
+import com.keao.edu.user.service.SysConfigService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -15,6 +17,8 @@ public class ShortUrlServiceImpl extends BaseServiceImpl<Long, ShortUrl> impleme
 	
 	@Autowired
 	private ShortUrlDao shortUrlDao;
+	@Autowired
+	private SysConfigService sysConfigService;
 
 	@Override
 	public BaseDAO<Long, ShortUrl> getDAO() {
@@ -30,9 +34,10 @@ public class ShortUrlServiceImpl extends BaseServiceImpl<Long, ShortUrl> impleme
 		ShortUrl shortUrl=new ShortUrl(sourceUrl);
 		shortUrlDao.insert(shortUrl);
 
-		String temp=sourceUrl.substring(sourceUrl.indexOf("//")+2);
-		StringBuffer returnUrl=new StringBuffer(sourceUrl.substring(0, sourceUrl.indexOf("//") + temp.indexOf("/") + 2));
-		returnUrl.append("/su/");
+		SysConfig baseUrlConfig = sysConfigService.findByParamName(SysConfigService.BASE_API_URL);
+
+		StringBuffer returnUrl=new StringBuffer(baseUrlConfig.getParanValue());
+		returnUrl.append(":8000/api-user/su/");
 		returnUrl.append(shortUrl.getId());
 
 		return returnUrl.toString();

+ 1 - 1
edu-user/edu-user-server/src/main/resources/application.yml

@@ -29,7 +29,7 @@ spring:
 #    url: jdbc:mysql://47.99.212.176:3306/edu_saas?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
 #    username: edu_saas
 #    password: edu_saas
-    url: jdbc:mysql://47.114.176.40:3306/edu_saas?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://47.114.176.40:3306/edu_saas?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
     username: edu_saas
     password: dayaDataOnline@2019
     # 使用druid数据源

+ 1 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExaminationBasicMapper.xml

@@ -33,7 +33,7 @@
 		SELECT * FROM examination_basic WHERE id_ = #{id}
 	</select>
 
-	<select id="getExaminationBasic" resultMap="ExaminationBasic" >
+	<select id="getExaminationBasic" resultMap="ExaminationBasicDto" >
 		SELECT * FROM examination_basic WHERE id_ = #{examId}
 	</select>