Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
23755 amit.gupta 1
package com.smartdukaan.cron;
23723 amit.gupta 2
 
24174 govind 3
import java.util.List;
23906 amit.gupta 4
import java.util.Properties;
5
 
23723 amit.gupta 6
import org.apache.logging.log4j.LogManager;
7
import org.apache.logging.log4j.Logger;
23898 amit.gupta 8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.boot.ApplicationArguments;
10
import org.springframework.boot.ApplicationRunner;
23723 amit.gupta 11
import org.springframework.boot.WebApplicationType;
12
import org.springframework.boot.autoconfigure.SpringBootApplication;
13
import org.springframework.boot.builder.SpringApplicationBuilder;
14
import org.springframework.cache.annotation.EnableCaching;
15
import org.springframework.context.annotation.Bean;
16
import org.springframework.context.annotation.ComponentScan;
23935 amit.gupta 17
import org.springframework.context.annotation.Primary;
23723 amit.gupta 18
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
19
import org.springframework.core.io.ClassPathResource;
23906 amit.gupta 20
import org.springframework.mail.javamail.JavaMailSender;
21
import org.springframework.mail.javamail.JavaMailSenderImpl;
23723 amit.gupta 22
import org.springframework.scheduling.annotation.EnableScheduling;
23
 
23898 amit.gupta 24
import com.smartdukaan.cron.migrations.RunOnceTasks;
24827 amit.gupta 25
import com.smartdukaan.cron.scheduled.Reconciliation;
23929 amit.gupta 26
import com.smartdukaan.cron.scheduled.ScheduledTasks;
24174 govind 27
import com.spice.profitmandi.dao.entity.fofo.SaleHeadDetails;
28
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
23724 amit.gupta 29
 
23723 amit.gupta 30
@SpringBootApplication
31
@EnableCaching
32
@EnableScheduling
23755 amit.gupta 33
@ComponentScan("com.smartdukaan.cron.*, com.spice.profitmandi.common.*")
24122 govind 34
public class Application implements ApplicationRunner {
35
 
36
	private static final Logger LOGGER = LogManager.getLogger(Application.class);
37
 
24174 govind 38
	@Autowired
39
	private FofoStoreRepository fofoStoreRepository;
24603 amit.gupta 40
 
23723 amit.gupta 41
	public static void main(String[] args) throws Throwable {
23738 amit.gupta 42
		new SpringApplicationBuilder(Application.class).web(WebApplicationType.NONE).run(args);
23723 amit.gupta 43
	}
24122 govind 44
 
23723 amit.gupta 45
	@Bean
23738 amit.gupta 46
	public static PropertySourcesPlaceholderConfigurer propertyConfigurer1() {
23755 amit.gupta 47
		LOGGER.info("Called Configuration");
24122 govind 48
		PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();
23723 amit.gupta 49
		propertySourcesPlaceholderConfigurer.setLocation(new ClassPathResource("/META-INF/env.properties"));
50
		return propertySourcesPlaceholderConfigurer;
51
	}
24122 govind 52
 
53
	@Bean(name = "mailSender")
23935 amit.gupta 54
	@Primary
24122 govind 55
	public JavaMailSender sendGridMailSender() {
56
		JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
23723 amit.gupta 57
 
24122 govind 58
		// Using gmail
59
		mailSender.setHost("smtp.sendgrid.net");
60
		mailSender.setPort(587);
61
		mailSender.setUsername("shop2020");
62
		mailSender.setPassword("U2/=fP,t");
63
 
64
		Properties javaMailProperties = new Properties();
65
		javaMailProperties.put("mail.smtp.starttls.enable", "false");
66
		javaMailProperties.put("mail.smtp.auth", "true");
67
		javaMailProperties.put("mail.transport.protocol", "smtp");
24603 amit.gupta 68
		// javaMailProperties.put("mail.debug", "true");// Prints out everything on
69
		// screen
24122 govind 70
 
71
		mailSender.setJavaMailProperties(javaMailProperties);
72
		return mailSender;
73
	}
74
 
23935 amit.gupta 75
	@Bean
24122 govind 76
	public JavaMailSender googleMailSender() {
23935 amit.gupta 77
		JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
24122 govind 78
		// Using gmail
23935 amit.gupta 79
		mailSender.setHost("smtp.gmail.com");
80
		mailSender.setPort(587);
81
		mailSender.setUsername("build@shop2020.in");
82
		mailSender.setPassword("cafe@nes");
24122 govind 83
 
23935 amit.gupta 84
		Properties javaMailProperties = new Properties();
85
		javaMailProperties.put("mail.smtp.starttls.enable", "true");
86
		javaMailProperties.put("mail.smtp.auth", "true");
87
		javaMailProperties.put("mail.transport.protocol", "smtp");
24122 govind 88
		javaMailProperties.put("mail.debug", "true");// Prints out everything on screen
23935 amit.gupta 89
		mailSender.setJavaMailProperties(javaMailProperties);
90
		return mailSender;
91
	}
92
 
24122 govind 93
	@Autowired
23898 amit.gupta 94
	private RunOnceTasks runOnceTasks;
24122 govind 95
 
96
	@Autowired
23929 amit.gupta 97
	private ScheduledTasks scheduledTasks;
24848 amit.gupta 98
 
24827 amit.gupta 99
	@Autowired
100
	private Reconciliation reconciliation;
24122 govind 101
 
23898 amit.gupta 102
	@Override
103
	public void run(ApplicationArguments args) throws Exception {
104
		LOGGER.info("Called run method");
25073 amit.gupta 105
		if(args.containsOption("reconcileExpiredFixedSchemes")) {
106
			reconciliation.reconcileExpiredFixedSchemes();
107
			System.exit(0);
108
		}
109
		if (args.containsOption("fixSchemePayouts")) {
110
 
25029 amit.gupta 111
			runOnceTasks.fixSchemePayouts();
112
			System.exit(0);
113
		}
25022 amit.gupta 114
		if (args.containsOption("populateSchemes")) {
115
			runOnceTasks.populateSchemes();
116
			System.exit(0);
117
		}
24855 amit.gupta 118
		if (args.containsOption("notify")) {
25073 amit.gupta 119
			if (args.containsOption("fofoId")) {
24988 tejbeer 120
				int fofoId = Integer.parseInt(args.getOptionValues("fofoId").get(0));
121
				scheduledTasks.sendDailySalesReportNotificationToPartner(fofoId);
122
			}
24855 amit.gupta 123
			System.exit(0);
124
		}
24955 amit.gupta 125
		if (args.containsOption("findMismatchesInIndent")) {
126
			runOnceTasks.findMismatchesInIndent();
127
			System.exit(0);
128
		}
24862 amit.gupta 129
		if (args.containsOption("notifyAll")) {
130
			scheduledTasks.sendDailySalesReportNotificationToPartner(null);
131
			System.exit(0);
132
		}
25029 amit.gupta 133
		if (args.containsOption("OutSchemeReco")) {
25073 amit.gupta 134
			scheduledTasks.dryRunOutSchemeReco();
24848 amit.gupta 135
			// runOnceTasks.migrateChallansToInvoices();
25073 amit.gupta 136
			// reconciliation.dailyReconciliation();
24603 amit.gupta 137
			System.exit(0);
24592 amit.gupta 138
		}
25029 amit.gupta 139
		if (args.containsOption("dryRunSchemeReco")) {
140
			scheduledTasks.dryRunSchemeReco();
141
			// runOnceTasks.migrateChallansToInvoices();
25073 amit.gupta 142
			// reconciliation.dailyReconciliation();
24674 amit.gupta 143
			System.exit(0);
144
		}
25029 amit.gupta 145
		if (args.containsOption("OutReco1")) {
146
			scheduledTasks.dryRunSchemeOutReco1();
147
			System.exit(0);
148
		}
24883 amit.gupta 149
		if (args.containsOption("createTargets")) {
150
			runOnceTasks.createMonthlyTargets();
151
			System.exit(0);
152
		}
24122 govind 153
		if (args.containsOption("once")) {
154
			if (args.containsOption("1")) {
24603 amit.gupta 155
				if (args.containsOption("test")) {
24271 amit.gupta 156
					scheduledTasks.sendPartnerInvestmentDetails(args.getOptionValues("email"));
24272 amit.gupta 157
				} else {
158
					scheduledTasks.sendPartnerInvestmentDetails();
24271 amit.gupta 159
				}
24122 govind 160
				System.exit(0);
161
			}
24682 amit.gupta 162
			if (args.containsOption("2")) {
24696 amit.gupta 163
				if (args.containsOption("test")) {
24848 amit.gupta 164
					String[] emails = new String[args.getOptionValues("email").size()];
24696 amit.gupta 165
					scheduledTasks.sendAgeingReport(args.getOptionValues("email").toArray(emails));
166
				} else {
167
					scheduledTasks.sendAgeingReport();
168
				}
24682 amit.gupta 169
				System.exit(0);
170
			}
24174 govind 171
			if (args.containsOption("saleHeads")) {
24603 amit.gupta 172
				List<SaleHeadDetails> saleHeadDetails = fofoStoreRepository.selectAllSalesHeadDetails();
173
				for (SaleHeadDetails saleHeadDetail : saleHeadDetails) {
24174 govind 174
					scheduledTasks.sendMailToSalesHeadAboutTargetAndSales(saleHeadDetail);
175
				}
24122 govind 176
				System.exit(0);
24603 amit.gupta 177
 
24122 govind 178
			}
24174 govind 179
			if (args.containsOption("partners")) {
24603 amit.gupta 180
				scheduledTasks.sendMailToPartnerAboutTargetAndSales();
24174 govind 181
				System.exit(0);
24603 amit.gupta 182
 
24174 govind 183
			}
24151 amit.gupta 184
			if (args.containsOption("3")) {
24603 amit.gupta 185
				if (args.getOptionNames().contains("offset")) {
24461 amit.gupta 186
					int offset = Integer.parseInt(args.getOptionValues("offset").get(0));
24603 amit.gupta 187
					if (args.getOptionNames().contains("days")) {
24461 amit.gupta 188
						int durationDays = Integer.parseInt(args.getOptionValues("days").get(0));
189
						scheduledTasks.processScheme(offset, durationDays);
190
					} else {
191
						scheduledTasks.processScheme(offset);
192
					}
24560 amit.gupta 193
				} else if (args.containsOption("catalogid")) {
24603 amit.gupta 194
					// scheduledTasks.processSchemeForModel(args.getOptionValues("catalogid").get(0));
24461 amit.gupta 195
				} else {
196
					scheduledTasks.processScheme();
197
				}
24151 amit.gupta 198
				System.exit(0);
199
			}
24238 amit.gupta 200
			if (args.containsOption("4")) {
24241 amit.gupta 201
				scheduledTasks.evaluateExcessSchemeOut();
24256 amit.gupta 202
			}
203
			if (args.containsOption("5")) {
204
				int offset = Integer.parseInt(args.getOptionValues("offset").get(0));
205
				scheduledTasks.processScheme(offset);
24238 amit.gupta 206
				System.exit(0);
207
			}
24603 amit.gupta 208
			if (args.containsOption("cancelOrder")) {
24265 amit.gupta 209
				List<String> invoiceNumbers = args.getOptionValues("invoiceNumber");
210
				runOnceTasks.cancelOrder(invoiceNumbers);
211
			}
24641 amit.gupta 212
			if (args.containsOption("migratePurchase")) {
213
				runOnceTasks.migratePurchase();
214
			}
24603 amit.gupta 215
			if (args.containsOption("migratepd")) {
24431 amit.gupta 216
				scheduledTasks.moveImeisToPriceDropImeis();
217
			}
24603 amit.gupta 218
			if (args.containsOption("walletmismatch")) {
24542 amit.gupta 219
				scheduledTasks.walletmismatch();
220
			}
24603 amit.gupta 221
			if (args.containsOption("schemewalletmismatch")) {
24580 amit.gupta 222
				scheduledTasks.schemewalletmismatch();
223
			}
24603 amit.gupta 224
			if (args.containsOption("gst")) {
24542 amit.gupta 225
				scheduledTasks.gst();
226
			}
24265 amit.gupta 227
			System.exit(0);
23898 amit.gupta 228
		}
229
	}
24603 amit.gupta 230
 
24848 amit.gupta 231
}