| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.aliyuncs.DefaultAcsClient; |
| | | import com.aliyuncs.IAcsClient; |
| | |
| | | import com.aliyuncs.http.MethodType; |
| | | import com.aliyuncs.profile.DefaultProfile; |
| | | import com.aliyuncs.profile.IClientProfile; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.dao.business.CategoryMapper; |
| | | import com.doumee.dao.business.model.Category; |
| | | import com.doumee.dao.business.model.IdentityInfo; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.dao.dto.CateringDTO; |
| | | import com.github.pagehelper.Constant; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | @Slf4j |
| | | public class AliSmsService { |
| | | |
| | | protected Logger logger = LogManager.getLogger("sms"); |
| | | |
| | | private final static String ACCESS_KEY_ID = "LTAI5tMkg7wwV74a8H6Bm3Ej"; |
| | | private final static String ACCESS_KEY_SECRET = "FcHKST36sfwfo706L6bvrweGFIbp3n"; |
| | | private final static String SING_NAME = "橙桔天下科技"; |
| | | |
| | | |
| | | public void businessSendSms(int type, String phone, Orders orders, BigDecimal distance, |
| | | IdentityInfo identityInfo,CategoryMapper categoryMapper){ |
| | | try{ |
| | | Constants.smsContent smsContent = Constants.smsContent.getSmsContent(type); |
| | | Map<String,Object> tempParam = new HashMap<>(); |
| | | if(smsContent.getName().indexOf("time1")>=Constants.ZERO){ |
| | | tempParam.put("time1", DateUtil.formatDate(orders.getStartDate(),"yyyy-MM-dd")+" "); |
| | | } |
| | | if(smsContent.getName().indexOf("time2")>=Constants.ZERO){ |
| | | tempParam.put("time2", " "+DateUtil.formatDate(orders.getEndDate(),"yyyy-MM-dd")); |
| | | } |
| | | if(smsContent.getName().indexOf("money")>=Constants.ZERO){ |
| | | tempParam.put("money", new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)+"元"); |
| | | } |
| | | if(smsContent.getName().indexOf("distance")>=Constants.ZERO){ |
| | | tempParam.put("distance", distance +"km"); |
| | | } |
| | | //认证短信 特殊处理 |
| | | if(Constants.equalsInteger(smsContent.getKey(),Constants.smsContent.authentication.getKey())){ |
| | | //认证类型 |
| | | if(smsContent.getName().indexOf("authentication")>=Constants.ZERO){ |
| | | tempParam.put("authentication", Constants.equalsInteger(identityInfo.getAuthType(),Constants.ZERO)?"个人":identityInfo.getCompanyName()); |
| | | } |
| | | if(smsContent.getName().indexOf("order")>=Constants.ZERO){ |
| | | tempParam.put("oeder", Constants.orderType.getName(identityInfo.getType()).replace("单","")); |
| | | } |
| | | if(smsContent.getName().indexOf("status")>=Constants.ZERO){ |
| | | tempParam.put("status", Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"已通过":"未通过"); |
| | | } |
| | | }else{ |
| | | if(smsContent.getName().indexOf("order")>=Constants.ZERO){ |
| | | String order = ""; |
| | | //查询订单的类型信息 |
| | | if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ |
| | | order = Constants.workType.getName(orders.getWorkType()); |
| | | Category category = categoryMapper.selectById(orders.getCategoryId()); |
| | | if(Objects.nonNull(category)){ |
| | | order = category.getName() + order; |
| | | } |
| | | }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ |
| | | order = "运输"; |
| | | Category category = categoryMapper.selectById(orders.getTransportTypeId()); |
| | | if(Objects.nonNull(category)){ |
| | | order = category.getName() + order; |
| | | } |
| | | }else{ |
| | | List<CateringDTO> cateringDTOList = JSONArray.parseArray(orders.getWayInfo(),CateringDTO.class); |
| | | if(CollectionUtils.isNotEmpty(cateringDTOList)){ |
| | | for (CateringDTO cateringDTO:cateringDTOList) { |
| | | if(StringUtils.isBlank(order)){ |
| | | order = cateringDTO.getName(); |
| | | }else{ |
| | | order = order + "/" +cateringDTO.getName(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | tempParam.put("order",order); |
| | | } |
| | | } |
| | | if(smsContent.getName().indexOf("distance")>=Constants.ZERO){ |
| | | tempParam.put("distance", distance +"km"); |
| | | } |
| | | AliSmsService.sendSms(phone,smsContent.getCode(), JSONObject.toJSONString(tempParam)); |
| | | }catch (Exception e){ |
| | | log.error("短信发送失败~"); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | Map<String,Object> tempParam = new HashMap<>(); |
| | | Map<String,Object> tempParam = new java.util.HashMap<>(); |
| | | tempParam.put("order","葡萄采摘工"); |
| | | tempParam.put("time1","07-23"); |
| | | tempParam.put("time2","07-24"); |
| | |
| | | request.setSignName(SING_NAME); |
| | | //必填:短信模板-可在短信控制台中找到 |
| | | request.setTemplateCode(templateCode); |
| | | //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 |
| | | //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败 |
| | | //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 |
| | | //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\n,否则会导致JSON在服务端解析失败 |
| | | request.setTemplateParam(templateParam); |
| | | //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段) |
| | | //dto.setSmsUpExtendCode("90997"); |