/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package com.vci.ubcs.resource.feign; import com.vci.ubcs.resource.utils.SmsUtil; import lombok.AllArgsConstructor; import com.vci.ubcs.resource.builder.sms.SmsBuilder; import org.springblade.core.sms.model.SmsCode; import org.springblade.core.sms.model.SmsData; import org.springblade.core.sms.model.SmsResponse; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Map; /** * 短信远程调用服务 * * @author Chill */ @NonDS @RestController @AllArgsConstructor public class SmsClient implements ISmsClient { private final SmsBuilder smsBuilder; @Override @PostMapping(SEND_MESSAGE) public R sendMessage(String code, String params, String phones) { SmsData smsData = new SmsData(JsonUtil.readMap(params, String.class, String.class)); SmsResponse response = smsBuilder.template(code).sendMessage(smsData, Func.toStrList(phones)); return R.data(response); } @Override @PostMapping(SEND_VALIDATE) public R sendValidate(String code, String phone) { Map params = SmsUtil.getValidateParams(); SmsCode smsCode = smsBuilder.template(code).sendValidate(new SmsData(params).setKey(SmsUtil.PARAM_KEY), phone); return smsCode.isSuccess() ? R.data(smsCode, SmsUtil.SEND_SUCCESS) : R.fail(SmsUtil.SEND_FAIL); } @Override @PostMapping(VALIDATE_MESSAGE) public R validateMessage(String code, String id, String value, String phone) { SmsCode smsCode = new SmsCode().setId(id).setValue(value).setPhone(phone); boolean validate = smsBuilder.template(code).validateMessage(smsCode); return validate ? R.success(SmsUtil.VALIDATE_SUCCESS) : R.fail(SmsUtil.VALIDATE_FAIL); } }