yonge 5 years ago
parent
commit
5494c57022

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageDao.java

@@ -39,5 +39,5 @@ public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
 	/**
 	 * 修改单个消息状态
 	 */
-	public int updateOneStatus(@Param("id") Integer id, @Param("status") int status);
+	public int updateOneStatus(@Param("id") Long id, @Param("status") int status);
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMessage.java

@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.ym.mec.biz.dal.enums.SendStatusEnum;
-import com.ym.mec.biz.dal.enums.SendTypeEnum;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
 
 /**
  * 对应数据库表(sys_message):
@@ -25,7 +25,7 @@ public class SysMessage {
 	
 	/** 消息类型;1,表示短信;2,表示邮件; 3,app推送消息 */
 	@ApiModelProperty(value = "消息类型",required = false)
-	private SendTypeEnum type;
+	private MessageSendMode type;
 	
 	/** 状态,-1,发送失败;0,待发送;1,发送中;2,发送完成 */
 	@ApiModelProperty(value = "状态",required = false)
@@ -141,11 +141,11 @@ public class SysMessage {
 		return this.memo;
 	}
 
-	public SendTypeEnum getType() {
+	public MessageSendMode getType() {
 		return type;
 	}
 
-	public void setType(SendTypeEnum type) {
+	public void setType(MessageSendMode type) {
 		this.type = type;
 	}
 

+ 12 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMessageConfig.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.ym.mec.common.enums.BaseEnum;
@@ -10,18 +11,23 @@ import com.ym.mec.common.enums.BaseEnum;
 public class SysMessageConfig {
 
 	public enum MessageType implements BaseEnum<String, MessageType> {
-
-		;
-
-		private String code;
+		USER_REGISTER("用户注册");
 
 		private MessageType(String code) {
-			this.code = code;
 		}
 
 		@Override
 		public String getCode() {
-			return code;
+			return name();
+		}
+
+		public static MessageType getMessageType(String name) {
+			for (MessageType type : MessageType.values()) {
+				if (StringUtils.equals(type.name(), name)) {
+					return type;
+				}
+			}
+			return null;
 		}
 
 	}

+ 23 - 21
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageSendMode.java

@@ -1,34 +1,36 @@
 package com.ym.mec.biz.dal.enums;
 
-public enum MessageSendMode {
+import com.ym.mec.common.enums.BaseEnum;
 
-	// 短信
-	SMS(1),
-	// 邮件
-	EMAIL(2),
-	// app推送
-	PUSH(3);
+/**
+ 状态,1,表示短信;2,表示邮件; 3,app推送消息
+ */
+public enum MessageSendMode implements BaseEnum<Integer, MessageSendMode> {
+	SMS(1, "短信"), EMAIL(2, "邮件"), PUSH(3, "app推送消息");
 
-	private int index;
+	private Integer code;
 
-	private MessageSendMode(int index) {
-		this.index = index;
+	private String msg;
+
+	MessageSendMode(Integer code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(Integer code) {
+		this.code = code;
 	}
 
-	public int getIndex() {
-		return index;
+	public String getMsg() {
+		return msg;
 	}
 
-	public void setIndex(int index) {
-		this.index = index;
+	public void setMsg(String msg) {
+		this.msg = msg;
 	}
 
-	public static MessageSendMode getMessageSendMode(int index) {
-		for (MessageSendMode mode : values()) {
-			if (mode.getIndex() == index) {
-				return mode;
-			}
-		}
-		return null;
+	@Override
+	public Integer getCode() {
+		return this.code;
 	}
 }

+ 0 - 36
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SendTypeEnum.java

@@ -1,36 +0,0 @@
-package com.ym.mec.biz.dal.enums;
-
-import com.ym.mec.common.enums.BaseEnum;
-
-/**
- 状态,1,表示短信;2,表示邮件; 3,app推送消息
- */
-public enum SendTypeEnum implements BaseEnum<Integer, SendTypeEnum> {
-	SMS(1, "短信"), EMAIL(2, "邮件"), PUSH(3, "app推送消息");
-
-	private Integer code;
-
-	private String msg;
-
-	SendTypeEnum(Integer code, String msg) {
-		this.code = code;
-		this.msg = msg;
-	}
-
-	public void setCode(Integer code) {
-		this.code = code;
-	}
-
-	public String getMsg() {
-		return msg;
-	}
-
-	public void setMsg(String msg) {
-		this.msg = msg;
-	}
-
-	@Override
-	public Integer getCode() {
-		return this.code;
-	}
-}

+ 65 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysMessageQueryInfo.java

@@ -0,0 +1,65 @@
+package com.ym.mec.biz.dal.page;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class SysMessageQueryInfo extends QueryInfo {
+
+	/** 状态,0,待发送;1,发送中;2,发送完成 */
+	@ApiModelProperty(value = "状态,0,待发送;1,发送中;2,发送完成 ",required = false)
+	private Integer status;
+
+	@ApiModelProperty(value = "接收人编号",required = false)
+	private String receiver;
+
+	@ApiModelProperty(value = "发送人编号",required = false)
+	private Integer userId;
+
+	@ApiModelProperty(value = "标题",required = false)
+	private String title;
+
+	@ApiModelProperty(value = "消息类型;1,表示短信;2,表示邮件; 3,app推送消息",required = false)
+	private Integer type;
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public String getReceiver() {
+		return receiver;
+	}
+
+	public void setReceiver(String receiver) {
+		this.receiver = receiver;
+	}
+
+	public Integer getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Integer userId) {
+		this.userId = userId;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+}

+ 7 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -5,7 +5,7 @@ import java.util.Date;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
 import com.ym.mec.biz.dal.enums.SendStatusEnum;
-import com.ym.mec.biz.dal.enums.SendTypeEnum;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 
@@ -25,7 +25,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param memo 备注
 	 * @return
 	 */
-	public int addMessage(Integer userId, String subject, String content, String receivers, Date triggerTime, SendTypeEnum mode, SendStatusEnum status,
+	public int addMessage(Integer userId, String subject, String content, String receivers, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
 			String errorMsg, Integer readStatus, String memo);
 
 	/**
@@ -45,7 +45,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param triggerTime 触发时间
 	 * @return
 	 */
-	public boolean batchSendMessage(MessageSender messageSender, SendTypeEnum mode, String subject, String content, String receivers, Date triggerTime,
+	public boolean batchSendMessage(MessageSender messageSender, MessageSendMode mode, String subject, String content, String receivers, Date triggerTime,
 			Integer readStatus, String memo);
 
 	/**
@@ -61,7 +61,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param args 参数
 	 * @return
 	 */
-	public void sendMessage(MessageSender messageSender, Integer userId, SendTypeEnum mode, MessageType messageType, String receiver, Date triggerTime,
+	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType messageType, String receiver, Date triggerTime,
 			Integer readStatus, String url, Object... args);
 
 	/**
@@ -77,7 +77,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param url 超链接地址
 	 * @return
 	 */
-	public void sendMessage(MessageSender messageSender, Integer userId, SendTypeEnum mode, String title, String content, String receiver, Date triggerTime,
+	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, String title, String content, String receiver, Date triggerTime,
 			Integer readStatus, String url);
 
 	/**
@@ -89,7 +89,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param receiver 消息接受者
 	 * @return
 	 */
-	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, SendTypeEnum mode, MessageType messageType, String receiver);
+	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType messageType, String receiver);
 
 	/**
 	 * 获取已经发送的验证码
@@ -124,6 +124,6 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	/**
 	 * 修改单条消息状态
 	 */
-	public int updateOneStatus(Integer id, int status);
+	public int updateOneStatus(Long id, int status);
 
 }

+ 9 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -10,7 +10,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
@@ -20,8 +19,8 @@ import com.ym.mec.biz.dal.dao.SysMessageDao;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
 import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.enums.SendStatusEnum;
-import com.ym.mec.biz.dal.enums.SendTypeEnum;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -48,11 +47,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
-
-	@Autowired
-	private RedisTemplate<String,Object> redisTemplate;
 	
-	private RedisCache<String,Object> redisCache = new RedisCache<String, Object>(redisTemplate);
+	@Autowired
+	private RedisCache<String,Object> redisCache;
 
 	// 验证码有效期
 	public static final int CODE_EXPIRE = 60 * 5;
@@ -71,7 +68,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public int addMessage(Integer userId, String subject, String content, String receivers, Date triggerTime, SendTypeEnum mode, SendStatusEnum status,
+	public int addMessage(Integer userId, String subject, String content, String receivers, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
 			String errorMsg, Integer readStatus, String memo) {
 		SysMessage message = null;
 		Date date = new Date();
@@ -116,7 +113,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@Async
-	public boolean batchSendMessage(MessageSender messageSender, SendTypeEnum mode, String subject, String content, String receivers, Date triggerTime,
+	public boolean batchSendMessage(MessageSender messageSender, MessageSendMode mode, String subject, String content, String receivers, Date triggerTime,
 			Integer readStatus, String memo) {
 
 		if (StringUtils.isBlank(receivers)) {
@@ -154,7 +151,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@Async
-	public void sendMessage(MessageSender messageSender, Integer userId, SendTypeEnum mode, MessageType type, String receiver, Date triggerTime,
+	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType type, String receiver, Date triggerTime,
 			Integer readStatus, String url, Object... args) {
 
 		if (StringUtils.isBlank(receiver)) {
@@ -190,7 +187,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@Async
-	public void sendMessage(MessageSender messageSender, Integer userId, SendTypeEnum mode, String title, String content, String receiver, Date triggerTime,
+	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, String title, String content, String receiver, Date triggerTime,
 			Integer readStatus, String url) {
 		if (StringUtils.isBlank(receiver)) {
 			throw new BizException("接收地址不能为空");
@@ -217,7 +214,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, SendTypeEnum mode, MessageType messageType, String receiver) {
+	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType messageType, String receiver) {
 		String key1 = getVerificationCode1CacheKey(messageType, receiver);
 		if (redisCache.get(key1) != null) {
 			throw new BizException("请勿频繁操作,获取验证码间隔时间为60秒");
@@ -289,7 +286,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public int updateOneStatus(Integer id, int status) {
+	public int updateOneStatus(Long id, int status) {
 		return sysMessageDao.updateOneStatus(id, status);
 	}
 }

+ 1 - 2
mec-biz/src/main/resources/config/mybatis/SysMessageConfigMapper.xml

@@ -99,8 +99,7 @@
 	</select>
 
 	<select id="queryByType" resultMap="SysMessageConfig">
-		select *
-		from xjd_message_config
+		select * from sys_message_config
 		where message_type_ = #{messageType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	</select>
 </mapper>

+ 6 - 6
mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml

@@ -66,8 +66,8 @@
 		modify_on_)
 		values (#{id,jdbcType=BIGINT},#{userId,jdbcType=BIGINT}, #{title,jdbcType=VARCHAR},
 		#{content,jdbcType=VARCHAR},
-		#{type,jdbcType=TINYINT},
-		#{status,jdbcType=TINYINT}, #{receiver,jdbcType=VARCHAR},
+		#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+		#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{receiver,jdbcType=VARCHAR},
 		#{sendTime},#{errorMsg,jdbcType=VARCHAR},#{readStatus},#{memo},
 		#{createOn},
 		#{modifyOn})
@@ -85,8 +85,8 @@
 			(
 			#{item.id,jdbcType=BIGINT},#{item.userId,jdbcType=BIGINT}, #{item.title,jdbcType=VARCHAR},
 			#{item.content,jdbcType=VARCHAR},
-			#{item.type,jdbcType=TINYINT},
-			#{item.status,jdbcType=TINYINT}, #{item.receiver,jdbcType=VARCHAR},
+			#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			#{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{item.receiver,jdbcType=VARCHAR},
 			#{item.sendTime},#{item.errorMsg,jdbcType=VARCHAR},#{item.readStatus},#{item.memo},
 			#{item.createOn},
 			#{item.modifyOn}
@@ -107,10 +107,10 @@
 				content_ = #{content,jdbcType=VARCHAR},
 			</if>
 			<if test="type != null">
-				type_ = #{type,jdbcType=TINYINT},
+				type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="status != null">
-				status_ = #{status,jdbcType=TINYINT},
+				status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="receiver != null">
 				receiver_ = #{receiver,jdbcType=VARCHAR},

+ 14 - 0
mec-student/src/main/java/com/ym/mec/student/StudentApplication.java

@@ -1,17 +1,21 @@
 package com.ym.mec.student;
 
 import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.client.loadbalancer.LoadBalanced;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.client.RestTemplate;
 
 import com.spring4all.swagger.EnableSwagger2Doc;
+import com.ym.mec.common.redis.service.RedisCache;
 
 @SpringBootApplication
 @EnableDiscoveryClient
@@ -21,6 +25,10 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 @Configuration
 @EnableSwagger2Doc
 public class StudentApplication {
+
+	@Autowired
+	private RedisTemplate<String, Object> redisTemplate;
+
 	public static void main(String[] args) {
 		SpringApplication.run(StudentApplication.class, args);
 	}
@@ -30,4 +38,10 @@ public class StudentApplication {
 	public RestTemplate restTemplate() {
 		return new RestTemplate();
 	}
+
+	@Bean
+	@ConditionalOnBean(RedisTemplate.class)
+	public RedisCache<String, Object> redisCache() {
+		return new RedisCache<String, Object>(redisTemplate);
+	}
 }

+ 130 - 0
mec-student/src/main/java/com/ym/mec/student/controller/SysMessageController.java

@@ -0,0 +1,130 @@
+package com.ym.mec.student.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.io.IOException;
+
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.SysMessage;
+import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
+import com.ym.mec.util.validator.CommonValidator;
+
+@RestController
+@Api(tags = "消息服务")
+@RequestMapping("sysMessage")
+public class SysMessageController extends BaseController {
+
+	@Autowired
+	private SysMessageService sysMessageService;
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation("获取所有消息列表")
+	@GetMapping(value = "list")
+	public Object list(SysMessageQueryInfo queryInfo) throws IOException {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		queryInfo.setUserId(sysUser.getId());
+		queryInfo.setType(3);
+		PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
+		return succeed(pageInfo);
+	}
+
+	@ApiOperation("一键已读")
+	@PostMapping("batchSetRead")
+	public Object batchSetRead() {
+		int status = 1;
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return sysMessageService.updateStatus(sysUser.getId(), status) > 0 ? succeed() : failed();
+	}
+
+	@ApiOperation("设置已读")
+	@PostMapping("setRead")
+	public Object setRead(Long id) {
+		int status = 1;
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
+	}
+
+	@ApiOperation(value = "查询用户未读消息条数")
+	@GetMapping("/queryCountOfUnread")
+	public Object queryCountOfUnread() {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("请重新登录");
+		}
+		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
+	}
+
+	@ApiOperation(value = "发送短信验证码")
+	@PostMapping("/sendSmsCode")
+	public Object sendSmsCode(String sendCodeType, String mobileNo) {
+
+		SysUser sysUser;
+
+		if (StringUtils.isBlank(mobileNo)) {
+			sysUser = sysUserFeignService.queryUserInfo();
+		} else {
+			sysUser = sysUserFeignService.getUserByMobile(mobileNo);
+		}
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		Integer userId = sysUser.getId();
+
+		mobileNo = sysUser.getPhone();
+
+		MessageType messageType = MessageType.getMessageType(sendCodeType);
+		if (messageType == null) {
+			throw new BizException("消息类型参数错误");
+		}
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+		sysMessageService.sendSecurityCode(MessageSender.MOXINGTONG, userId, MessageSendMode.SMS, messageType, mobileNo);
+		return succeed();
+	}
+
+	@ApiOperation(value = "发送消息")
+	@PostMapping("/sendMessage")
+	public Object sendMessage(MessageSender messageSender, MessageSendMode sendMode, String content, String receiver, int readStatus, String url) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		Integer userId = sysUser.getId();
+
+		String mobileNo = sysUser.getPhone();
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+		sysMessageService.sendMessage(messageSender, userId, sendMode, "", content, receiver, null, readStatus, url);
+		return succeed();
+	}
+}

+ 97 - 0
mec-util/src/main/java/com/ym/mec/util/validator/CommonValidator.java

@@ -0,0 +1,97 @@
+package com.ym.mec.util.validator;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * 常用验证类,如邮箱,手机格式验证
+ * @author pengdc
+ */
+public class CommonValidator {
+
+	private final static String MOBILE_NO = "^((13[0-9])|(14[5|7|9])|(15[^4,\\D])|(166)|(18[0-9])|(17[0|1|3|5|6|7|8])|(19[8|9]))\\d{8}$";
+
+	private static final String TELEPHONE_NO = "((\\d{10})|(\\d{11})|^((\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})-(\\d{4}|\\d{3}"
+			+ "|\\d{2}|\\d{1})|(\\d{7,8})-(\\d{4}|\\d{3}|\\d{2}|\\d{1}))$)";
+
+	private static final String EMAIL_ADDR = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
+
+	private static final String PWD_CHECK_REGEX = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$";
+
+	private static Pattern mobileNoPattern = Pattern.compile(MOBILE_NO);
+	private static Pattern telephoneNoPattern = Pattern.compile(TELEPHONE_NO);
+	private static Pattern emailAddrPattern = Pattern.compile(EMAIL_ADDR);
+	private static Pattern pwdCheckPattern = Pattern.compile(PWD_CHECK_REGEX);
+
+	/**
+	 * 是否邮箱地址
+	 * @param emailAddr
+	 * @return
+	 */
+	public static boolean isEmailAddr(String emailAddr) {
+		if (StringUtils.isBlank(emailAddr)) {
+			return false;
+		}
+		Matcher matcher = emailAddrPattern.matcher(emailAddr);
+		return matcher.matches();
+	}
+
+	/**
+	 * 是否手机
+	 * @param mobileNo
+	 * @return boolean
+	 */
+	public static boolean isMobileNo(String mobileNo) {
+		if (StringUtils.isBlank(mobileNo)) {
+			return false;
+		}
+		Matcher matcher = mobileNoPattern.matcher(mobileNo);
+		return matcher.matches();
+	}
+
+	/**
+	 * 是否座机
+	 * @param telephoneNo
+	 * @return boolean
+	 */
+	public static boolean isTelephoneNo(String telephoneNo) {
+		if (StringUtils.isBlank(telephoneNo)) {
+			return false;
+		}
+		Matcher matcher = telephoneNoPattern.matcher(telephoneNo);
+		return matcher.matches();
+	}
+
+	/**
+	 * 是否是座机或手机号码
+	 * @param teleOrMobileNo
+	 * @return boolean
+	 */
+	public static boolean isTelephoneOrMobileNo(String teleOrMobileNo) {
+		if (StringUtils.isBlank(teleOrMobileNo)) {
+			return false;
+		}
+		Matcher matcher1 = telephoneNoPattern.matcher(teleOrMobileNo);
+		if (matcher1.matches()) {
+			return true;
+		}
+		Matcher matcher2 = mobileNoPattern.matcher(teleOrMobileNo);
+		return matcher2.matches();
+	}
+
+	/**
+	 * 是否至少包含数字、字母,长度在6-16位的字符串
+	 * @param telephoneNo
+	 * @return boolean
+	 */
+	public static boolean isComplexityOfPwd(String password) {
+		if (StringUtils.isBlank(password)) {
+			return false;
+		}
+		Matcher matcher = pwdCheckPattern.matcher(password);
+		return matcher.matches();
+	}
+
+}

+ 0 - 70
mec-web/src/main/java/com/ym/mec/web/controller/SysMessageController.java

@@ -1,70 +0,0 @@
-package com.ym.mec.web.controller;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.SysMessage;
-import com.ym.mec.biz.service.SysMessageService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
-
-@RequestMapping("message")
-@Api(tags = "消息提醒服务")
-@RestController
-public class SysMessageController extends BaseController {
-
-    @Autowired
-    private SysMessageService sysMessageService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-
-    @ApiOperation(value = "新增消息提醒")
-    @PostMapping("/add")
-    public Object add(SysMessage sysMessage) {
-        sysMessageService.insert(sysMessage);
-        return succeed();
-    }
-
-    @ApiOperation(value = "删除消息提醒")
-    @PostMapping("/del/{id}")
-    @ApiParam(value = "消息提醒编号", required = true)
-    public Object del( @PathVariable("id") Long id) {
-        sysMessageService.delete(id);
-        return succeed();
-    }
-
-    @ApiOperation(value = "修改消息提醒")
-    @PostMapping("/update")
-    public Object update(SysMessage sysMessage) {
-//        sysMessage.setUpdateTime(new Date());
-        sysMessageService.update(sysMessage);
-        return succeed();
-    }
-
-    @ApiOperation(value = "获取用户未读消息条数")
-    @GetMapping("/findNewMessageNum")
-    public Object findNewMessageNum(){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("请重新登录");
-        }
-        return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
-    }
-
-    @ApiOperation(value = "分页查询消息提醒列表")
-    @GetMapping("/queryPage")
-    public Object queryPage(QueryInfo queryInfo) {
-        return succeed(sysMessageService.queryPage(queryInfo));
-    }
-
-}