miduo_pay/src/main/java/com/jmfy/dto/impl/CUserDaoImpl.java

109 lines
4.3 KiB
Java

package com.jmfy.dto.impl;
import com.jmfy.dto.CPayOrder;
import com.jmfy.dto.CUser;
import com.jmfy.dto.CUserDao;
import com.jmfy.dto.CUserInfo;
import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.util.Connect;
import com.jmfy.util.RedisUtil;
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.Component;
import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
public class CUserDaoImpl implements CUserDao {
@Resource
private Connect connect ;
@Override
public String findUserInfo(int serverId, int userId) {
String userInfo = RedisUtil.getInstence().getObject(serverId+ RedisUserKey.Delimiter_colon +RedisUserKey.CUser_ServerInfo, Integer.toString(userId),String.class, -1);
if (userInfo==null){
userInfo = RedisUtil.getInstence().getOldObject(serverId+ RedisUserKey.Delimiter_colon +RedisUserKey.CUser_ServerInfo, Integer.toString(userId),String.class, -1);
}
return userInfo;
}
@Override
public CUserInfo getUserInfobyNameAndServerId(String name, int serverId,String plat) throws Exception {
Query query = new Query();
Criteria cr = new Criteria();
MongoTemplate mongoTemplate = connect.getMongoTemplete("ysj_core");
cr.andOperator(Criteria.where("serverid").is(serverId), Criteria.where("openId").is(name));
query.addCriteria(cr);
CUserInfo cUserInfo = mongoTemplate.findOne(query, CUserInfo.class);
return cUserInfo;
}
@Override
public CUser getCUser(int userId, int serverid) throws Exception {
CUser cUser = RedisUtil.getInstence().getObject(serverid + RedisUserKey.Delimiter_colon + RedisUserKey.CUser_Key, Integer.toString(userId), CUser.class, 7 * 24 * 3600);
if (cUser == null) {
MongoTemplate mongoTemplete = connect.getMongoTemplete("ysj_" + serverid);
Query query = new Query(Criteria.where("_id").is(userId));
cUser = mongoTemplete.findOne(query, CUser.class);
}
return cUser;
}
@Override
public void addCpayOrder(CPayOrder cPayOrder) {
DateFormat dateTimeformat = new SimpleDateFormat("yyyy-MM-dd");
String date = dateTimeformat.format(new Date());
//保存单独订单
RedisUtil.getInstence().putObject(RedisUserKey.C_PAYORDER,cPayOrder.getOrderId(),cPayOrder,-1);
//保存每一天的订单
RedisUtil.getInstence().putMapEntry(RedisUserKey.C_PAYORDER_MAP,date,cPayOrder.getOrderId(),cPayOrder,-1);
}
@Override
public CPayOrder getCpayOrderByOrderId(String pOrderId) {
return RedisUtil.getInstence().getObject(RedisUserKey.C_PAYORDER,pOrderId,CPayOrder.class,-1);
}
@Override
public void addMailSeriaNo(String serialNo) {
RedisUtil.getInstence().putObject(RedisUserKey.C_PAYORDER,serialNo,serialNo,-1);
}
@Override
public boolean getMailSeriaNo(String serialNo) {
String seria = RedisUtil.getInstence().getObject(RedisUserKey.C_PAYORDER, serialNo, String.class, -1);
if (seria == null || seria.isEmpty()){
return false;
}
return true;
}
@Override
public List<CUserInfo> getUserInfo(String userId, int serverId) throws Exception {
Query query = new Query();
Criteria cr = new Criteria();
MongoTemplate mongoTemplate = connect.getMongoTemplete("ysj_core");
cr.andOperator(Criteria.where("serverid").is(serverId), Criteria.where("openId").is(userId));
query.addCriteria(cr);
List<CUserInfo> cUserInfoList = mongoTemplate.find(query,CUserInfo.class);
return cUserInfoList;
}
@Override
public List<CPayOrder> getOrderInfoBydate(String agoDate) {
List<CPayOrder> orderInfoBydate = new ArrayList<>(); //C_PAYORDER_MAP:2019
Map<String, CPayOrder> map = RedisUtil.getInstence().getMap(RedisUserKey.C_PAYORDER_MAP+RedisUserKey.Delimiter_colon + agoDate, CPayOrder.class, -1);
for (Map.Entry<String, CPayOrder> entry:map.entrySet()){
orderInfoBydate.add(entry.getValue());
}
return orderInfoBydate;
}
}