Subversion Repositories SmartDukaan

Rev

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