Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
21525 amit.gupta 1
package com.spice.profitmandi.service;
2
 
22845 amit.gupta 3
import java.time.LocalDateTime;
23204 ashik.ali 4
import java.util.HashMap;
5
import java.util.Map;
22845 amit.gupta 6
 
21525 amit.gupta 7
import org.hibernate.Criteria;
8
import org.hibernate.Session;
9
import org.hibernate.SessionFactory;
10
import org.hibernate.criterion.Restrictions;
11
import org.springframework.beans.factory.annotation.Autowired;
12
import org.springframework.stereotype.Component;
22038 amit.gupta 13
import org.springframework.transaction.annotation.Transactional;
21525 amit.gupta 14
 
23204 ashik.ali 15
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
16
import com.spice.profitmandi.common.model.ProfitMandiConstants;
22020 ashik.ali 17
import com.spice.profitmandi.dao.entity.dtr.ActivationCode;
21729 ashik.ali 18
import com.spice.profitmandi.dao.entity.dtr.Retailer;
19
import com.spice.profitmandi.dao.entity.dtr.User;
23273 ashik.ali 20
import com.spice.profitmandi.dao.entity.dtr.UserAccount;
23204 ashik.ali 21
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
22
import com.spice.profitmandi.dao.enumuration.dtr.AccountType;
23
import com.spice.profitmandi.dao.enumuration.dtr.RoleType;
24
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
21729 ashik.ali 25
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
23204 ashik.ali 26
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
21729 ashik.ali 27
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
23204 ashik.ali 28
import com.spice.profitmandi.dao.repository.dtr.UserRoleRepository;
21525 amit.gupta 29
import com.spice.profitmandi.thrift.clients.TransactionClient;
30
 
31
import in.shop2020.model.v1.order.TransactionService;
32
 
33
@Component
22038 amit.gupta 34
@Transactional(rollbackFor=Throwable.class)
21525 amit.gupta 35
public class UserServiceImpl implements UserService {
36
 
37
	@Autowired
22931 ashik.ali 38
	private SessionFactory sessionFactory;
21525 amit.gupta 39
 
40
	@Autowired
23204 ashik.ali 41
	private UserRepository userRepository;
21525 amit.gupta 42
 
43
	@Autowired
23204 ashik.ali 44
	private RetailerRepository retailerRepo;
21525 amit.gupta 45
 
23204 ashik.ali 46
	@Autowired
47
	private FofoStoreRepository fofoStoreRepository;
48
 
49
	@Autowired
50
	private UserAccountRepository userAccountRepository;
51
 
52
	@Autowired
53
	private UserRoleRepository userRoleRepository;
54
 
21525 amit.gupta 55
 
23204 ashik.ali 56
	@SuppressWarnings("deprecation")
21525 amit.gupta 57
	@Override
58
	public boolean updateActivation(int userId, int retailerId, String activationCode) throws Throwable {
59
 
60
		TransactionClient transactionServiceClient = new TransactionClient();
61
		TransactionService.Client tsc = transactionServiceClient.getClient();
62
		boolean registered = tsc.registerRsa(retailerId, activationCode);
63
 
64
		Session session = sessionFactory.getCurrentSession();
65
 
66
		if(!registered){
67
			Criteria cr = session.createCriteria(ActivationCode.class);
68
			cr.add(Restrictions.eq("code", activationCode)).add(Restrictions.eq("status", true));
69
			ActivationCode code = (ActivationCode)cr.uniqueResult();
70
			if(code==null) {
71
				return false;
72
			} else {
73
				registered=true;
74
				code.setStatus(false);
75
				session.update(code);
76
			}
77
		}
78
 
79
		if(registered) {
23204 ashik.ali 80
			User user = userRepository.selectById(userId);
21525 amit.gupta 81
			user.setActivated(true);
22845 amit.gupta 82
			user.setActivationTime(LocalDateTime.now());
21525 amit.gupta 83
			user.setReferrer(activationCode);
84
			session.update(user);
85
 
86
			Retailer retailer = retailerRepo.selectById(retailerId);
87
			retailer.setActive(true);
88
			session.update(retailer);
89
		}
90
 
91
		return registered;
92
	}
22845 amit.gupta 93
 
94
 
95
	@Override
96
	public boolean createActivationCode(int userId) throws Throwable {
97
		// TODO Auto-generated method stub
98
		return false;
99
	}
23204 ashik.ali 100
 
101
	@Override
102
	public Map<String, String> getEmailsAndFofoStoreCodeByUserId(int userId) throws ProfitMandiBusinessException {
103
		User user = userRepository.selectById(userId);
23273 ashik.ali 104
		UserAccount userAccount = userAccountRepository.selectByUserIdType(userId, AccountType.saholic);
23204 ashik.ali 105
		Map<String, String> map = new HashMap<>();
106
		map.put(ProfitMandiConstants.EMAIL_ID, user.getEmailId());
107
		map.put(ProfitMandiConstants.SECONDRY_EMAIL_ID, user.getSecondryEmailId());
108
		userRoleRepository.selectByUserIdAndRoleType(userId, RoleType.FOFO);
23273 ashik.ali 109
		FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(userAccount.getAccountKey());
23204 ashik.ali 110
		map.put(ProfitMandiConstants.CODE, fofoStore.getCode());
111
		return map;
112
	}
21525 amit.gupta 113
}