记得上下班打卡 | git大法好,push需谨慎

Commit 9f1e016b authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents 23a094a1 105839ae
...@@ -45,12 +45,6 @@ ...@@ -45,12 +45,6 @@
<artifactId>liquidnet-service-adam-api</artifactId> <artifactId>liquidnet-service-adam-api</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-kylin</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -65,6 +59,16 @@ ...@@ -65,6 +59,16 @@
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dypnsapi</artifactId> <artifactId>aliyun-java-sdk-dypnsapi</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-kylin-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-adam-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.liquidnet.service.kylin.partner.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinFieldsVo;
import com.liquidnet.service.kylin.mapper.KylinFieldRelationMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldsMapper;
import com.liquidnet.service.kylin.service.partner.KylinFieldsPartnerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.HashMap;
@Service
public class FieldsPartnerServiceImpl implements KylinFieldsPartnerService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private RedisUtil redisUtil;
@Autowired
private KylinFieldsMapper fieldsMapper;
@Autowired
private KylinFieldStatusMapper kylinFieldStatusMapper;
@Autowired
private KylinFieldRelationMapper fieldRelationsMapper;
/**
* 根据名字模糊查询 partner 场地列表
* @param page
* @param size
* @param name
* @return
*/
@Override
public HashMap<String, Object> fieldList(int page, int size, String name) {
HashMap<String,Object> info = new HashMap<>();
// 排序 分页
Pageable pageable = PageRequest.of(0, size, Sort.by(Sort.Direction.DESC, "createdAt"));
//条件
Query query = Query.query(Criteria.where("name").regex(".*?\\" +name));
// 查询总数
long count = mongoTemplate.count(query, KylinFieldsVo.class, KylinFieldsVo.class.getSimpleName());
query.with(pageable);
info.put("total",count);
info.put("data", mongoTemplate.find(query, KylinFieldsVo.class, KylinFieldsVo.class.getSimpleName()));
return info;
}
/**
* partner 场地详情
* @param fieldId
* @return
*/
@Override
public KylinFieldsVo fieldDetails(String fieldId) {
KylinFieldsVo info = null;
// 获取 redis数据
info = (KylinFieldsVo) redisUtil.hget(KylinRedisConst.FIELDS, fieldId + "");
//不存在 获取 mongo数据
if (null == info) {
info = mongoTemplate.findOne(Query.query(Criteria.where("fieldsId").is(fieldId)), KylinFieldsVo.class, KylinFieldsVo.class.getSimpleName());
redisUtil.hset(KylinRedisConst.FIELDS, fieldId + "",info);
}
return info;
}
}
package com.liquidnet.service.kylin.partner.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo;
import com.liquidnet.service.kylin.entity.KylinBuyNotice;
import com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper;
import com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 购票须知表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-18
*/
@Service
public class KylinBuyNoticePartnerServiceImpl extends ServiceImpl<KylinBuyNoticeMapper, KylinBuyNotice> implements IKylinBuyNoticePartnerService {
@Autowired
private KylinBuyNoticeMapper kylinBuyNoticeMapper;
@Override
public PageInfo<KylinBuyNoticeVo> getBuyNotice() {
PageInfo<KylinBuyNoticeVo> pageInfoTmp = null;
PageHelper.startPage(1, 20);
List<KylinBuyNotice> buyNoticeList = kylinBuyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().eq("status", 1).orderByDesc("sort").orderByDesc("mid"));
List<KylinBuyNoticeVo> kylinBuyNoticeVoList = new ArrayList<>();
for (KylinBuyNotice item : buyNoticeList) {
KylinBuyNoticeVo kylinBuyNoticeVo = new KylinBuyNoticeVo();
BeanUtils.copyProperties(item, kylinBuyNoticeVo);
kylinBuyNoticeVoList.add(kylinBuyNoticeVo);
}
pageInfoTmp = new PageInfo(kylinBuyNoticeVoList);
return pageInfoTmp;
}
}
package com.liquidnet.service.kylin.partner.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.ChildDetailsDao;
import com.liquidnet.service.kylin.dao.ChildListDao;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCheckUserVo;
import com.liquidnet.service.kylin.entity.KylinCheckUser;
import com.liquidnet.service.kylin.mapper.KylinCheckUserMapper;
import com.liquidnet.service.kylin.partner.utils.DataUtils;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPartnerService;
import com.mongodb.BasicDBObject;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 验票用户表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Service
public class KylinCheckUserPartnerServiceImpl extends ServiceImpl<KylinCheckUserMapper, KylinCheckUser> implements IKylinCheckUserPartnerService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private DataUtils dataUtils;
@Autowired
private KylinCheckUserMapper checkUserMapper;
@Override
public PageInfo<ChildListDao> getCheckUserList(String merchantId, String mobile, int page, int size) {
PageInfo<ChildListDao> pageInfo = null;
try {
PageHelper.startPage(page, size);
List<ChildListDao> data = checkUserMapper.childSimpleList(merchantId, mobile);
pageInfo = new PageInfo(data);
return pageInfo;
} catch (Exception e) {
return pageInfo;
}
}
@Override
public ResponseDto<String> del(String merchantId, String checkUserId) {
try {
KylinCheckUser checkUser = new KylinCheckUser();
checkUser.setUpdatedAt(LocalDateTime.now());
checkUser.setStatus(0);
checkUserMapper.update(checkUser, new UpdateWrapper<KylinCheckUser>().eq("check_user_id", checkUserId));
dataUtils.delCheckUserRedis(checkUserId);
HashMap<String, Object> map = new HashMap<>();
map.put("status", 0);
// BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
// mongoTemplate.getCollection(CheckUserVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("checkUserId").is(checkUserId)).getQueryObject(),
// obj
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(checkUserId)), KylinCheckUserVo.class, KylinCheckUserVo.class.getSimpleName());
return ResponseDto.success("删除成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20102));
}
}
@Override
public ResponseDto<String> create(String merchantId, String name, String pwd, String mobile) {
try {
KylinCheckUser checkUser = new KylinCheckUser();
checkUser.setName(name);
checkUser.setPwd(DigestUtils.md5DigestAsHex(pwd.getBytes()));
checkUser.setMobile(mobile);
checkUser.setCheckUserId(IDGenerator.nextSnowId().toString());
checkUser.setCreatedAt(LocalDateTime.now());
checkUser.setMerchantId(merchantId);
checkUser.setStatus(1);
checkUserMapper.insert(checkUser);
KylinCheckUserVo kylinCheckUserVo = new KylinCheckUserVo();
BeanUtils.copyProperties(checkUser, kylinCheckUserVo);
mongoTemplate.insert(kylinCheckUserVo, KylinCheckUserVo.class.getSimpleName());
return ResponseDto.success("添加成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<String> change(String merchantId, String checkUserId, String name, String pwd, String mobile) {
try {
KylinCheckUser checkUser = new KylinCheckUser();
checkUser.setName(name);
if(null!=pwd) {
checkUser.setPwd(DigestUtils.md5DigestAsHex(pwd.getBytes()));
}
checkUser.setMobile(mobile);
checkUser.setUpdatedAt(LocalDateTime.now());
checkUserMapper.update(checkUser, new UpdateWrapper<KylinCheckUser>().eq("check_user_id", checkUserId).eq("merchant_id", merchantId));
BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(checkUser));
mongoTemplate.getCollection(KylinCheckUserVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("checkUserId").is(checkUserId)).getQueryObject(),
obj
);
dataUtils.delCheckUserRedis(checkUserId);
return ResponseDto.success("修改成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20103));
}
}
@Override
public ResponseDto<ChildDetailsDao> details(String merchantId, String checkUserId) {
try {
ChildDetailsDao data = checkUserMapper.childDetails(merchantId, checkUserId);
return ResponseDto.success(data);
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20104));
}
}
}
package com.liquidnet.service.kylin.partner.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.ChildPerformanceDao;
import com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam;
import com.liquidnet.service.kylin.dto.param.CheckUserParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCheckUserPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinCheckUserPerformances;
import com.liquidnet.service.kylin.mapper.KylinCheckUserPerformancesMapper;
import com.liquidnet.service.kylin.partner.utils.DataUtils;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPerformancesPartnerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 验票用户可看演出表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Service
public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<KylinCheckUserPerformancesMapper, KylinCheckUserPerformances> implements IKylinCheckUserPerformancesPartnerService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private DataUtils dataUtils;
@Autowired
private KylinCheckUserPerformancesMapper checkUserPerformancesMapper;
@Override
public ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(String merchantId, String checkUserId, int page, int size, String name) {
PageInfo<ChildPerformanceDao> pageInfo = null;
try {
PageHelper.startPage(page, size);
List<ChildPerformanceDao> data = checkUserPerformancesMapper.childPerformanceList(merchantId, checkUserId, name);
pageInfo = new PageInfo(data);
return ResponseDto.success(pageInfo);
} catch (Exception e) {
return ResponseDto.success(pageInfo);
}
}
@Override
public ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(String merchantId, String checkUserId, int page, int size, String name) {
PageInfo<ChildPerformanceDao> pageInfo = null;
try {
PageHelper.startPage(page, size);
List<ChildPerformanceDao> data = checkUserPerformancesMapper.unChildPerformanceList(merchantId, checkUserId, name);
pageInfo = new PageInfo(data);
return ResponseDto.success(pageInfo);
} catch (Exception e) {
return ResponseDto.success(pageInfo);
}
}
@Override
public ResponseDto<String> setPerformance(CheckUserParam param) {
try {
for (CheckPerformanceRelationParam item : param.getCheckPerformanceRelationParamList()) {
if (null == item.getCanDownTime()) {
return ResponseDto.failure(ErrorMapping.get(20101));
}
KylinCheckUserPerformances checkUserPerformances = new KylinCheckUserPerformances();
checkUserPerformances.setCheckUserId(param.getCheckUserId());
checkUserPerformances.setCanDownTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(item.getCanDownTime()));
checkUserPerformances.setPerformanceId(item.getPerformanceId());
checkUserPerformances.setCheckUserPerformanceId(IDGenerator.nextSnowId());
checkUserPerformances.setCreatedAt(LocalDateTime.now());
checkUserPerformances.setStatus(1);
checkUserPerformancesMapper.insert(checkUserPerformances);
}
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(param.getCheckUserId())), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName());
KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo();
List<CheckPerformanceRelationParam> performanceRelationParamsList = new ArrayList<>();
List<KylinCheckUserPerformances> data = checkUserPerformancesMapper.selectList(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", param.getCheckUserId()));
for (KylinCheckUserPerformances item : data) {
CheckPerformanceRelationParam performanceRelationParam = new CheckPerformanceRelationParam();
performanceRelationParam.setCanDownTime(item.getCanDownTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceRelationParam.setPerformanceId(item.getPerformanceId());
performanceRelationParamsList.add(performanceRelationParam);
}
userPerformanceVo.setCheckUserId(param.getCheckUserId());
userPerformanceVo.setRelationParams(performanceRelationParamsList);
mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName());
dataUtils.delCheckUserRelationRedis(param.getCheckUserId());
return ResponseDto.success("添加成功");
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<String> delPerformance(List<String> performanceIds, String checkUserId) {
try {
for (String performanceId : performanceIds) {
checkUserPerformancesMapper.delete(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", checkUserId).eq("performance_id", performanceId));
}
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(checkUserId)), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName());
KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo();
List<CheckPerformanceRelationParam> performanceRelationParamsList = new ArrayList<>();
List<KylinCheckUserPerformances> data = checkUserPerformancesMapper.selectList(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", checkUserId));
for (KylinCheckUserPerformances item : data) {
CheckPerformanceRelationParam performanceRelationParam = new CheckPerformanceRelationParam();
performanceRelationParam.setCanDownTime(item.getCanDownTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceRelationParam.setPerformanceId(item.getPerformanceId());
performanceRelationParamsList.add(performanceRelationParam);
}
userPerformanceVo.setCheckUserId(checkUserId);
userPerformanceVo.setRelationParams(performanceRelationParamsList);
mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName());
dataUtils.delCheckUserRelationRedis(checkUserId);
return ResponseDto.success("删除成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20102));
}
}
}
package com.liquidnet.service.kylin.partner.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class OrderUtils {
@Autowired
private DataUtils dataUtils;
@Autowired
private RedisUtil redisUtil;
public String judgeOrderLimit(
int type,
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceLimitCount,
int performanceMemberLimitCount,
int ticketLimitCount,
int ticketMemberLimitCount,
int performanceBuyCount,
int ticketBuyCount,
int memberType,
int isTrueName
) {
Integer[] integers;
System.out.println("TYPE = " + type);
if (101 == type) {
integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} else {
integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
}
System.out.println("integers PERFORMANCE= " + integers[0]);
System.out.println("integers TICKETS= " + integers[1]);
return judgeMemberType(performanceLimitCount, performanceMemberLimitCount, ticketLimitCount, ticketMemberLimitCount, memberType, integers[0], integers[1]);
}
public Integer[] roadShowOrderLimit(
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
return new Integer[]{performanceBuyCount, ticketBuyCount};
}
public Integer[] festivalOrderLimit(
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
return new Integer[]{performanceBuyCount, ticketBuyCount};
}
public String judgeMemberType(int performanceLimitCount, int performanceMemberLimitCount, int ticketLimitCount, int ticketMemberLimitCount, int memberType, int performanceBuyCount, int ticketBuyCount) {
if (memberType == 1 || memberType == 2) {
if (performanceBuyCount > performanceMemberLimitCount && performanceMemberLimitCount != 0) {
return "该演出只能购买" + performanceMemberLimitCount + "张";//超过演出维度购买量
}
if (ticketBuyCount > ticketMemberLimitCount && ticketMemberLimitCount != 0) {
return "该票种只能购买" + ticketMemberLimitCount + "张";//超过票维度购买量
}
} else {//非会员区间
if (performanceBuyCount > performanceLimitCount && performanceLimitCount != 0) {
return "该演出只能购买" + performanceLimitCount + "张";//超过演出维度购买量
}
if (ticketBuyCount > ticketLimitCount && ticketLimitCount != 0) {
return "该票种只能购买" + ticketLimitCount + "张";//超过票维度购买量
}
}
return "";
}
public boolean isMember(String uid) {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk);
return null != vo && vo.isActive();
}
public AdamAddressesVo getAddress(String uid, String addressesId) {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk);
return vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
public AdamEntersVo getEnters(String uid, String entersId) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk);
return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
}
package com.liquidnet.service.kylin.partner.utils;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageConfigVo;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageDataVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.security.MessageDigest;
@Service
@Slf4j
public class OtherUtils {
@Value("${liquidnet.url-service.url}")
private String serviceUrl;
//发短信
public boolean sendMessage(String mobile, MessageDataVo data, MessageConfigVo configVo, Integer sign_id) {
try {
if (null != configVo && null != configVo.getStatus() && configVo.getStatus()) {
LinkedMultiValueMap<String, String> httpData = new LinkedMultiValueMap<>();
httpData.add("mobile", mobile);
httpData.add("templateId", configVo.getId());
httpData.add("signId", sign_id.toString());
httpData.add("data", JsonUtils.toJson(data));
String sign = Ksort(httpData);
sign = sign.concat("&key=").concat("R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V");
sign = sign.toUpperCase();
httpData.add("sign", sign);
System.out.println("data = = = "+httpData.toString());
String returnData = HttpUtil.post(serviceUrl + "sendSmsMessage", httpData);
JsonNode postResultNew = JsonUtils.fromJson(returnData, JsonNode.class);
if (!postResultNew.get("message").toString().equals("OK")) {
return false;
} else {
return true;
}
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public String Ksort(MultiValueMap<String, String> map) {
String sb = "";
String[] key = new String[map.size()];
int index = 0;
for (String k : map.keySet()) {
key[index] = k;
index++;
}
for (String s : key) {
sb += s + "=" + map.get(s).get(0) + "&";
}
sb = sb.substring(0, sb.length() - 1);
// 将得到的字符串进行处理得到目标格式的字符串
try {
sb = URLDecoder.decode(sb, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 使用常见的UTF-8编码
sb = sb.replace("%3D", "=").replace("%26", "&");
return sb;
}
public static String md5s(String txt) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(txt.getBytes("GBK")); //问题主要出在这里,Java的字符串是unicode编码,不受源码文件的编码影响;而PHP的编码是和源码文件的编码一致,受源码编码影响。
StringBuilder buf = new StringBuilder();
for (byte b : md.digest()) {
buf.append(String.format("%02x", b & 0xff));
}
return buf.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment