sk_pay/src/main/java/com/jmfy/controller/BuriedPointController.java

82 lines
2.9 KiB
Java

package com.jmfy.controller;
import com.alibaba.fastjson.JSONObject;
import com.jmfy.Application;
import com.jmfy.dao.MongoConnectDao;
import com.jmfy.model.BuriedPoint;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@RestController
public class BuriedPointController {
private static final Logger LOGGER = LoggerFactory.getLogger(BuriedPointController.class);
private static final String _COLLECTION_NAME = "user_buried_point";
@Resource
private MongoConnectDao mongoConnectDao;
/**
* 埋点排重(之前没有添加,有查询)
* @param channel
* @param userId
* @param point
* @param response
* testUrl: http://34.87.3.216:8081/idip/sfzb/point/buriedPoint?channel=baidu&userId=2020125&point=aaaaaaa
*/
@RequestMapping(value = "/point/buriedPoint", method = {RequestMethod.GET, RequestMethod.POST})
public void buriedPoint(String channel, String userId, String point, HttpServletResponse response){
try {
MongoTemplate mongoTemplate = mongoConnectDao.getConnect().getMongoTemplete(Application.coreDb);
String channelUserId = channel + userId;
DBObject doc = new BasicDBObject();
doc.put("channelUserId",channelUserId);
doc.put("channel", channel);
doc.put("userId", userId);
doc.put("point", point);
//查询
Query query = new Query();
Criteria cr = new Criteria();
cr.andOperator(Criteria.where("channelUserId").is(channelUserId));
query.addCriteria(cr);
BuriedPoint buriedPoint = mongoTemplate.findOne(query, BuriedPoint.class);
boolean isPoint = false;
//埋点过
if(buriedPoint == null) {
//存储
mongoTemplate = mongoConnectDao.getConnect().getMongoTemplete(Application.coreDb);
DBCollection dBCollection = mongoTemplate.getCollection(_COLLECTION_NAME);
dBCollection.save(doc);
}else {
isPoint = true;
}
JSONObject obj1 = new JSONObject();
obj1.put("isPoint", isPoint);
response.setContentType("application/json");
response.getOutputStream().write(obj1.toJSONString().getBytes());
} catch (Exception e) {
e.printStackTrace();
}
}
}