Subversion Repositories SmartDukaan

Rev

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

Rev 21740 Rev 21768
Line 28... Line 28...
28
import com.spice.profitmandi.dao.entity.dtr.RetailerBrand;
28
import com.spice.profitmandi.dao.entity.dtr.RetailerBrand;
29
import com.spice.profitmandi.dao.entity.dtr.RetailerRegisteredAddress;
29
import com.spice.profitmandi.dao.entity.dtr.RetailerRegisteredAddress;
30
import com.spice.profitmandi.dao.entity.dtr.Shop;
30
import com.spice.profitmandi.dao.entity.dtr.Shop;
31
import com.spice.profitmandi.dao.entity.dtr.ShopAddress;
31
import com.spice.profitmandi.dao.entity.dtr.ShopAddress;
32
import com.spice.profitmandi.dao.entity.dtr.User;
32
import com.spice.profitmandi.dao.entity.dtr.User;
-
 
33
import com.spice.profitmandi.dao.entity.dtr.UserAccounts;
-
 
34
import com.spice.profitmandi.dao.entity.dtr.UserRole;
33
import com.spice.profitmandi.dao.entity.user.Address;
35
import com.spice.profitmandi.dao.entity.user.Address;
-
 
36
import com.spice.profitmandi.dao.enumuration.dtr.AccountType;
-
 
37
import com.spice.profitmandi.dao.enumuration.dtr.RoleType;
34
import com.spice.profitmandi.dao.repository.dtr.BrandRepository;
38
import com.spice.profitmandi.dao.repository.dtr.BrandRepository;
35
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
39
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
36
import com.spice.profitmandi.dao.repository.dtr.RetailerAddressRepository;
40
import com.spice.profitmandi.dao.repository.dtr.RetailerAddressRepository;
37
import com.spice.profitmandi.dao.repository.dtr.RetailerBrandRepository;
41
import com.spice.profitmandi.dao.repository.dtr.RetailerBrandRepository;
38
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
42
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
39
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
43
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
40
import com.spice.profitmandi.dao.repository.dtr.ShopAddressRepository;
44
import com.spice.profitmandi.dao.repository.dtr.ShopAddressRepository;
41
import com.spice.profitmandi.dao.repository.dtr.ShopRepository;
45
import com.spice.profitmandi.dao.repository.dtr.ShopRepository;
-
 
46
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
42
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
47
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
-
 
48
import com.spice.profitmandi.dao.repository.dtr.UserRoleRepository;
43
import com.spice.profitmandi.dao.repository.user.AddressRepository;
49
import com.spice.profitmandi.dao.repository.user.AddressRepository;
44
import com.spice.profitmandi.thrift.clients.UserClient;
50
import com.spice.profitmandi.thrift.clients.UserClient;
45
import com.spice.profitmandi.web.req.Category;
51
import com.spice.profitmandi.web.req.Category;
46
import com.spice.profitmandi.web.req.CreateRetailerAddressRequest;
52
import com.spice.profitmandi.web.req.CreateRetailerAddressRequest;
47
import com.spice.profitmandi.web.req.CreateRetailerRequest;
53
import com.spice.profitmandi.web.req.CreateRetailerRequest;
Line 61... Line 67...
61
	
67
	
62
	@Autowired
68
	@Autowired
63
	UserRepository userRepository;
69
	UserRepository userRepository;
64
	
70
	
65
	@Autowired
71
	@Autowired
-
 
72
	UserRoleRepository userRoleRepository;
-
 
73
	
-
 
74
	@Autowired
66
	ResponseSender<?> responseSender;
75
	ResponseSender<?> responseSender;
67
	
76
	
68
	@Autowired
77
	@Autowired
69
	RetailerRepository retailerRepository;
78
	RetailerRepository retailerRepository;
70
	
79
	
Line 79... Line 88...
79
	
88
	
80
	@Autowired
89
	@Autowired
81
	ShopRepository shopRepository;
90
	ShopRepository shopRepository;
82
	
91
	
83
	@Autowired
92
	@Autowired
-
 
93
	UserAccountRepository userAccountRepository;
-
 
94
	
-
 
95
	@Autowired
84
	RetailerRegisteredAddressRepository retailerRegisteredAddressRepository;
96
	RetailerRegisteredAddressRepository retailerRegisteredAddressRepository;
85
	
97
	
86
	@Autowired
98
	@Autowired
87
	RetailerAddressRepository retailerAddressRepository;
99
	RetailerAddressRepository retailerAddressRepository;
88
	
100
	
Line 102... Line 114...
102
	public ResponseEntity<?> createRetailer(HttpServletRequest request, @RequestBody CreateRetailerRequest createRetailerRequest){
114
	public ResponseEntity<?> createRetailer(HttpServletRequest request, @RequestBody CreateRetailerRequest createRetailerRequest){
103
		LOGGER.info("requested url : "+request.getRequestURL().toString());
115
		LOGGER.info("requested url : "+request.getRequestURL().toString());
104
		try{
116
		try{
105
			UserInfo userInfo = (UserInfo)request.getAttribute("userInfo");
117
			UserInfo userInfo = (UserInfo)request.getAttribute("userInfo");
106
			User user = userRepository.selectById(userInfo.getUserId());
118
			User user = userRepository.selectById(userInfo.getUserId());
107
			this.createRetailer(user.getEmailId(), createRetailerRequest);
119
			this.createRetailer(user, createRetailerRequest);
108
			return responseSender.ok(ResponseCodeHolder.getMessage("RTLR_OK_1000"));
120
			return responseSender.ok(ResponseCodeHolder.getMessage("RTLR_OK_1000"));
109
		}catch (ProfitMandiBusinessException profitMandiBusinessException) {
121
		}catch (ProfitMandiBusinessException profitMandiBusinessException) {
110
			LOGGER.error("ProfitMandi error: ", profitMandiBusinessException);
122
			LOGGER.error("ProfitMandi error: ", profitMandiBusinessException);
111
			return responseSender.badRequest(profitMandiBusinessException);
123
			return responseSender.badRequest(profitMandiBusinessException);
112
		}
124
		}
113
	}
125
	}
114
	
126
	
115
	private void createRetailer(String emailId, CreateRetailerRequest createRetailerRequest) 
127
	private void createRetailer(User user, CreateRetailerRequest createRetailerRequest) 
116
			throws ProfitMandiBusinessException{
128
			throws ProfitMandiBusinessException{
117
		Retailer retailer = new Retailer();
129
		Retailer retailer = new Retailer();
118
		retailer.setName(createRetailerRequest.getName());
130
		retailer.setName(createRetailerRequest.getName());
119
		retailer.setNumber(createRetailerRequest.getNumber());
131
		retailer.setNumber(createRetailerRequest.getNumber());
120
		retailer.setType(createRetailerRequest.getType());
132
		retailer.setType(createRetailerRequest.getType());
Line 138... Line 150...
138
		documentRepository.markDocumentAsPersisted(retailerDocument.getId());
150
		documentRepository.markDocumentAsPersisted(retailerDocument.getId());
139
		if(retailerRepository.isExistByNumberAndType(retailer.getNumber(), retailer.getType())){
151
		if(retailerRepository.isExistByNumberAndType(retailer.getNumber(), retailer.getType())){
140
			throw new ProfitMandiBusinessException(ProfitMandiConstants.NUMBER + ", " + ProfitMandiConstants.TYPE, retailer.getNumber() + ", " + retailer.getType(), "RTLR_1001");
152
			throw new ProfitMandiBusinessException(ProfitMandiConstants.NUMBER + ", " + ProfitMandiConstants.TYPE, retailer.getNumber() + ", " + retailer.getType(), "RTLR_1001");
141
		}
153
		}
142
		documentRepository.markDocumentAsPersisted(shopDocument.getId());
154
		documentRepository.markDocumentAsPersisted(shopDocument.getId());
-
 
155
		in.shop2020.model.v1.user.User saholicUser = this.createSaholicUser(user.getEmailId()); 
143
		retailer.setId(this.createSololicUser(emailId));
156
		retailer.setId((int)saholicUser.getUserId());
144
		retailerRepository.persist(retailer);
157
		retailerRepository.persist(retailer);
145
		Shop shop = new Shop();
158
		Shop shop = new Shop();
146
		shop.setName(createRetailerRequest.getShop().getName());
159
		shop.setName(createRetailerRequest.getShop().getName());
147
		shop.setDocumentId(shopDocument.getId());
160
		shop.setDocumentId(shopDocument.getId());
148
		shop.setRetailerId(retailer.getId());
161
		shop.setRetailerId(retailer.getId());
Line 174... Line 187...
174
			ShopAddress shopAddress = new ShopAddress();
187
			ShopAddress shopAddress = new ShopAddress();
175
			shopAddress.setShopId(shop.getId());
188
			shopAddress.setShopId(shop.getId());
176
			shopAddress.setAddressId(addressShop.getId());
189
			shopAddress.setAddressId(addressShop.getId());
177
			shopAddressRepository.persist(shopAddress);
190
			shopAddressRepository.persist(shopAddress);
178
		}
191
		}
-
 
192
		UserAccounts ua = new UserAccounts();
-
 
193
		ua.setAccount_key(String.valueOf(saholicUser.getActiveCartId()));
-
 
194
		ua.setUser_id(user.getId());
-
 
195
		ua.setAccount_type(AccountType.cartId);
-
 
196
		userAccountRepository.persist(ua);
-
 
197
 
-
 
198
		UserAccounts ua2 = new UserAccounts();
-
 
199
		ua2.setAccount_key(String.valueOf(saholicUser.getActiveCartId()));
-
 
200
		ua2.setUser_id(user.getId());
-
 
201
		ua2.setAccount_type(AccountType.cartId);
-
 
202
		userAccountRepository.persist(ua2);
-
 
203
		
-
 
204
		UserRole ur = new UserRole();
-
 
205
		ur.setRoleId(RoleType.RETAILER.getValue());
-
 
206
		ur.setUserId(user.getId());
-
 
207
		userRoleRepository.persist(ur);
179
	}
208
	}
180
	
209
	
181
	private int createSololicUser(String emailId) throws ProfitMandiBusinessException{
210
	private in.shop2020.model.v1.user.User createSaholicUser(String emailId) throws ProfitMandiBusinessException{
182
		in.shop2020.model.v1.user.User user = new in.shop2020.model.v1.user.User();
211
		in.shop2020.model.v1.user.User user = new in.shop2020.model.v1.user.User();
183
		user.setEmail(emailId);
212
		user.setEmail(emailId);
184
		user.setPassword("");
213
		user.setPassword("");
185
		user.setCommunicationEmail(emailId);
214
		user.setCommunicationEmail(emailId);
186
		user.setSex(Sex.WONT_SAY);
215
		user.setSex(Sex.WONT_SAY);
187
 
216
 
188
		try {
217
		try {
189
			UserClient userContextServiceClient = new UserClient();
218
			UserClient userContextServiceClient = new UserClient();
190
			in.shop2020.model.v1.user.UserContextService.Client userClient = userContextServiceClient.getClient();
219
			in.shop2020.model.v1.user.UserContextService.Client userClient = userContextServiceClient.getClient();
191
			user = userClient.createUser(user);
220
			user = userClient.createUser(user);
192
			return (int)user.getUserId();
221
			return user;
193
		}catch (UserContextException ux){
222
		}catch (UserContextException ux){
194
			LOGGER.error("Unable to register user: " + ux.getMessage());
223
			LOGGER.error("Unable to register user: " + ux.getMessage());
195
			throw new ProfitMandiBusinessException(ProfitMandiConstants.EMAIL_ID, emailId, "");
224
			throw new ProfitMandiBusinessException(ProfitMandiConstants.EMAIL_ID, emailId, "");
196
		} catch (TTransportException e) {
225
		} catch (TTransportException e) {
197
			LOGGER.error("Unable to register user." + e);
226
			LOGGER.error("Unable to register user." + e);