package cn.com.goldenwater.dcproj.service.impl.meeting; import cn.com.goldenwater.dcproj.constValue.SmsCodeEnum; import cn.com.goldenwater.dcproj.dao.MeetMeetingInfoDao; import cn.com.goldenwater.dcproj.model.MeetMeetingInfo; import cn.com.goldenwater.dcproj.model.MeetPersList; import cn.com.goldenwater.dcproj.param.MeetMeetingInfoParam; import cn.com.goldenwater.dcproj.service.GwComFileService; import cn.com.goldenwater.dcproj.service.MeetMeetingInfoService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.HttpClientUtils; import com.github.pagehelper.PageHelper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import java.util.concurrent.TimeUnit; /** * @author lune * @date 2019-7-23 */ @Service @Transactional public class MeetMeetingInfoServiceImpl extends AbstractCrudService implements MeetMeetingInfoService { @Autowired private MeetMeetingInfoDao meetMeetingInfoDao; private static String apiKey = "1036432406699048960"; private static String apiSecrect = "bbSsX1wvmaKdca5x2+yBDgeFtl9hj4zJmnegunWuLuHLwLo+QjxOr3//P4BJNrVADa7tN4w0DX1KS/VSec5G0x+ucDeAcSt9tWgFGyoBVtblybh+vzLbwH4sJa92hQfu\n"; @Autowired private RedisTemplate redisTemplate; @Autowired private GwComFileService gwComFileService; @Value("${api.url}") private String baseUrl; public MeetMeetingInfoServiceImpl(MeetMeetingInfoDao meetMeetingInfoDao) { super(meetMeetingInfoDao); this.meetMeetingInfoDao = meetMeetingInfoDao; } @Override public String sendMessage(String persName, String phone) { Map map = new HashMap<>(); map.put("persName", persName); map.put("phone", phone); List list = meetMeetingInfoDao.getMeetList(map); if (null != list && list.size() > 0) { String oldCode = (String) redisTemplate.opsForValue().get(phone); if (StringUtils.isNotBlank(oldCode)) { return SmsCodeEnum.ERROR.getKey(); } String apiUrl = baseUrl+"/gateway/api/sms/send"; Map params = new HashMap(); Random rand = new Random(); int num = rand.nextInt(900000) + 100000; String code = num + ""; params.put("apiKey", apiKey); params.put("apiSecrect", apiSecrect); params.put("templateParam", "{\"code\":\"" + code + "\"}"); params.put("signName", "金水云平台"); params.put("templeteCode", "SMS_177545278"); params.put("mobile", phone); try { String content = HttpClientUtils.simplePostInvoke(apiUrl+"/gateway/api/sms/send", params); } catch (Exception e) { e.printStackTrace(); } redisTemplate.opsForValue().set(phone, code, 5L, TimeUnit.MINUTES); return SmsCodeEnum.SUCCESS.getKey(); } return SmsCodeEnum.NO_MEET.getKey(); } @Override public MeetPersList loginByCode(String phone, String code) { String oldCode = (String) redisTemplate.opsForValue().get(phone); if (StringUtils.isNotBlank(code) && code.equals(oldCode)) { Map map = new HashMap<>(); map.put("phone", phone); List list = meetMeetingInfoDao.getMeetPersList(map); if (list != null && list.size() > 0) { MeetPersList meetPersList = list.get(0); return meetPersList; } else { return null; } } return null; } @Override public int updateMeetInfo(MeetMeetingInfo meetMeetingInfo) { meetMeetingInfoDao.update(meetMeetingInfo); gwComFileService.updateBiz(meetMeetingInfo.getGwComFiles(), meetMeetingInfo.getId()); return 0; } }