Subversion Repositories SmartDukaan

Rev

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

Rev 24052 Rev 24121
Line 1... Line 1...
1
package com.smartdukaan.cron.scheduled;
1
package com.smartdukaan.cron.scheduled;
2
 
2
 
-
 
3
import java.io.IOException;
-
 
4
import java.io.InputStream;
3
import java.sql.Timestamp;
5
import java.sql.Timestamp;
4
import java.time.LocalDate;
6
import java.time.LocalDate;
5
import java.time.LocalDateTime;
7
import java.time.LocalDateTime;
6
import java.time.temporal.ChronoUnit;
8
import java.time.temporal.ChronoUnit;
7
import java.util.ArrayList;
9
import java.util.ArrayList;
Line 9... Line 11...
9
import java.util.HashMap;
11
import java.util.HashMap;
10
import java.util.List;
12
import java.util.List;
11
import java.util.Map;
13
import java.util.Map;
12
import java.util.stream.Collectors;
14
import java.util.stream.Collectors;
13
 
15
 
-
 
16
import javax.mail.MessagingException;
-
 
17
import javax.mail.internet.InternetAddress;
-
 
18
import javax.mail.internet.MimeMessage;
-
 
19
 
-
 
20
import org.apache.commons.codec.CharEncoding;
-
 
21
import org.apache.commons.io.IOUtils;
14
import org.apache.commons.io.output.ByteArrayOutputStream;
22
import org.apache.commons.io.output.ByteArrayOutputStream;
15
import org.apache.logging.log4j.LogManager;
23
import org.apache.logging.log4j.LogManager;
16
import org.apache.logging.log4j.Logger;
24
import org.apache.logging.log4j.Logger;
17
import org.springframework.beans.factory.annotation.Autowired;
25
import org.springframework.beans.factory.annotation.Autowired;
18
import org.springframework.beans.factory.annotation.Qualifier;
26
import org.springframework.beans.factory.annotation.Qualifier;
19
import org.springframework.beans.factory.annotation.Value;
27
import org.springframework.beans.factory.annotation.Value;
20
import org.springframework.core.io.ByteArrayResource;
28
import org.springframework.core.io.ByteArrayResource;
21
import org.springframework.mail.javamail.JavaMailSender;
29
import org.springframework.mail.javamail.JavaMailSender;
-
 
30
import org.springframework.mail.javamail.MimeMessageHelper;
22
import org.springframework.stereotype.Component;
31
import org.springframework.stereotype.Component;
23
import org.springframework.transaction.annotation.Transactional;
32
import org.springframework.transaction.annotation.Transactional;
24
 
33
 
25
import com.spice.profitmandi.common.enumuration.RechargeStatus;
34
import com.spice.profitmandi.common.enumuration.RechargeStatus;
-
 
35
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
26
import com.spice.profitmandi.common.model.CustomRetailer;
36
import com.spice.profitmandi.common.model.CustomRetailer;
27
import com.spice.profitmandi.common.model.RechargeCredential;
37
import com.spice.profitmandi.common.model.RechargeCredential;
28
import com.spice.profitmandi.common.util.FileUtil;
38
import com.spice.profitmandi.common.util.FileUtil;
29
import com.spice.profitmandi.common.util.FormattingUtils;
39
import com.spice.profitmandi.common.util.FormattingUtils;
30
import com.spice.profitmandi.common.util.Utils;
40
import com.spice.profitmandi.common.util.Utils;
Line 33... Line 43...
33
import com.spice.profitmandi.dao.entity.dtr.RechargeProviderCreditWalletHistory;
43
import com.spice.profitmandi.dao.entity.dtr.RechargeProviderCreditWalletHistory;
34
import com.spice.profitmandi.dao.entity.dtr.RechargeTransaction;
44
import com.spice.profitmandi.dao.entity.dtr.RechargeTransaction;
35
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
45
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
36
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
46
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
37
import com.spice.profitmandi.dao.entity.fofo.Purchase;
47
import com.spice.profitmandi.dao.entity.fofo.Purchase;
38
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
-
 
39
import com.spice.profitmandi.dao.entity.transaction.Order;
48
import com.spice.profitmandi.dao.entity.transaction.Order;
40
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
-
 
41
import com.spice.profitmandi.dao.repository.dtr.DailyRechargeRepository;
49
import com.spice.profitmandi.dao.repository.dtr.DailyRechargeRepository;
42
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
50
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
43
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderCreditWalletHistoryRepository;
51
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderCreditWalletHistoryRepository;
44
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderRepository;
52
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderRepository;
45
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
53
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
46
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
54
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
47
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
55
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
48
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
-
 
49
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
56
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
50
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
-
 
51
import com.spice.profitmandi.service.inventory.InventoryService;
57
import com.spice.profitmandi.service.inventory.InventoryService;
52
import com.spice.profitmandi.service.recharge.provider.OxigenRechargeProviderService;
58
import com.spice.profitmandi.service.recharge.provider.OxigenRechargeProviderService;
53
import com.spice.profitmandi.service.recharge.provider.ThinkWalnutDigitalRechargeProviderService;
59
import com.spice.profitmandi.service.recharge.provider.ThinkWalnutDigitalRechargeProviderService;
54
import com.spice.profitmandi.service.scheme.SchemeService;
60
import com.spice.profitmandi.service.scheme.SchemeService;
-
 
61
import com.spice.profitmandi.service.slab.TargetSlabService;
55
import com.spice.profitmandi.service.transaction.TransactionService;
62
import com.spice.profitmandi.service.transaction.TransactionService;
56
import com.spice.profitmandi.service.user.RetailerService;
63
import com.spice.profitmandi.service.user.RetailerService;
57
import com.spice.profitmandi.service.wallet.WalletService;
64
import com.spice.profitmandi.service.wallet.WalletService;
58
 
65
 
59
import in.shop2020.model.v1.order.WalletReferenceType;
66
import in.shop2020.model.v1.order.WalletReferenceType;
Line 99... Line 106...
99
	private String thinkWalnutDigitalRechargeAuthKey;
106
	private String thinkWalnutDigitalRechargeAuthKey;
100
 
107
 
101
	@Autowired
108
	@Autowired
102
	private PurchaseRepository purchaseRepository;
109
	private PurchaseRepository purchaseRepository;
103
	
110
	
104
	@Autowired
-
 
105
	private SchemeInOutRepository schemeInOutRepository;
-
 
106
 
111
 
107
	@Autowired
112
	@Autowired
108
	private SchemeService schemeService;
113
	private SchemeService schemeService;
109
 
114
 
110
	@Autowired
115
	@Autowired
Line 131... Line 136...
131
	@Autowired
136
	@Autowired
132
	private DailyRechargeRepository dailyRechargeRepository;
137
	private DailyRechargeRepository dailyRechargeRepository;
133
 
138
 
134
	@Autowired
139
	@Autowired
135
	private FofoStoreRepository fofoStoreRepository;
140
	private FofoStoreRepository fofoStoreRepository;
-
 
141
	
-
 
142
	@Autowired
-
 
143
	private TargetSlabService targetService;
136
 
144
 
137
	@Value("${prod}")
145
	@Value("${prod}")
138
	private boolean prod;
146
	private boolean prod;
139
 
147
 
140
	@Autowired
148
	@Autowired
Line 147... Line 155...
147
	private OrderRepository orderRepository;
155
	private OrderRepository orderRepository;
148
 
156
 
149
	@Autowired
157
	@Autowired
150
	private JavaMailSender mailSender;
158
	private JavaMailSender mailSender;
151
	
159
	
152
	@Autowired
160
 
153
	private PriceDropRepository priceDropRepository;
-
 
154
 
161
 
155
	@Autowired
162
	@Autowired
156
	@Qualifier(value = "googleMailSender")
163
	@Qualifier(value = "googleMailSender")
157
	private JavaMailSender googleMailSender;
164
	private JavaMailSender googleMailSender;
158
 
165
 
159
	@Autowired
166
	@Autowired
160
	private InventoryService inventoryService;
167
	private InventoryService inventoryService;
-
 
168
	
-
 
169
	
161
 
170
 
162
	private static final Logger LOGGER = LogManager.getLogger(ScheduledTasks.class);
171
	private static final Logger LOGGER = LogManager.getLogger(ScheduledTasks.class);
163
 
172
 
164
	public void generateDailyRecharge() {
173
	public void generateDailyRecharge() {
165
		List<RechargeProviderCreditWalletHistory> allCreditHistory = rechargeProviderCreditWalletHistoryRepository
174
		List<RechargeProviderCreditWalletHistory> allCreditHistory = rechargeProviderCreditWalletHistoryRepository
Line 359... Line 368...
359
		Utils.sendMailWithAttachment(googleMailSender, "adeel.yazdani@smartdukaan.com",
368
		Utils.sendMailWithAttachment(googleMailSender, "adeel.yazdani@smartdukaan.com",
360
				new String[] { "amandeep.singh@smartdukaan.com", "tarun.verma@smartdukaan.com",
369
				new String[] { "amandeep.singh@smartdukaan.com", "tarun.verma@smartdukaan.com",
361
						"kamini.sharma@smartdukaan.com", "dhruv.kathpal@smartdukaan.com" },
370
						"kamini.sharma@smartdukaan.com", "dhruv.kathpal@smartdukaan.com" },
362
				"Partner Investment Summary", "PFA", fileName, new ByteArrayResource(baos.toByteArray()));
371
				"Partner Investment Summary", "PFA", fileName, new ByteArrayResource(baos.toByteArray()));
363
	}
372
	}
-
 
373
	
-
 
374
	public void sendMailWithAttachments(String email,String subject,String body) throws MessagingException, ProfitMandiBusinessException, IOException
-
 
375
	{
-
 
376
		MimeMessage message = mailSender.createMimeMessage();
-
 
377
    	MimeMessageHelper helper = new MimeMessageHelper(message,true,CharEncoding.UTF_8);
-
 
378
    	InputStream is=targetService.getDailySaleReportVsTarget();
-
 
379
    	helper.setSubject(subject);
-
 
380
    	helper.setText(body);
-
 
381
    	helper.addAttachment("saleReport"+LocalDate.now()+".xlsx",new ByteArrayResource(IOUtils.toByteArray(is)));
-
 
382
    	helper.setTo(email);
-
 
383
    	InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "ProfitMandi Admin");
-
 
384
    	helper.setFrom(senderAddress);
-
 
385
    	mailSender.send(message);
-
 
386
	}
364
 
387
 
365
}
388
}