From 33ac3b8bf6683024784d9e3152732bc0d50472c3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 03 四月 2025 22:50:47 +0800
Subject: [PATCH] 修改文档bug
---
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 1204 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 984 insertions(+), 220 deletions(-)
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index 420370b..9e42453 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -9,10 +9,7 @@
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.JwtTokenUtil;
import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.system.dao.DriverActivityRegisteredMapper;
-import com.stylefeng.guns.modular.system.dao.DriverMapper;
-import com.stylefeng.guns.modular.system.dao.UserActivityInviteMapper;
-import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
+import com.stylefeng.guns.modular.system.dao.*;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
@@ -21,6 +18,7 @@
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.Tingg.TinggPayUtil;
import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest;
+import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
@@ -36,10 +34,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-import java.io.File;
+import java.io.*;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -86,9 +85,15 @@
@Resource
private DriverMapper driverMapper;
+
+ @Autowired
+ private DateUtil dateUtil;
@Resource
private DriverActivityRegisteredMapper driverActivityRegisteredMapper;
+
+ @Resource
+ private DriverActivityHistoryMapper driverActivityHistoryMapper;
@Autowired
private IIncomeService incomeService;
@@ -116,6 +121,9 @@
@Autowired
private SMSUtil smsUtil;
+ @Autowired
+ private TEmailService emailService;
+
/**
* 获取短信验证码
@@ -138,20 +146,27 @@
redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
switch (language){
case 1:
- sms = "您的验证码为:" + authCode + ",该验证码5分钟内有效,请勿泄漏于他人!";
+// sms = "您的验证码为:" + authCode + ",该验证码5分钟内有效,请勿泄漏于他人!";
+ sms = "Your verification code is " + authCode + ", it is valid within 5 minutes, please do not reveal it to others.";
break;
case 2:
- sms = "Your verification code is: " + authCode + ", the verification code is valid within 5 minutes, do not leak to others!";
+ sms = "Your verification code is " + authCode + ", it is valid within 5 minutes, please do not reveal it to others.";
break;
case 3:
- sms = "Votre code de vérification est: " + authCode + ". Ce code est valide pendant 5 minutes. Ne le divulguez pas aux autres!";
+ sms = "Votre code de validation est " + authCode + " et il est valide pendant 5 minutes. Veuillez ne pas le révéler à d’autres personnes.";
break;
}
smsUtil.sendCellulantMessage(phone, sms);
+ smsrecordService.saveData(type, phone, authCode, sms);
}
return ResultUtil.success();
}
+
+
+
+
+
/**
* 校验短信验证码
@@ -163,6 +178,7 @@
@Override
public boolean checkCaptcha(String phone, String code) throws Exception {
Object value = redisUtil.getValue(phone);
+ redisUtil.remove(phone);
if("1246".equals(code)){
return true;
}
@@ -187,7 +203,7 @@
Integer userType, Integer language) throws Exception {
boolean b = this.checkCaptcha(phone, code);
if(!b){
- return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+ return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
}
UserInfo userInfo = userInfoMapper.queryByPhone(phone);
@@ -205,7 +221,7 @@
//用户所属企业
if(null != lat && null != lng){
- ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lat);
+ ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lat, null);
AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
String[] citys = new String[addressComponentsVos.length];
for (int i = 0; i < addressComponentsVos.length; i++) {
@@ -236,36 +252,74 @@
if(1 == language){
document.getElementById("english").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("注册成功");
Element user_chinese = document.getElementById("user_chinese");
user_chinese.text("您好 " + userInfo.getNickName() + ",");
}
if(2 == language){
document.getElementById("chinese").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("Registered successfully");
Element user_english = document.getElementById("user_english");
user_english.text("Hello " + userInfo.getNickName() + ",");
}
if(3 == language){
document.getElementById("chinese").remove();
document.getElementById("english").remove();
+ document.getElementsByTag("title").get(0).text("Enregistré avec succès");
Element user_french = document.getElementById("user_french");
user_french.text("Bonjour " + userInfo.getNickName() + ",");
}
- EmailUtil.send(userInfo.getEmail(), language == 1 ? "注册成功" : language == 2 ? "Successful registration" : "Inscription réussie", document.html());
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès", document.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/registration_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/registration_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
this.addCoupon(userInfo, language);//添加优惠券
if(null != uid){
if(type == 2){//司机分享
Driver driver = driverMapper.selectById(uid);
- List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
+ Map<String, Date> date = dateUtil.getStartAndEndDate(new Date());
+ //邀请用户注册
+ List<DriverActivityHistory> list = driverActivityHistoryMapper.queryList(uid, 2, 1, date.get("startTime"), date.get("endTime"));
BigDecimal bigDecimal = new BigDecimal("0");
- for(Map<String, Object> map : query){
- if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
- bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
- incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
- }
+ for (DriverActivityHistory driverActivityHistory : list) {
+ bigDecimal = bigDecimal.add(new BigDecimal(driverActivityHistory.getMoney()));
+ incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, driverActivityHistory.getMoney());
+ driverActivityHistory.setCarryOut(2);
+ driverActivityHistory.setCompletionTime(new Date());
+ driverActivityHistoryMapper.updateById(driverActivityHistory);
}
+
driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -284,6 +338,7 @@
document1.getElementById("reward").remove();
document1.getElementById("rewardToday").remove();
+ document1.getElementsByTag("title").get(0).text("司机奖励通知");
Element user_user = document1.getElementById("user_user");
user_user.text("您好 " + driver.getFirstName() + " " + driver.getLastName() + ",");
Element user_content = document1.getElementById("user_content");
@@ -299,6 +354,7 @@
document1.getElementById("reward1").remove();
document1.getElementById("rewardToday1").remove();
+ document1.getElementsByTag("title").get(0).text("Reward-driver notice");
Element user1_user = document1.getElementById("user1_user");
user1_user.text("Hello " + driver.getFirstName() + " " + driver.getLastName() + ",");
Element user1_content = document1.getElementById("user1_content");
@@ -314,23 +370,67 @@
document1.getElementById("reward1").remove();
document1.getElementById("rewardToday1").remove();
+ document1.getElementsByTag("title").get(0).text("Avis de chauffeur de récompense");
Element user2_user = document1.getElementById("user2_user");
user2_user.text("Bonjour " + driver.getFirstName() + " " + driver.getLastName() + ",");
Element user2_content = document1.getElementById("user2_content");
user2_content.text("Vous avez invité avec succès un utilisateur à s’inscrire à i-go pour recevoir une récompense GHS " + bigDecimal.doubleValue() + ". Veuillez vérifier");
}
- EmailUtil.send(driver.getEmail(), language == 1 ? "邀请奖励" : language == 2 ? "invitation bonus" : "prime d'invitation", document1.html());
+ EmailUtil.send(driver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/invitation_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/invitation_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(driver.getId());
+ tEmail.setType(2);
+ tEmail.setName(language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
}
+
if(type == 1){//用户分享
UserInfo userInfo1 = userInfoMapper.selectById(uid);
List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo1.getCompanyId());
Date date = new Date();
for(Map<String, Object> map : query){
Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
- String startTime = map.get("startTime").toString();
- String endTime = map.get("endTime").toString();
+ String startTime = "";
+ String endTime = "";
+ if(null != map.get("startTime")){
+ startTime = map.get("startTime").toString();
+ map.put("startTime", DateUtil.conversionFormat(language, startTime));
+ startTime = DateUtil.conversionFormat(language, startTime);
+ }
+ if(null != map.get("endTime")){
+ endTime = map.get("endTime").toString();
+ map.put("endTime", DateUtil.conversionFormat(language, endTime));
+ endTime = DateUtil.conversionFormat(language, endTime);
+ }
int num = 0;
+ double fullMoney = 0;
for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
//判断当前优惠券金额是否大于可发放剩余总金额
if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
@@ -356,6 +456,7 @@
//修改剩余可发放总金额
lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
num++;
+ fullMoney = userCouponRecord.getFullMoney();
}
UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -367,34 +468,74 @@
if(language == 1){
document1.getElementById("english").remove();
document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("优惠券到账");
Element chinese_user = document1.getElementById("chinese_user");
chinese_user.text("您好 " + userInfo1.getNickName() + ",");
Element chinese_number = document1.getElementById("chinese_number");
chinese_number.text("您有" + num + "张优惠券到账");
Element chinese_date = document1.getElementById("chinese_date");
chinese_date.text("此活动有效期在" + startTime + "至" + endTime + ",详情请查看I-GO平台");
+ Element chinese_remark = document1.getElementById("chinese_remark");
+ chinese_remark.text("注意:满减活动,每单消费至少GHS " + fullMoney + ",才可享用。");
}
if(language == 2){
document1.getElementById("chinese").remove();
document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("Coupon is in");
Element english_user = document1.getElementById("english_user");
english_user.text("Hello " + userInfo1.getNickName() + ",");
Element english_number = document1.getElementById("english_number");
english_number.text("You have received " + num + " coupons");
Element english_date = document1.getElementById("english_date");
- english_date.text("You could use them from" + startTime + "to" + endTime);
+ english_date.text("You could use them from " + startTime + " to " + endTime);
+ Element english_remark = document1.getElementById("english_remark");
+ english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
}
if(language == 3){
document1.getElementById("chinese").remove();
document1.getElementById("english").remove();
+ document1.getElementsByTag("title").get(0).text("Le coupon est arrivé sur le compte");
Element french_user = document1.getElementById("french_user");
- french_user.text("Bonjour " + userInfo1.getNickName() + ",");
+ french_user.text("Cher(ère) " + userInfo1.getNickName() + ",");
Element french_number = document1.getElementById("french_number");
- french_number.text("Vous avez " + num + " coupons à recevoir");
+ french_number.text("Vous avez reçu " + num + " coupons.");
Element french_date = document1.getElementById("french_date");
- french_date.text("Cette promotion est valide du" + startTime + "au" + endTime);
+ french_date.text("Vous devriez les utiliser du" + startTime + " au " + endTime + ", voir le détail sur la plate-forme I-GO.");
+ Element french_remark = document1.getElementById("french_remark");
+ french_remark.text("Remarque! Le coupon n'est valable que pour le tarif d'au moins GHS " + fullMoney + " par trajet.");
}
- EmailUtil.send(userInfo1.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon arrives" : "Le coupon arrive", document1.html());
+ EmailUtil.send(userInfo1.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/coupon_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/coupon_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
}
@@ -402,7 +543,7 @@
}
}
if(userInfo.getState() == 2){
- return ResultUtil.error("账号被冻结");
+ return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
}
//调用单点登录的逻辑
@@ -416,15 +557,368 @@
loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
loginWarpper.setEmail(userInfo.getEmail());
-
- smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
return ResultUtil.success(loginWarpper);
}
+
+
@Override
public synchronized ResultUtil<LoginWarpper> captchaLogin(String phoneOperator, String phone, String code, Integer uid, Integer type, Integer userType, Integer language) throws Exception {
- ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phoneOperator, phone, code, null, null, null,uid,type,userType,language);
- return resultUtil;
+ boolean b = this.checkCaptcha(phone, code);
+ if(!b){
+ return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
+ }
+
+ UserInfo userInfo = userInfoMapper.queryByPhone(phone);
+ if(null != userInfo){
+ return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "The mobile phone number has been registered" : "Le numéro de téléphone portable a été enregistré");
+ }
+ if(null == userInfo){
+ userInfo = new UserInfo();
+ userInfo.setPhoneOperator(phoneOperator);
+ userInfo.setPhone(phone);
+ userInfo.setPassWord(ShiroKit.md5("", salt));
+ userInfo.setNickName(this.getDefaultName());
+ userInfo.setRegistIp(null);
+ userInfo.setIsAuth(1);
+ userInfo.setConsumption(0D);
+ userInfo.setBalance(0D);
+ userInfo.setState(1);
+
+ //用户所属企业
+ userInfo.setCompanyId(1);
+ Double money = this.userInfoMapper.queryFreeMOney();
+ if(money!=null){
+ userInfo.setFreeMoney(BigDecimal.valueOf(money));
+ }
+ if(null!=uid){
+ userInfo.setUid(uid);
+ }
+ if(null!=type){
+ userInfo.setuType(type);
+ }
+
+ this.insert(userInfo);
+
+ if(ToolUtil.isNotEmpty(userInfo.getEmail())){
+ String path = templatePath + "user/register.html";
+ Document document = Jsoup.parse(new File(path), "UTF-8");
+ if(1 == language){
+ document.getElementById("english").remove();
+ document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("注册成功");
+ Element user_chinese = document.getElementById("user_chinese");
+ user_chinese.text("您好 " + userInfo.getNickName() + ",");
+ }
+ if(2 == language){
+ document.getElementById("chinese").remove();
+ document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("Registered successfully");
+ Element user_english = document.getElementById("user_english");
+ user_english.text("Hello " + userInfo.getNickName() + ",");
+ }
+ if(3 == language){
+ document.getElementById("chinese").remove();
+ document.getElementById("english").remove();
+ document.getElementsByTag("title").get(0).text("Enregistré avec succès");
+ Element user_french = document.getElementById("user_french");
+ user_french.text("Bonjour " + userInfo.getNickName() + ",");
+ }
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès", document.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/registration_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/registration_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
+ }
+
+ this.addCoupon(userInfo, language);//添加优惠券
+ if(null != uid){
+ if(type == 2){//司机分享
+ Driver driver = driverMapper.selectById(uid);
+ Map<String, Date> date = dateUtil.getStartAndEndDate(new Date());
+ //邀请用户注册
+ List<DriverActivityHistory> list = driverActivityHistoryMapper.queryList(uid, 2, 1, date.get("startTime"), date.get("endTime"));
+ BigDecimal bigDecimal = new BigDecimal("0");
+ for (DriverActivityHistory driverActivityHistory : list) {
+ bigDecimal = bigDecimal.add(new BigDecimal(driverActivityHistory.getMoney()));
+ incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, driverActivityHistory.getMoney());
+ driverActivityHistory.setCarryOut(2);
+ driverActivityHistory.setCompletionTime(new Date());
+ driverActivityHistoryMapper.updateById(driverActivityHistory);
+ }
+ driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ driverMapper.updateById(driver);
+
+ if(ToolUtil.isNotEmpty(driver.getEmail())){
+ BigDecimal finalBigDecimal = bigDecimal;
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ String path1 = templatePath + "driver/index.html";
+ Document document1 = Jsoup.parse(new File(path1), "UTF-8");
+ if(1 == language){
+ document1.getElementById("english").remove();
+ document1.getElementById("french").remove();
+ document1.getElementById("invite").remove();
+ document1.getElementById("settle").remove();
+ document1.getElementById("pass").remove();
+ document1.getElementById("bill").remove();
+ document1.getElementById("reward").remove();
+ document1.getElementById("rewardToday").remove();
+
+ document1.getElementsByTag("title").get(0).text("司机奖励通知");
+ Element user_user = document1.getElementById("user_user");
+ user_user.text("您好 " + driver.getFirstName() + " " + driver.getLastName() + ",");
+ Element user_content = document1.getElementById("user_content");
+ user_content.text("您已成功邀请一位用户注册I-GO,获得奖励GHS " + finalBigDecimal.doubleValue() + ",请查收");
+ }
+ if(2 == language){
+ document1.getElementById("chinese").remove();
+ document1.getElementById("french").remove();
+ document1.getElementById("invite1").remove();
+ document1.getElementById("settle1").remove();
+ document1.getElementById("pass1").remove();
+ document1.getElementById("bill1").remove();
+ document1.getElementById("reward1").remove();
+ document1.getElementById("rewardToday1").remove();
+
+ document1.getElementsByTag("title").get(0).text("Reward-driver notice");
+ Element user1_user = document1.getElementById("user1_user");
+ user1_user.text("Hello " + driver.getFirstName() + " " + driver.getLastName() + ",");
+ Element user1_content = document1.getElementById("user1_content");
+ user1_content.text("You have succeeded to invite a rider to register with I-GO, so you received a GHS " + finalBigDecimal.doubleValue() + " bonus, please check your balance.");
+ }
+ if(3 == language){
+ document1.getElementById("chinese").remove();
+ document1.getElementById("english").remove();
+ document1.getElementById("invite1").remove();
+ document1.getElementById("settle1").remove();
+ document1.getElementById("pass1").remove();
+ document1.getElementById("bill1").remove();
+ document1.getElementById("reward1").remove();
+ document1.getElementById("rewardToday1").remove();
+
+ document1.getElementsByTag("title").get(0).text("Avis de chauffeur de récompense");
+ Element user2_user = document1.getElementById("user2_user");
+ user2_user.text("Bonjour " + driver.getFirstName() + " " + driver.getLastName() + ",");
+ Element user2_content = document1.getElementById("user2_content");
+ user2_content.text("Vous avez invité avec succès un utilisateur à s’inscrire à i-go pour recevoir une récompense GHS " + finalBigDecimal.doubleValue() + ". Veuillez vérifier");
+ }
+ EmailUtil.send(driver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/invitation_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/invitation_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(driver.getId());
+ tEmail.setType(2);
+ tEmail.setName(language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ }
+
+ if(type == 1){//用户分享
+ UserInfo userInfo1 = userInfoMapper.selectById(uid);
+ List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo1.getCompanyId());
+ Date date = new Date();
+ for(Map<String, Object> map : query){
+ Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
+ String startTime = "";
+ String endTime = "";
+ if(null != map.get("startTime")){
+ startTime = map.get("startTime").toString();
+ map.put("startTime", DateUtil.conversionFormat(language, startTime));
+ startTime = DateUtil.conversionFormat(language, startTime);
+ }
+ if(null != map.get("endTime")){
+ endTime = map.get("endTime").toString();
+ map.put("endTime", DateUtil.conversionFormat(language, endTime));
+ endTime = DateUtil.conversionFormat(language, endTime);
+ }
+ int num = 0;
+ double fullMoney = 0;
+ for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
+ //判断当前优惠券金额是否大于可发放剩余总金额
+ if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
+ break;
+ }
+ UserCouponRecord userCouponRecord = new UserCouponRecord();
+ userCouponRecord.setActivityType(3);
+ userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+ userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("couponId"))));
+ userCouponRecord.setState(1);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("effective"))));
+ userCouponRecord.setExpirationTime(calendar.getTime());
+ userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("couponType"))));
+ userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("couponUseType"))));
+ userCouponRecord.setInsertTime(date);
+ userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("fullMoney"))));
+ userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
+ userCouponRecord.setCompanyId(userInfo1.getCompanyId());
+ userCouponRecord.setUserId(uid);
+ userCouponRecordService.insert(userCouponRecord);
+ //修改剩余可发放总金额
+ lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
+ num++;
+ fullMoney = userCouponRecord.getFullMoney();
+ }
+ UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
+ uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ userActivityInviteMapper.updateById(uai);
+
+ if(ToolUtil.isNotEmpty(userInfo1.getEmail())){
+ int finalNum = num;
+ String finalStartTime = startTime;
+ String finalEndTime = endTime;
+ double finalFullMoney = fullMoney;
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ String path1 = templatePath + "user/coupon.html";
+ Document document1 = Jsoup.parse(new File(path1), "UTF-8");
+ if(language == 1){
+ document1.getElementById("english").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("优惠券到账");
+ Element chinese_user = document1.getElementById("chinese_user");
+ chinese_user.text("您好 " + userInfo1.getNickName() + ",");
+ Element chinese_number = document1.getElementById("chinese_number");
+ chinese_number.text("您有" + finalNum + "张优惠券到账");
+ Element chinese_date = document1.getElementById("chinese_date");
+ chinese_date.text("此活动有效期在" + finalStartTime + "至" + finalEndTime + ",详情请查看I-GO平台");
+ Element chinese_remark = document1.getElementById("chinese_remark");
+ chinese_remark.text("注意:满减活动,每单消费至少GHS " + finalFullMoney + ",才可享用。");
+ }
+ if(language == 2){
+ document1.getElementById("chinese").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("Coupon is in");
+ Element english_user = document1.getElementById("english_user");
+ english_user.text("Hello " + userInfo1.getNickName() + ",");
+ Element english_number = document1.getElementById("english_number");
+ english_number.text("You have received " + finalNum + " coupons");
+ Element english_date = document1.getElementById("english_date");
+ english_date.text("You could use them from " + finalStartTime + " to " + finalEndTime);
+ Element english_remark = document1.getElementById("english_remark");
+ english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + finalFullMoney + " per ride.");
+ }
+ if(language == 3){
+ document1.getElementById("chinese").remove();
+ document1.getElementById("english").remove();
+ document1.getElementsByTag("title").get(0).text("Le coupon est arrivé sur le compte");
+ Element french_user = document1.getElementById("french_user");
+ french_user.text("Cher(ère) " + userInfo1.getNickName() + ",");
+ Element french_number = document1.getElementById("french_number");
+ french_number.text("Vous avez reçu " + finalNum + " coupons.");
+ Element french_date = document1.getElementById("french_date");
+ french_date.text("Vous devriez les utiliser du" + finalStartTime + " au " + finalEndTime + ", voir le détail sur la plate-forme I-GO.");
+ Element french_remark = document1.getElementById("french_remark");
+ french_remark.text("Remarque! Le coupon n'est valable que pour le tarif d'au moins GHS " + finalFullMoney + " par trajet.");
+ }
+ EmailUtil.send(userInfo1.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/coupon_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/coupon_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+
+ }
+ }
+ }
+ }
+ return ResultUtil.success();
}
@@ -454,10 +948,10 @@
return ResultUtil.error(language == 1 ? "账号无效" : language == 2 ? "Invalid account" : "Compte non valide");
}
if(userInfo.getState() == 2){
- return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen." : "Le compte est gelé");
+ return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
}
if(!ShiroKit.md5(password, salt).equals(userInfo.getPassWord())){
- return ResultUtil.error(language == 1 ? "密码错误" : language == 2 ? "Password error" : "Mot de passe incorrect");
+ return ResultUtil.error(language == 1 ? "密码错误" : language == 2 ? "Wrong password" : "Mot de passe erroné");
}
//调用单点登录的逻辑
@@ -493,7 +987,7 @@
String phone=null;
if(type == 2){//小程序
if(ToolUtil.isEmpty(jscode)){
- return ResultUtil.error("微信登录请求失败,请重试");
+ return ResultUtil.error(language == 1 ? "微信登录请求失败,请重试" : language == 2 ? "WeChat login request failed, please try again." : "La demande de connexion WeChat a échoué, veuillez réessayer.");
}
Map<String, String> map = weChatUtil.code2Session(jscode);
openid = map.get("openid");
@@ -557,22 +1051,56 @@
if(1 == language){
document.getElementById("english").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("注册成功");
Element user_chinese = document.getElementById("user_chinese");
user_chinese.text("您好 " + userInfo.getNickName() + ",");
}
if(2 == language){
document.getElementById("chinese").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("Registered successfully");
Element user_english = document.getElementById("user_english");
user_english.text("Hello " + userInfo.getNickName() + ",");
}
if(3 == language){
document.getElementById("chinese").remove();
document.getElementById("english").remove();
+ document.getElementsByTag("title").get(0).text("Enregistré avec succès");
Element user_french = document.getElementById("user_french");
user_french.text("Bonjour " + userInfo.getNickName() + ",");
}
- EmailUtil.send(userInfo.getEmail(), language == 1 ? "注册成功" : language == 2 ? "Successful registration" : "Inscription réussie", document.html());
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès", document.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/registration_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/registration_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
@@ -580,7 +1108,7 @@
}
if(userInfo.getState() == 2){
- return ResultUtil.error("账号被冻结");
+ return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
}
//调用单点登录的逻辑
@@ -601,9 +1129,20 @@
Date date = new Date();
for(Map<String, Object> map : query){
Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
- String startTime = map.get("startTime").toString();
- String endTime = map.get("endTime").toString();
+ String startTime = "";
+ String endTime = "";
+ if(null != map.get("startTime")){
+ startTime = map.get("startTime").toString();
+ map.put("startTime", DateUtil.conversionFormat(language, startTime));
+ startTime = DateUtil.conversionFormat(language, startTime);
+ }
+ if(null != map.get("endTime")){
+ endTime = map.get("endTime").toString();
+ map.put("endTime", DateUtil.conversionFormat(language, endTime));
+ endTime = DateUtil.conversionFormat(language, endTime);
+ }
int num = 0;
+ double fullMoney = 0;
for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
//判断当前优惠券金额是否大于可发放剩余总金额
if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
@@ -629,68 +1168,110 @@
//修改剩余可发放总金额
lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
num++;
+ fullMoney = userCouponRecord.getFullMoney();
}
UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
userActivityInviteMapper.updateById(uai);
if(ToolUtil.isNotEmpty(userInfo.getEmail())){
- String path = templatePath + "user/coupon.html";
- Document document = Jsoup.parse(new File(path), "UTF-8");
+ String path1 = templatePath + "user/coupon.html";
+ Document document1 = Jsoup.parse(new File(path1), "UTF-8");
if(language == 1){
- document.getElementById("english").remove();
- document.getElementById("french").remove();
- Element chinese_user = document.getElementById("chinese_user");
+ document1.getElementById("english").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("优惠券到账");
+ Element chinese_user = document1.getElementById("chinese_user");
chinese_user.text("您好 " + userInfo.getNickName() + ",");
- Element chinese_number = document.getElementById("chinese_number");
+ Element chinese_number = document1.getElementById("chinese_number");
chinese_number.text("您有" + num + "张优惠券到账");
- Element chinese_date = document.getElementById("chinese_date");
+ Element chinese_date = document1.getElementById("chinese_date");
chinese_date.text("此活动有效期在" + startTime + "至" + endTime + ",详情请查看I-GO平台");
+ Element chinese_remark = document1.getElementById("chinese_remark");
+ chinese_remark.text("注意:满减活动,每单消费至少GHS " + fullMoney + ",才可享用。");
}
if(language == 2){
- document.getElementById("chinese").remove();
- document.getElementById("french").remove();
- Element english_user = document.getElementById("english_user");
+ document1.getElementById("chinese").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("Coupon is in");
+ Element english_user = document1.getElementById("english_user");
english_user.text("Hello " + userInfo.getNickName() + ",");
- Element english_number = document.getElementById("english_number");
+ Element english_number = document1.getElementById("english_number");
english_number.text("You have received " + num + " coupons");
- Element english_date = document.getElementById("english_date");
- english_date.text("You could use them from" + startTime + "to" + endTime);
+ Element english_date = document1.getElementById("english_date");
+ english_date.text("You could use them from " + startTime + " to " + endTime);
+ Element english_remark = document1.getElementById("english_remark");
+ english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
}
if(language == 3){
- document.getElementById("chinese").remove();
- document.getElementById("english").remove();
- Element french_user = document.getElementById("french_user");
- french_user.text("Bonjour " + userInfo.getNickName() + ",");
- Element french_number = document.getElementById("french_number");
- french_number.text("Vous avez " + num + " coupons à recevoir");
- Element french_date = document.getElementById("french_date");
- french_date.text("Cette promotion est valide du" + startTime + "au" + endTime);
+ document1.getElementById("chinese").remove();
+ document1.getElementById("english").remove();
+ document1.getElementsByTag("title").get(0).text("Le coupon est arrivé sur le compte");
+ Element french_user = document1.getElementById("french_user");
+ french_user.text("Cher(ère) " + userInfo.getNickName() + ",");
+ Element french_number = document1.getElementById("french_number");
+ french_number.text("Vous avez reçu " + num + " coupons.");
+ Element french_date = document1.getElementById("french_date");
+ french_date.text("Vous devriez les utiliser du" + startTime + " au " + endTime + ", voir le détail sur la plate-forme I-GO.");
+ Element french_remark = document1.getElementById("french_remark");
+ french_remark.text("Remarque! Le coupon n'est valable que pour le tarif d'au moins GHS " + fullMoney + " par trajet.");
}
- EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon arrives" : "Le coupon arrive", document.html());
+
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/coupon_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/coupon_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
}
}
return ResultUtil.success(loginWarpper);
}
@Override
- public ResultUtil<LoginWarpper> wxIsLogin(String jscode) throws Exception {
+ public ResultUtil<LoginWarpper> wxIsLogin(Integer language, String jscode) throws Exception {
UserInfo userInfo = null;
String phone=null;
if(ToolUtil.isEmpty(jscode)){
- return ResultUtil.error("微信登录请求失败,请重试");
+ return ResultUtil.error(language == 1 ? "微信登录请求失败,请重试" : language == 2 ? "WeChat login request failed, please try again." : "La demande de connexion WeChat a échoué, veuillez réessayer.");
}
Map<String, String> map = weChatUtil.code2Session(jscode);
String openid = map.get("openid");
String unionid = map.get("unionid");
userInfo = userInfoMapper.queryByOpenid2(openid);
if(null==userInfo){
- return ResultUtil.getResult(2000,"微信登录请求失败,请重试");
+ return ResultUtil.getResult(2000,language == 1 ? "微信登录请求失败,请重试" : language == 2 ? "WeChat login request failed, please try again." : "La demande de connexion WeChat a échoué, veuillez réessayer.");
}
if(userInfo.getState() == 2){
- return ResultUtil.error("账号被冻结");
+ return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
}
//调用单点登录的逻辑
@@ -710,8 +1291,13 @@
@Override
- public ResultUtil facebookLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language) throws Exception {
- UserInfo userInfo = this.selectOne(new EntityWrapper<UserInfo>().eq("faceBookId", id).ne("flag", 3));
+ public ResultUtil facebookLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language,int type) throws Exception {
+ UserInfo userInfo=null;
+ if(type==1){
+ userInfo = this.selectOne(new EntityWrapper<UserInfo>().eq("faceBookId", id).ne("flag", 3));
+ }else {
+ userInfo = this.selectOne(new EntityWrapper<UserInfo>().eq("twitterId", id).ne("flag", 3));
+ }
if(null == userInfo){
userInfo = new UserInfo();
userInfo.setEmail(email);
@@ -721,7 +1307,11 @@
userInfo.setBalance(0D);
userInfo.setIntegral(0);
userInfo.setPassWord(ShiroKit.md5("", salt));
- userInfo.setFaceBookId(id);
+ if(type==1){
+ userInfo.setFaceBookId(id);
+ }else {
+ userInfo.setTwitterId(id);
+ }
userInfo.setState(1);
userInfo.setFlag(1);
userInfo.setInsertTime(new Date());
@@ -738,7 +1328,7 @@
}
//用户所属企业
if(null != lat && null != lng){
- ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lng);
+ ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lng, null);
if(null != reverseGeocode){
AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
String[] citys = new String[addressComponentsVos.length];
@@ -759,30 +1349,62 @@
if(1 == language){
document.getElementById("english").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("注册成功");
Element user_chinese = document.getElementById("user_chinese");
user_chinese.text("您好 " + userInfo.getNickName() + ",");
}
if(2 == language){
document.getElementById("chinese").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("Registered successfully");
Element user_english = document.getElementById("user_english");
user_english.text("Hello " + userInfo.getNickName() + ",");
}
if(3 == language){
document.getElementById("chinese").remove();
document.getElementById("english").remove();
+ document.getElementsByTag("title").get(0).text("Enregistré avec succès");
Element user_french = document.getElementById("user_french");
user_french.text("Bonjour " + userInfo.getNickName() + ",");
}
- EmailUtil.send(userInfo.getEmail(), language == 1 ? "注册成功" : language == 2 ? "Successful registration" : "Inscription réussie", document.html());
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès", document.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/registration_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/registration_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "注册成功" : language == 2 ? "Registered successfully" : "Enregistré avec succès");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
-
-
this.addCoupon(userInfo, language);//添加优惠券
}
if(userInfo.getState() == 2){
- return ResultUtil.error("账号被冻结");
+ return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
}
//调用单点登录的逻辑
@@ -803,9 +1425,20 @@
Date date = new Date();
for(Map<String, Object> map : query){
Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
- String startTime = map.get("startTime").toString();
- String endTime = map.get("endTime").toString();
+ String startTime = "";
+ String endTime = "";
+ if(null != map.get("startTime")){
+ startTime = map.get("startTime").toString();
+ map.put("startTime", DateUtil.conversionFormat(language, startTime));
+ startTime = DateUtil.conversionFormat(language, startTime);
+ }
+ if(null != map.get("endTime")){
+ endTime = map.get("endTime").toString();
+ map.put("endTime", DateUtil.conversionFormat(language, endTime));
+ endTime = DateUtil.conversionFormat(language, endTime);
+ }
int num = 0;
+ double fullMoney = 0;
for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
//判断当前优惠券金额是否大于可发放剩余总金额
if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
@@ -831,45 +1464,86 @@
//修改剩余可发放总金额
lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
num++;
+ fullMoney = userCouponRecord.getFullMoney();
}
UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
userActivityInviteMapper.updateById(uai);
if(ToolUtil.isNotEmpty(userInfo.getEmail())){
- String path = templatePath + "user/coupon.html";
- Document document = Jsoup.parse(new File(path), "UTF-8");
+ String path1 = templatePath + "user/coupon.html";
+ Document document1 = Jsoup.parse(new File(path1), "UTF-8");
if(language == 1){
- document.getElementById("english").remove();
- document.getElementById("french").remove();
- Element chinese_user = document.getElementById("chinese_user");
+ document1.getElementById("english").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("优惠券到账");
+ Element chinese_user = document1.getElementById("chinese_user");
chinese_user.text("您好 " + userInfo.getNickName() + ",");
- Element chinese_number = document.getElementById("chinese_number");
+ Element chinese_number = document1.getElementById("chinese_number");
chinese_number.text("您有" + num + "张优惠券到账");
- Element chinese_date = document.getElementById("chinese_date");
+ Element chinese_date = document1.getElementById("chinese_date");
chinese_date.text("此活动有效期在" + startTime + "至" + endTime + ",详情请查看I-GO平台");
+ Element chinese_remark = document1.getElementById("chinese_remark");
+ chinese_remark.text("注意:满减活动,每单消费至少GHS " + fullMoney + ",才可享用。");
}
if(language == 2){
- document.getElementById("chinese").remove();
- document.getElementById("french").remove();
- Element english_user = document.getElementById("english_user");
+ document1.getElementById("chinese").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("Coupon is in");
+ Element english_user = document1.getElementById("english_user");
english_user.text("Hello " + userInfo.getNickName() + ",");
- Element english_number = document.getElementById("english_number");
+ Element english_number = document1.getElementById("english_number");
english_number.text("You have received " + num + " coupons");
- Element english_date = document.getElementById("english_date");
- english_date.text("You could use them from" + startTime + "to" + endTime);
+ Element english_date = document1.getElementById("english_date");
+ english_date.text("You could use them from " + startTime + " to " + endTime);
+ Element english_remark = document1.getElementById("english_remark");
+ english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
}
if(language == 3){
- document.getElementById("chinese").remove();
- document.getElementById("english").remove();
- Element french_user = document.getElementById("french_user");
- french_user.text("Bonjour " + userInfo.getNickName() + ",");
- Element french_number = document.getElementById("french_number");
- french_number.text("Vous avez " + num + " coupons à recevoir");
- Element french_date = document.getElementById("french_date");
- french_date.text("Cette promotion est valide du" + startTime + "au" + endTime);
+ document1.getElementById("chinese").remove();
+ document1.getElementById("english").remove();
+ document1.getElementsByTag("title").get(0).text("Le coupon est arrivé sur le compte");
+ Element french_user = document1.getElementById("french_user");
+ french_user.text("Cher(ère) " + userInfo.getNickName() + ",");
+ Element french_number = document1.getElementById("french_number");
+ french_number.text("Vous avez reçu " + num + " coupons.");
+ Element french_date = document1.getElementById("french_date");
+ french_date.text("Vous devriez les utiliser du" + startTime + " au " + endTime + ", voir le détail sur la plate-forme I-GO.");
+ Element french_remark = document1.getElementById("french_remark");
+ french_remark.text("Remarque! Le coupon n'est valable que pour le tarif d'au moins GHS " + fullMoney + " par trajet.");
}
- EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon arrives" : "Le coupon arrive", document.html());
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/coupon_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/coupon_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
}
}
@@ -888,14 +1562,14 @@
public ResultUtil forgetPassword(String phone, String code, String password, Integer language) throws Exception {
UserInfo userInfo = this.queryByPhone(phone);
if(null == userInfo){
- return ResultUtil.error(language == 1 ? "手机号码未注册" : language == 2 ? "Cell phone number is not registered" : "Numéro de téléphone portable non enregistré");
+ return ResultUtil.error(language == 1 ? "手机号码未注册" : language == 2 ? "Mobile phone number was not registered." : "Le numéro de téléphone portable n’a pas été enregistré.");
}
boolean b = this.checkCaptcha(phone, code);
if(!b){
b = this.checkCaptcha(userInfo.getEmail(), code);
}
if(!b){
- return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+ return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
}
if(userInfo.getState() == 2){
return ResultUtil.error(language == 1 ? "账号已被冻结" : language == 2 ? "The account has been frozen" : "Le compte a été gelé");
@@ -904,8 +1578,6 @@
userInfo.setUpdateUser(userInfo.getId());
userInfo.setUpdateTime(new Date());
this.updateById(userInfo);
-
- smsrecordService.saveData(3, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
return ResultUtil.success();
}
@@ -922,7 +1594,7 @@
public ResultUtil bindingPhone(Integer uid, String phoneOperator, String phone, String code, Integer language) throws Exception {
boolean b = this.checkCaptcha(phone, code);
if(!b){
- return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+ return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
}
UserInfo userInfo = this.selectById(uid);
UserInfo userInfo1 = userInfoMapper.queryByPhone(phone);
@@ -934,8 +1606,8 @@
userInfo1.setSex(userInfo.getSex());
userInfo1.setNickName(userInfo.getNickName());
this.updateById(userInfo1);
-
- this.deleteById(userInfo.getId());//删除原有数据
+ userInfo.setFlag(3);
+ this.updateById(userInfo);//删除原有数据
//还原之前账号领取的注册优惠券
List<UserCouponRecord> list = userCouponRecordService.selectList(new EntityWrapper<UserCouponRecord>().eq("userId", userInfo.getId()));
for(UserCouponRecord ucr : list){
@@ -974,8 +1646,6 @@
userInfo.setUpdateTime(new Date());
userInfo.setUpdateUser(userInfo.getId());
this.updateById(userInfo);
-
- smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
return ResultUtil.success(new LoginWarpper());
}
@@ -984,64 +1654,17 @@
public ResultUtil bindingEmail(Integer uid, Integer type, String email, String code, Integer language) throws Exception {
boolean b = this.checkCaptcha(email, code);
if(!b){
- return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+ return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
}
UserInfo userInfo = this.selectById(uid);
UserInfo userInfo1 = userInfoMapper.queryByEmail(email);
if(null != userInfo1 && uid.compareTo(userInfo1.getId()) != 0){
- return ResultUtil.error(language == 1 ? "邮箱已被使用" : language == 2 ? "The mailbox is in use" : "La boîte mail a déjà été utilisée");
+ return ResultUtil.error(language == 1 ? "邮箱已被使用" : language == 2 ? "E-mail address is already in use." : "L’adresse e-mail est déjà utilisée.");
}
-
-// if(null != userInfo1){
-// userInfo1.setOpenId(userInfo.getOpenId());
-// userInfo1.setUnionid(userInfo.getUnionid());
-// userInfo1.setAppletsOpenId(userInfo.getAppletsOpenId());
-// userInfo1.setAvatar(userInfo.getAvatar());
-// userInfo1.setSex(userInfo.getSex());
-// userInfo1.setNickName(userInfo.getNickName());
-// this.updateById(userInfo1);
-//
-// this.deleteById(userInfo.getId());//删除原有数据
-// //还原之前账号领取的注册优惠券
-// List<UserCouponRecord> list = userCouponRecordService.selectList(new EntityWrapper<UserCouponRecord>().eq("userId", userInfo.getId()));
-// for(UserCouponRecord ucr : list){
-// if(ucr.getActivityType() == 1){//赠送
-//
-// }
-// if(ucr.getActivityType() == 2){//注册
-// UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectById(ucr.getCouponActivityId());
-// userActivityRegistered.setLaveNum(userActivityRegistered.getLaveNum() + 1);
-// userActivityRegistered.setLavePrice(userActivityRegistered.getLavePrice() + ucr.getMoney());
-// userActivityRegisteredService.updateById(userActivityRegistered);
-// }
-// if(ucr.getActivityType() == 3){//邀请
-//
-// }
-// if(ucr.getActivityType() == 4){//充值
-//
-// }
-// userCouponRecordService.deleteById(ucr.getId());
-// }
-//
-//
-// //获取新的token等数据
-// String token = this.getToken(userInfo1, "");
-// LoginWarpper loginWarpper = new LoginWarpper();
-// loginWarpper.setId(userInfo1.getId());
-// loginWarpper.setToken(token);
-// loginWarpper.setAppid(UUIDUtil.getRandomCode());
-// loginWarpper.setPhone(2);
-// loginWarpper.setEmail(userInfo1.getEmail());
-// return ResultUtil.success(loginWarpper);
-// }
-
userInfo.setEmail(email);
userInfo.setUpdateTime(new Date());
userInfo.setUpdateUser(userInfo.getId());
this.updateById(userInfo);
-// if(type == 1){//注册成功后发送邮件
-//// EmailUtil.getMimeMessage(email, "注册账户", "");
-// }
return ResultUtil.success(new LoginWarpper());
}
@@ -1078,8 +1701,15 @@
* @throws Exception
*/
@Override
- public Map<String, Object> queryUserInfo(Integer uid) throws Exception {
- return userInfoMapper.queryUserInfo(uid, null);
+ public Map<String, Object> queryUserInfo(Integer language, Integer uid) throws Exception {
+ Map<String, Object> map = userInfoMapper.queryUserInfo(uid, null);
+ if(null != map.get("birthday")){
+ String birthday = map.get("birthday").toString();
+ map.put("birthday", DateUtil.conversionFormat(language, birthday));
+ }
+ Double sum = paymentRecordService.queryRechargeMoneySum(uid);
+ map.put("rechargeAmountSum",sum);
+ return map;
}
@@ -1090,8 +1720,16 @@
* @throws Exception
*/
@Override
- public Map<String, Object> queryUser(String phone) throws Exception {
- return userInfoMapper.queryUserInfo(null, phone);
+ public Map<String, Object> queryUser(Integer language, String phone) throws Exception {
+ Map<String, Object> map = userInfoMapper.queryUserInfo(null, phone);
+ if(null == map){
+ return null;
+ }
+ if(null != map.get("birthday")){
+ String birthday = map.get("birthday").toString();
+ map.put("birthday", DateUtil.conversionFormat(language, birthday));
+ }
+ return map;
}
@@ -1119,8 +1757,11 @@
@Override
public ResultUtil depositBalance(Integer payType, String bankCardId, Double money, Integer uid, Integer type, Integer language) throws Exception {
UserInfo userInfo = userInfoMapper.selectById(uid);
+ if(ToolUtil.isEmpty(userInfo.getPhone())){
+ return ResultUtil.error(language == 1 ? "请先绑定手机号码" : language == 2 ? "Please bind your mobile phone number first." : "Veuillez d’abord vous inscrire en liant votre numéro de téléphone portable.");
+ }
if(money.compareTo(0D) <= 0){
- return ResultUtil.error("支付金额必须大于0元", "");
+ return ResultUtil.error(language == 1 ? "支付金额必须大于0元" : language == 2 ? "Payment amount must be greater than zero." : "Le montant du paiement doit être supérieur à zéro.", "");
}
if(payType == 1){//手机支付
Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
@@ -1138,13 +1779,13 @@
checkoutRequest.setRequestDescription("Account top-up");
checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelUserBalance");
checkoutRequest.setPendingRedirectUrl("");
- checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html");
- checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html");
+ checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
+ checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
return TinggPayUtil.checkoutRequest(checkoutRequest);
}
if(payType == 2){//银行卡支付
- Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
+ Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 2, money, "", 1);//添加预支付数据
BankCard bankCard = bankCardService.selectById(bankCardId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String merchantTransactionId = sdf.format(new Date()) + language + integer;
@@ -1159,8 +1800,8 @@
checkoutRequest.setRequestDescription("Account top-up");
checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelUserBalance");
checkoutRequest.setPendingRedirectUrl("");
- checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html");
- checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html");
+ checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
+ checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
return TinggPayUtil.checkoutRequest(checkoutRequest);
}
return ResultUtil.success("");
@@ -1179,12 +1820,12 @@
public ResultUtil updatePhone(String code, String phoneOperator, String phone, Integer uid, Integer language) throws Exception {
boolean b = this.checkCaptcha(phone, code);
if(!b){
- return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+ return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
}
UserInfo userInfo = this.selectById(uid);
UserInfo userInfo1 = userInfoMapper.queryByPhone(phone);
if(null != userInfo1){
- return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "The phone number has been registered" : "Le numéro de téléphone a été enregistré");
+ return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "Mobile phone number has been registered." : "Le numéro de téléphone portable a été enregistré.");
}
userInfo.setPhoneOperator(phoneOperator);
userInfo.setPhone(phone);
@@ -1212,23 +1853,57 @@
if(1 == language){
document.getElementById("english").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("重置密码");
Element user_chinese = document.getElementById("user_chinese");
user_chinese.text("您好 " + userInfo.getNickName() + ",");
}
if(2 == language){
document.getElementById("chinese").remove();
document.getElementById("french").remove();
+ document.getElementsByTag("title").get(0).text("Reset password");
Element user_chinese = document.getElementById("user_english");
user_chinese.text("Hello " + userInfo.getNickName() + ",");
}
if(3 == language){
document.getElementById("chinese").remove();
document.getElementById("english").remove();
+ document.getElementsByTag("title").get(0).text("Réinitialiser le mot de passe");
Element user_french = document.getElementById("user_french");
user_french.text("Bonjour " + userInfo.getNickName() + ",");
}
EmailUtil.send(userInfo.getEmail(), language == 1 ? "重置密码" : language == 2 ? "Reset password" : "Réinitialiser le mot de passe", document.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/password_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/password_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(uid);
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "重置密码" : language == 2 ? "Reset password" : "Réinitialiser le mot de passe");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
return ResultUtil.success();
}
@@ -1261,7 +1936,7 @@
if(null != email){
String value = redisUtil.getValue(email);
if(ToolUtil.isEmpty(value) || code.equals(value)){
- return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+ return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
}
userInfo.setEmail(email);
}
@@ -1300,7 +1975,7 @@
UserInfo userInfo = this.selectById(query.getUserId());
if(null != query){
//添加交易明细
- transactionDetailsService.saveData(Integer.valueOf(query.getUserId()), "余额充值", query.getAmount(), 2, 1, 1, 5, null);
+ transactionDetailsService.saveData(Integer.valueOf(query.getUserId()), "余额充值", query.getAmount(), 2, 1, 1, 5, paymentRecordId);
double v = new BigDecimal(userInfo.getBalance()).add(new BigDecimal(query.getAmount())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
userInfo.setBalance(v);
this.updateById(userInfo);
@@ -1327,13 +2002,20 @@
* @throws Exception
*/
public synchronized void addCoupon(Integer userId, Double money, Integer companyId, Integer paymentRecordId, Integer language) throws Exception{
- List<Map<String, Object>> query = userActivityBalanceService.query(money, companyId);
+ List<Map<String, Object>> query = userActivityBalanceService.query(language, money, companyId);
List<UserCouponRecord> list = new ArrayList<>();
for(Map<String, Object> map : query){
//添加通用优惠券
Double lavePrice = Double.valueOf(String.valueOf(map.get("lavePrice")));
- String startTime = map.get("startTime").toString();
- String endTime = map.get("endTime").toString();
+ String startTime = "";
+ String endTime = "";
+ if(null != map.get("startTime")){
+ startTime = map.get("startTime").toString();
+ }
+ if(null != map.get("endTime")){
+ endTime = map.get("endTime").toString();
+ }
+ double fullMoney = 0;
if(null != map.get("bcompanyId")){
for(int i = 0; i < Integer.valueOf(String.valueOf(map.get("generalNum"))); i++){
//判断当前发放的优惠券是否大于剩余总发放金额
@@ -1358,6 +2040,7 @@
userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("bId"))));
list.add(userCouponRecord);
+ fullMoney = userCouponRecord.getFullMoney();
//开始修改剩余总发放金额
lavePrice -= Double.valueOf(String.valueOf(map.get("bmoney")));
}
@@ -1462,39 +2145,79 @@
UserInfo userInfo = userInfoMapper.selectById(userId);
if(ToolUtil.isNotEmpty(userInfo.getEmail())){
- String path = templatePath + "user/coupon.html";
- Document document = Jsoup.parse(new File(path), "UTF-8");
+ String path1 = templatePath + "user/coupon.html";
+ Document document1 = Jsoup.parse(new File(path1), "UTF-8");
if(language == 1){
- document.getElementById("english").remove();
- document.getElementById("french").remove();
- Element chinese_user = document.getElementById("chinese_user");
+ document1.getElementById("english").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("优惠券到账");
+ Element chinese_user = document1.getElementById("chinese_user");
chinese_user.text("您好 " + userInfo.getNickName() + ",");
- Element chinese_number = document.getElementById("chinese_number");
+ Element chinese_number = document1.getElementById("chinese_number");
chinese_number.text("您有" + list.size() + "张优惠券到账");
- Element chinese_date = document.getElementById("chinese_date");
+ Element chinese_date = document1.getElementById("chinese_date");
chinese_date.text("此活动有效期在" + startTime + "至" + endTime + ",详情请查看I-GO平台");
+ Element chinese_remark = document1.getElementById("chinese_remark");
+ chinese_remark.text("注意:满减活动,每单消费至少GHS " + fullMoney + ",才可享用。");
}
if(language == 2){
- document.getElementById("chinese").remove();
- document.getElementById("french").remove();
- Element english_user = document.getElementById("english_user");
+ document1.getElementById("chinese").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("Coupon is in");
+ Element english_user = document1.getElementById("english_user");
english_user.text("Hello " + userInfo.getNickName() + ",");
- Element english_number = document.getElementById("english_number");
+ Element english_number = document1.getElementById("english_number");
english_number.text("You have received " + list.size() + " coupons");
- Element english_date = document.getElementById("english_date");
- english_date.text("You could use them from" + startTime + "to" + endTime);
+ Element english_date = document1.getElementById("english_date");
+ english_date.text("You could use them from " + startTime + " to " + endTime);
+ Element english_remark = document1.getElementById("english_remark");
+ english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
}
if(language == 3){
- document.getElementById("chinese").remove();
- document.getElementById("english").remove();
- Element french_user = document.getElementById("french_user");
- french_user.text("Bonjour " + userInfo.getNickName() + ",");
- Element french_number = document.getElementById("french_number");
- french_number.text("Vous avez " + list.size() + " coupons à recevoir");
- Element french_date = document.getElementById("french_date");
- french_date.text("Cette promotion est valide du" + startTime + "au" + endTime);
+ document1.getElementById("chinese").remove();
+ document1.getElementById("english").remove();
+ document1.getElementsByTag("title").get(0).text("Le coupon est arrivé sur le compte");
+ Element french_user = document1.getElementById("french_user");
+ french_user.text("Cher(ère) " + userInfo.getNickName() + ",");
+ Element french_number = document1.getElementById("french_number");
+ french_number.text("Vous avez reçu " + list.size() + " coupons.");
+ Element french_date = document1.getElementById("french_date");
+ french_date.text("Vous devriez les utiliser du " + startTime + " au " + endTime + ", voir le détail sur la plate-forme I-GO.");
+ Element french_remark = document1.getElementById("french_remark");
+ french_remark.text("Remarque! Le coupon n'est valable que pour le tarif d'au moins GHS " + fullMoney + " par trajet.");
}
- EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon arrives" : "Le coupon arrive", document.html());
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/coupon_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/coupon_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(userInfo.getId());
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ tEmail.setWeek(EmailUtil.getWeek(language,i));
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
}
}
@@ -1547,14 +2270,16 @@
*/
private synchronized void addCoupon(UserInfo userInfo, Integer language) throws Exception{
//添加优惠券
- List<Map<String, Object>> list = userActivityRegisteredService.query(userInfo.getCompanyId());
- int num = 0;
+ List<Map<String, Object>> list = userActivityRegisteredService.query(language, userInfo.getCompanyId());
+
for(Map<String, Object> map : list){
if(null != map){
Integer totalNum = Integer.valueOf(String.valueOf(map.get("totalNum")));
Double lavePrice = Double.valueOf(String.valueOf(map.get("lavePrice")));
String startTime = map.get("startTime").toString();
String endTime = map.get("endTime").toString();
+ double fullMoney = 0;
+ int num = 0;
for(int i = totalNum; i > 0; i--){
//判断当前发放的优惠券是否大于剩余可发送总金额
if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
@@ -1586,45 +2311,85 @@
uar.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
userActivityRegisteredService.updateById(uar);
- if(ToolUtil.isNotEmpty(userInfo.getEmail())){
- String path = templatePath + "user/coupon.html";
- Document document = Jsoup.parse(new File(path), "UTF-8");
+ if(0 < num && ToolUtil.isNotEmpty(userInfo.getEmail())){
+ String path1 = templatePath + "user/coupon.html";
+ Document document1 = Jsoup.parse(new File(path1), "UTF-8");
if(language == 1){
- document.getElementById("english").remove();
- document.getElementById("french").remove();
- Element chinese_user = document.getElementById("chinese_user");
+ document1.getElementById("english").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("优惠券到账");
+ Element chinese_user = document1.getElementById("chinese_user");
chinese_user.text("您好 " + userInfo.getNickName() + ",");
- Element chinese_number = document.getElementById("chinese_number");
+ Element chinese_number = document1.getElementById("chinese_number");
chinese_number.text("您有" + num + "张优惠券到账");
- Element chinese_date = document.getElementById("chinese_date");
+ Element chinese_date = document1.getElementById("chinese_date");
chinese_date.text("此活动有效期在" + startTime + "至" + endTime + ",详情请查看I-GO平台");
+ Element chinese_remark = document1.getElementById("chinese_remark");
+ chinese_remark.text("注意:满减活动,每单消费至少GHS " + fullMoney + ",才可享用。");
}
if(language == 2){
- document.getElementById("chinese").remove();
- document.getElementById("french").remove();
- Element english_user = document.getElementById("english_user");
+ document1.getElementById("chinese").remove();
+ document1.getElementById("french").remove();
+ document1.getElementsByTag("title").get(0).text("Coupon is in");
+ Element english_user = document1.getElementById("english_user");
english_user.text("Hello " + userInfo.getNickName() + ",");
- Element english_number = document.getElementById("english_number");
+ Element english_number = document1.getElementById("english_number");
english_number.text("You have received " + num + " coupons");
- Element english_date = document.getElementById("english_date");
- english_date.text("You could use them from" + startTime + "to" + endTime);
+ Element english_date = document1.getElementById("english_date");
+ english_date.text("You could use them from " + startTime + " to " + endTime);
+ Element english_remark = document1.getElementById("english_remark");
+ english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
}
if(language == 3){
- document.getElementById("chinese").remove();
- document.getElementById("english").remove();
- Element french_user = document.getElementById("french_user");
- french_user.text("Bonjour " + userInfo.getNickName() + ",");
- Element french_number = document.getElementById("french_number");
- french_number.text("Vous avez " + list.size() + " coupons à recevoir");
- Element french_date = document.getElementById("french_date");
- french_date.text("Cette promotion est valide du" + startTime + "au" + endTime);
+ document1.getElementById("chinese").remove();
+ document1.getElementById("english").remove();
+ document1.getElementsByTag("title").get(0).text("Le coupon est arrivé sur le compte");
+ Element french_user = document1.getElementById("french_user");
+ french_user.text("Cher(ère) " + userInfo.getNickName() + ",");
+ Element french_number = document1.getElementById("french_number");
+ french_number.text("Vous avez reçu " + num + " coupons.");
+ Element french_date = document1.getElementById("french_date");
+ french_date.text("Vous devriez les utiliser du " + startTime + " au " + endTime + ", voir le détail sur la plate-forme I-GO.");
+ Element french_remark = document1.getElementById("french_remark");
+ french_remark.text("Remarque! Le coupon n'est valable que pour le tarif d'au moins GHS " + fullMoney + " par trajet.");
}
- EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon arrives" : "Le coupon arrive", document.html());
+ EmailUtil.send(userInfo.getEmail(), language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte", document1.html());
+ //开始生成pdf收据和html收据
+ File file = new File("/home/igotechgh/nginx/html/files/html/");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String randomString = ToolUtil.getRandomString(10);
+ file = new File("/home/igotechgh/nginx/html/files/html/coupon_" + randomString + ".html");
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ FileWriter fileWriter = new FileWriter(file);
+ fileWriter.write(document1.html());
+ fileWriter.flush();
+ fileWriter.close();
+
+ String link ="https://igo.i-go.group/files/html/coupon_" + randomString + ".html";
+ TEmail tEmail = new TEmail();
+ tEmail.setLink(link);
+ tEmail.setUserId(userInfo.getId());
+ tEmail.setType(1);
+ tEmail.setName(language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé sur le compte");
+ tEmail.setCreateTime(new Date());
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+ boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+ if(am){
+ tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+ }else {
+ tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+ }
+ emailService.insert(tEmail);
}
+
+ //添加系统消息
+ systemNoticeService.addSystemNotice(1, language == 1 ? "您已获得" + num + "张优惠券,点击查看" : language == 2 ? "You've got " + num + " coupon, click to view" : "Vous avez reçu " + num + " coupon, cliquez pour voir", userInfo.getId(), 2);
}
}
- //添加系统消息
- systemNoticeService.addSystemNotice(1, "您已获得" + num + "张优惠券,点击查看", userInfo.getId(), 2);
}
@@ -1633,7 +2398,6 @@
* @param id
*/
private void singlePointLogin(Integer id) throws Exception{
- pushUtil.pushOffline(id, 1);
//开始验证当前账号是否在别处登录
String value = redisUtil.getValue("USER_" + id);
if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线
--
Gitblit v1.7.1