generated from root/miduo_server
109 lines
4.3 KiB
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;
|
|
}
|
|
}
|