Subversion Repositories SmartDukaan

Rev

Rev 22355 | Rev 22495 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 22355 Rev 22473
Line 18... Line 18...
18
 
18
 
19
import com.spice.profitmandi.common.ResponseCodeHolder;
19
import com.spice.profitmandi.common.ResponseCodeHolder;
20
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
20
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
21
import com.spice.profitmandi.common.model.ProfitMandiConstants;
21
import com.spice.profitmandi.common.model.ProfitMandiConstants;
22
import com.spice.profitmandi.common.model.UserInfo;
22
import com.spice.profitmandi.common.model.UserInfo;
-
 
23
import com.spice.profitmandi.common.util.StringUtils;
-
 
24
import com.spice.profitmandi.common.util.Utils;
23
import com.spice.profitmandi.common.web.util.ResponseSender;
25
import com.spice.profitmandi.common.web.util.ResponseSender;
24
import com.spice.profitmandi.dao.entity.dtr.Brand;
26
import com.spice.profitmandi.dao.entity.dtr.Brand;
-
 
27
import com.spice.profitmandi.dao.entity.dtr.DistrictMaster;
25
import com.spice.profitmandi.dao.entity.dtr.Document;
28
import com.spice.profitmandi.dao.entity.dtr.Document;
-
 
29
import com.spice.profitmandi.dao.entity.dtr.FofoStore;
-
 
30
import com.spice.profitmandi.dao.entity.dtr.FofoStoreSequenceGeneration;
26
import com.spice.profitmandi.dao.entity.dtr.Retailer;
31
import com.spice.profitmandi.dao.entity.dtr.Retailer;
27
import com.spice.profitmandi.dao.entity.dtr.RetailerBrand;
32
import com.spice.profitmandi.dao.entity.dtr.RetailerBrand;
28
import com.spice.profitmandi.dao.entity.dtr.RetailerRegisteredAddress;
33
import com.spice.profitmandi.dao.entity.dtr.RetailerRegisteredAddress;
29
import com.spice.profitmandi.dao.entity.dtr.Shop;
34
import com.spice.profitmandi.dao.entity.dtr.Shop;
30
import com.spice.profitmandi.dao.entity.dtr.ShopAddress;
35
import com.spice.profitmandi.dao.entity.dtr.ShopAddress;
Line 38... Line 43...
38
import com.spice.profitmandi.dao.entity.user.PrivateDealUserAddressId;
43
import com.spice.profitmandi.dao.entity.user.PrivateDealUserAddressId;
39
import com.spice.profitmandi.dao.entity.user.PrivateDealUserAddressMapping;
44
import com.spice.profitmandi.dao.entity.user.PrivateDealUserAddressMapping;
40
import com.spice.profitmandi.dao.enumuration.dtr.AccountType;
45
import com.spice.profitmandi.dao.enumuration.dtr.AccountType;
41
import com.spice.profitmandi.dao.enumuration.dtr.RoleType;
46
import com.spice.profitmandi.dao.enumuration.dtr.RoleType;
42
import com.spice.profitmandi.dao.repository.dtr.BrandRepository;
47
import com.spice.profitmandi.dao.repository.dtr.BrandRepository;
-
 
48
import com.spice.profitmandi.dao.repository.dtr.DistrictMasterRepository;
43
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
49
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
-
 
50
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
-
 
51
import com.spice.profitmandi.dao.repository.dtr.FofoStoreSequenceGenerationRepository;
44
import com.spice.profitmandi.dao.repository.dtr.RetailerAddressRepository;
52
import com.spice.profitmandi.dao.repository.dtr.RetailerAddressRepository;
45
import com.spice.profitmandi.dao.repository.dtr.RetailerBrandRepository;
53
import com.spice.profitmandi.dao.repository.dtr.RetailerBrandRepository;
46
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
54
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
47
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
55
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
48
import com.spice.profitmandi.dao.repository.dtr.ShopAddressRepository;
56
import com.spice.profitmandi.dao.repository.dtr.ShopAddressRepository;
Line 58... Line 66...
58
import com.spice.profitmandi.web.req.Category;
66
import com.spice.profitmandi.web.req.Category;
59
import com.spice.profitmandi.web.req.CreateRetailerAddressRequest;
67
import com.spice.profitmandi.web.req.CreateRetailerAddressRequest;
60
import com.spice.profitmandi.web.req.CreateRetailerRequest;
68
import com.spice.profitmandi.web.req.CreateRetailerRequest;
61
import com.spice.profitmandi.web.req.RetailerAddBrandRequest;
69
import com.spice.profitmandi.web.req.RetailerAddBrandRequest;
62
 
70
 
-
 
71
import in.shop2020.model.v1.inventory.StateInfo;
63
import in.shop2020.model.v1.user.CartStatus;
72
import in.shop2020.model.v1.user.CartStatus;
64
import io.swagger.annotations.ApiImplicitParam;
73
import io.swagger.annotations.ApiImplicitParam;
65
import io.swagger.annotations.ApiImplicitParams;
74
import io.swagger.annotations.ApiImplicitParams;
66
import io.swagger.annotations.ApiOperation;
75
import io.swagger.annotations.ApiOperation;
67
 
76
 
Line 125... Line 134...
125
	PrivateDealUserAddressMappingRepository privateDealUserAddressMappingRepository;
134
	PrivateDealUserAddressMappingRepository privateDealUserAddressMappingRepository;
126
	
135
	
127
	@Autowired
136
	@Autowired
128
	CartRepository cartRepository;
137
	CartRepository cartRepository;
129
	
138
	
-
 
139
	@Autowired
-
 
140
	DistrictMasterRepository districtMasterRepository;
-
 
141
	
-
 
142
	@Autowired
-
 
143
	FofoStoreRepository fofoStoreRepository;
-
 
144
	
-
 
145
	@Autowired
-
 
146
	FofoStoreSequenceGenerationRepository fofoStoreSequenceGenerationRepository;
-
 
147
	
130
	@ApiImplicitParams({
148
	@ApiImplicitParams({
131
		@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", 
149
		@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", 
132
				required = true, dataType = "string", paramType = "header")
150
				required = true, dataType = "string", paramType = "header")
133
	})
151
	})
134
	
152
	
135
	@ApiOperation(value = "Create Retailer")
153
	@ApiOperation(value = "Create Retailer")
136
	@RequestMapping(value = ProfitMandiConstants.URL_RETAILER, method=RequestMethod.POST)
154
	@RequestMapping(value = ProfitMandiConstants.URL_RETAILER, method=RequestMethod.POST)
137
	public ResponseEntity<?> createRetailer(HttpServletRequest request, @RequestBody CreateRetailerRequest createRetailerRequest) throws ProfitMandiBusinessException{
155
	public ResponseEntity<?> createRetailer(HttpServletRequest request, @RequestBody CreateRetailerRequest createRetailerRequest) throws ProfitMandiBusinessException, Exception{
138
		LOGGER.info("request received with body [{}] at url {{}}: ", createRetailerRequest, request.getRequestURL().toString());
156
		LOGGER.info("request received with body [{}] at url {{}}: ", createRetailerRequest, request.getRequestURL().toString());
139
		try{
157
		try{
140
			UserInfo userInfo = (UserInfo)request.getAttribute("userInfo");
158
			UserInfo userInfo = (UserInfo)request.getAttribute("userInfo");
141
			LOGGER.info("requestAttribute [userInfo={}]", userInfo);
159
			LOGGER.info("requestAttribute [userInfo={}]", userInfo);
142
			User user = userRepository.selectById(userInfo.getUserId());
160
			User user = userRepository.selectById(userInfo.getUserId());
Line 148... Line 166...
148
			//return responseSender.badRequest(profitMandiBusinessException);
166
			//return responseSender.badRequest(profitMandiBusinessException);
149
		}
167
		}
150
	}
168
	}
151
	
169
	
152
	private void createRetailer(User user, CreateRetailerRequest createRetailerRequest) 
170
	private void createRetailer(User user, CreateRetailerRequest createRetailerRequest) 
153
			throws ProfitMandiBusinessException{
171
			throws ProfitMandiBusinessException, Exception{
154
		Retailer retailer = new Retailer();
172
		Retailer retailer = new Retailer();
155
		retailer.setName(createRetailerRequest.getName());
173
		retailer.setName(createRetailerRequest.getName());
156
		retailer.setNumber(createRetailerRequest.getNumber());
174
		retailer.setNumber(createRetailerRequest.getNumber());
157
		retailer.setType(createRetailerRequest.getType());
175
		retailer.setType(createRetailerRequest.getType());
158
		retailer.setMonthlySaleValue(createRetailerRequest.getMonthlySaleValue());
176
		retailer.setMonthlySaleValue(createRetailerRequest.getMonthlySaleValue());
Line 280... Line 298...
280
			privateDealUserAddressMappingRepository.persist(privateDealUserAddressMapping);
298
			privateDealUserAddressMappingRepository.persist(privateDealUserAddressMapping);
281
			
299
			
282
			saholicUser.setAddressId(addressRetailer.getId());
300
			saholicUser.setAddressId(addressRetailer.getId());
283
			userUserRepository.persist(saholicUser);
301
			userUserRepository.persist(saholicUser);
284
		}
302
		}
-
 
303
		StateInfo stateInfo = Utils.getStateInfo(addressRetailer.getState());
-
 
304
		DistrictMaster districtMaster = districtMasterRepository.selectByNameAndStateShortName(createRetailerRequest.getDistrict(), stateInfo.getShortName());
-
 
305
		FofoStoreSequenceGeneration fofoStoreSequenceGeneration = null;
-
 
306
		boolean foundFofoStoreSequence = false;
-
 
307
		try{
-
 
308
			fofoStoreSequenceGeneration = fofoStoreSequenceGenerationRepository.selectByStateShortName(stateInfo.getShortName());
-
 
309
			foundFofoStoreSequence = true;
-
 
310
		}catch(ProfitMandiBusinessException profitMandiBusinessException){
-
 
311
			fofoStoreSequenceGeneration = new FofoStoreSequenceGeneration();
-
 
312
			fofoStoreSequenceGeneration.setSequence(1);
-
 
313
			fofoStoreSequenceGeneration.setStateShortName(stateInfo.getShortName());
-
 
314
			fofoStoreSequenceGenerationRepository.persist(fofoStoreSequenceGeneration);
-
 
315
		}
-
 
316
		FofoStore fofoStore = new FofoStore();
-
 
317
		fofoStore.setId(retailer.getId());
-
 
318
		String fofoStoreCode = StringUtils.generateFofoStoreSequence(districtMaster.getStateShortName() + districtMaster.getShortName(), fofoStoreSequenceGeneration.getSequence());
-
 
319
		if(foundFofoStoreSequence){
-
 
320
			fofoStoreSequenceGeneration.setSequence(fofoStoreSequenceGeneration.getSequence() + 1);
-
 
321
			fofoStoreSequenceGenerationRepository.persist(fofoStoreSequenceGeneration);
-
 
322
		}
-
 
323
		fofoStore.setCode(fofoStoreCode);
-
 
324
		fofoStoreRepository.persist(fofoStore);
285
	}
325
	}
286
	
326
	
287
	private Integer createCounter(String emailId, String gstNumber, String mobileNumber, String name, int addressId){
327
	private Integer createCounter(String emailId, String gstNumber, String mobileNumber, String name, int addressId){
288
		if(gstNumber != null && !gstNumber.isEmpty()){
328
		if(gstNumber != null && !gstNumber.isEmpty()){
289
			Counter counter = new Counter();
329
			Counter counter = new Counter();