Subversion Repositories SmartDukaan

Rev

Rev 28450 | Rev 35840 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
25300 tejbeer 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.time.LocalDateTime;
4
 
5
import javax.servlet.http.HttpServletRequest;
6
 
7
import org.apache.logging.log4j.LogManager;
8
import org.apache.logging.log4j.Logger;
9
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.http.MediaType;
11
import org.springframework.http.ResponseEntity;
12
import org.springframework.stereotype.Controller;
13
import org.springframework.transaction.annotation.Transactional;
14
import org.springframework.web.bind.annotation.RequestBody;
15
import org.springframework.web.bind.annotation.RequestMapping;
16
import org.springframework.web.bind.annotation.RequestMethod;
17
 
18
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
19
import com.spice.profitmandi.common.web.util.ResponseSender;
27350 amit.gupta 20
import com.spice.profitmandi.dao.entity.dtr.GpsLocation;
21
import com.spice.profitmandi.dao.entity.dtr.GpsLocationModel;
25300 tejbeer 22
import com.spice.profitmandi.dao.entity.user.Device;
23
import com.spice.profitmandi.dao.repository.catalog.DeviceRepository;
27350 amit.gupta 24
import com.spice.profitmandi.dao.repository.user.GpsLocationRepository;
25300 tejbeer 25
import com.spice.profitmandi.web.req.AddDevicesRequest;
26
 
27
import io.swagger.annotations.ApiImplicitParam;
28
import io.swagger.annotations.ApiImplicitParams;
29
import io.swagger.annotations.ApiOperation;
30
 
31
@Controller
32
@Transactional(rollbackFor = Throwable.class)
33
public class DevicesController {
34
 
35
	@Autowired
36
	ResponseSender<?> responseSender;
37
 
38
	@Autowired
39
	private DeviceRepository deviceRepository;
28449 tejbeer 40
 
27350 amit.gupta 41
	@Autowired
42
	private GpsLocationRepository gpsLocationRepository;
25300 tejbeer 43
 
28303 amit.gupta 44
	private static final Logger LOGGER = LogManager.getLogger(DevicesController.class);
25300 tejbeer 45
 
27350 amit.gupta 46
	@RequestMapping(value = "/devices/add-new", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
47
	@ApiImplicitParams({
28449 tejbeer 48
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
27350 amit.gupta 49
	@ApiOperation(value = "")
28449 tejbeer 50
	public ResponseEntity<?> devicesInfo1(HttpServletRequest request,
51
			@RequestBody AddDevicesRequest addDevicesRequest) {
27350 amit.gupta 52
		Device device = this.deviceInfo(request, addDevicesRequest);
28449 tejbeer 53
		LOGGER.info("devices1" + device.getId());
27350 amit.gupta 54
		return responseSender.ok(device.getId());
55
	}
28449 tejbeer 56
 
25300 tejbeer 57
	@RequestMapping(value = "/devices/add", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
58
	@ApiImplicitParams({
59
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
60
	@ApiOperation(value = "")
61
	public ResponseEntity<?> devicesInfo(HttpServletRequest request, @RequestBody AddDevicesRequest addDevicesRequest)
62
			throws ProfitMandiBusinessException {
28449 tejbeer 63
		Device device = this.deviceInfo(request, addDevicesRequest);
64
		LOGGER.info("devices2" + device.getId());
27350 amit.gupta 65
		return responseSender.ok(true);
66
	}
28449 tejbeer 67
 
27350 amit.gupta 68
	private Device deviceInfo(HttpServletRequest request, AddDevicesRequest addDevicesRequest) {
25300 tejbeer 69
		Device device = deviceRepository.selectByImeiNumber(addDevicesRequest.getImeinumber());
27350 amit.gupta 70
		LOGGER.info("devices" + device);
25300 tejbeer 71
		if (device == null) {
72
			device = new Device();
73
			device.setImeiNumber(addDevicesRequest.getImeinumber());
74
		}
75
		device.setUser_id(addDevicesRequest.getUser_id());
76
		device.setBrand(addDevicesRequest.getBrand());
77
		device.setManufacturer(addDevicesRequest.getManufacturer());
78
		device.setModel(addDevicesRequest.getModel());
79
		device.setOsVersion(addDevicesRequest.getOsversion());
80
		device.setVersionCode(addDevicesRequest.getVersioncode());
81
		device.setVersionName(addDevicesRequest.getVersionname());
82
		device.setAndroidId(addDevicesRequest.getAndroidid());
28449 tejbeer 83
		if (addDevicesRequest.getGcm_regid() == null)
84
			LOGGER.info("gcm" + addDevicesRequest.getGcm_regid());
85
		else {
86
			device.setFcmId(addDevicesRequest.getGcm_regid());
87
		}
35837 vikas 88
		if (addDevicesRequest.getNotification_type() != null) {
89
			device.setNotificationType(addDevicesRequest.getNotification_type());
90
		}
25300 tejbeer 91
		device.setModified(LocalDateTime.now());
28450 tejbeer 92
		deviceRepository.persist(device);
27350 amit.gupta 93
		return device;
94
	}
95
 
96
	@RequestMapping(value = "/devices/location", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
97
	public ResponseEntity<?> deviceLocation(HttpServletRequest request, @RequestBody GpsLocationModel locationModel) {
98
		GpsLocation gpsLocation = new GpsLocation();
99
		gpsLocation.setGps(locationModel.isGps());
100
		gpsLocation.setDeviceId(locationModel.getDeviceId());
101
		gpsLocation.setLat(locationModel.getLat());
102
		gpsLocation.setLng(locationModel.getLng());
103
		gpsLocation.setUserId(locationModel.getUserId());
104
		gpsLocation.setCreateTime(LocalDateTime.now());
105
		gpsLocationRepository.persist(gpsLocation);
25300 tejbeer 106
		return responseSender.ok(true);
107
	}
28303 amit.gupta 108
}