Browse Source

新增:短信验证码接口

修改:/message/sms/send接口,由表单形式修改为json形式
dev
wxz 5 years ago
parent
commit
bb35320ee0
  1. 5
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
  2. 3
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/SysSmsDTO.java
  3. 23
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java
  4. 24
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/feign/MessageFeignClient.java
  5. 21
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java
  6. 7
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java
  7. 34
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java

5
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java

@ -63,4 +63,9 @@ public interface ServiceConstant {
* 党员认证热心居民申请端访问权限控制
*/
String RESI_PARTYMEMBER_SERVER = "resi-partymember-server";
/**
* 消息服务
*/
String EPMET_MESSAGE_SERVER = "epmet-message-server";
}

3
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/SysSmsDTO.java

@ -52,4 +52,7 @@ public class SysSmsDTO implements Serializable {
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "参数列表")
private String params;
}

23
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java

@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/**
@ -100,9 +101,8 @@ public class SmsController {
@ApiImplicitParam(name = "mobile", value = "手机好号", paramType = "query", required = true, dataType="String"),
@ApiImplicitParam(name = "params", value = "参数", paramType = "query", required = true, dataType="String")
})
public Result send(String mobile, String params){
sysSmsService.send(mobile, params);
public Result send(@RequestBody SysSmsDTO sysSmsDTO){
sysSmsService.send(sysSmsDTO.getMobile(), sysSmsDTO.getParams());
return new Result();
}
@ -115,4 +115,21 @@ public class SmsController {
return new Result();
}
/**
* 发送短信验证码
* @return
*/
@PostMapping("captcha")
@ApiOperation("发送短信验证码")
//@LogOperation("发送短信验证码")
@ApiImplicitParams({
@ApiImplicitParam(name = "mobile", value = "手机号", paramType = "query", required = true, dataType="String")
})
public Result sendSmsCaptcha(@RequestBody SysSmsDTO sysSmsDTO) {
String mobile = sysSmsDTO.getMobile();
String captcha = sysSmsService.sendSmsCaptcha(mobile);
HashMap<String, String> map = new HashMap<>();
map.put("code", captcha);
return new Result().ok(map);
}
}

24
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/feign/MessageFeignClient.java

@ -0,0 +1,24 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO;
import com.epmet.feign.fallback.MessageFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallback = MessageFeignClientFallback.class, url = "http://localhost:8085")
public interface MessageFeignClient {
/**
* 发送短信
* @return
*/
@PostMapping(value = "message/sms/send")
Result send(@RequestBody SysSmsDTO smsDTO);
//@PostMapping(value = "message/sms/send", consumes = "application/x-www-form-urlencoded")
//Result send(Map<String, String> entityBody);
}

21
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java

@ -0,0 +1,21 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO;
import com.epmet.feign.MessageFeignClient;
import org.springframework.stereotype.Component;
/**
* 消息服务降级
*/
@Component
public class MessageFeignClientFallback implements MessageFeignClient {
@Override
public Result send(SysSmsDTO smsDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "send", smsDTO);
}
}

7
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java

@ -40,5 +40,12 @@ public interface SysSmsService extends BaseService<SysSmsEntity> {
* @param status 发送状态
*/
void save(Integer platform, String mobile, LinkedHashMap<String, String> params, Integer status);
/**
* 发送短信验证码
* @param mobile
* @return
*/
String sendSmsCaptcha(String mobile);
}

34
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java

@ -16,23 +16,29 @@ import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.exception.ErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.SysSmsDao;
import com.epmet.dto.SysSmsDTO;
import com.epmet.entity.SysSmsEntity;
import com.epmet.exception.ModuleErrorCode;
import com.epmet.feign.MessageFeignClient;
import com.epmet.service.SysSmsService;
import com.epmet.sms.AbstractSmsService;
import com.epmet.sms.SmsFactory;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.*;
@Service
public class SysSmsServiceImpl extends BaseServiceImpl<SysSmsDao, SysSmsEntity> implements SysSmsService {
@Autowired
private MessageFeignClient messageFeignClient;
@Override
public PageData<SysSmsDTO> page(Map<String, Object> params) {
IPage<SysSmsEntity> page = baseDao.selectPage(
@ -99,4 +105,26 @@ public class SysSmsServiceImpl extends BaseServiceImpl<SysSmsDao, SysSmsEntity>
//sms.setCreateDate(new Date());
baseDao.insert(sms);
}
@Override
public String sendSmsCaptcha(String mobile) {
Integer code = (int) ((Math.random() * 9 + 1) * 100000);
String codeStr = String.valueOf(code);
HashMap<String, String> map = new HashMap<>();
map.put("code", codeStr);
try {
String paramJson = new ObjectMapper().writeValueAsString(map);
SysSmsDTO sysSmsDTO = new SysSmsDTO();
sysSmsDTO.setMobile(mobile);
sysSmsDTO.setParams(paramJson);
Result result = messageFeignClient.send(sysSmsDTO);
System.out.println(result);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return codeStr;
}
}

Loading…
Cancel
Save