Pu Zhibing
19 小时以前 821fc2f632f8b974a2c0fc37630e13c5fbe6086c
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
@@ -2,40 +2,36 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.ISysCouponActivityService;
import com.stylefeng.guns.modular.system.service.ISysCouponRecordService;
import com.stylefeng.guns.modular.system.service.ITUserService;
import com.stylefeng.guns.modular.system.service.TEmailService;
import com.stylefeng.guns.modular.system.util.EmailUtil;
import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.beans.factory.annotation.Autowired;
import com.stylefeng.guns.core.log.LogObjectHolder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.stylefeng.guns.modular.system.service.ISysCouponActivityService;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -197,78 +193,6 @@
        }
        return SUCCESS_TIP;
    }
    class timerTaskTest extends TimerTask {
        private Integer id;
        public timerTaskTest(Integer id) {
            this.id = id;
        }
        @Override
        public void run() {
            SysCouponActivity sysCouponActivity = sysCouponActivityService.selectById(id);
            UserCouponRecord userCouponRecord = new UserCouponRecord();
            userCouponRecord.setMoney(sysCouponActivity.getMoney());
            userCouponRecord.setFullMoney(sysCouponActivity.getFullMoney());
            Date nowDay = new Date();
            userCouponRecord.setInsertTime(nowDay);
            userCouponRecord.setExpirationTime(new Date(nowDay.getTime()+sysCouponActivity.getEffective()*24*3600*1000L));
            userCouponRecord.setCompanyId(sysCouponActivity.getCompanyId());
            userCouponRecord.setState(1);
            userCouponRecord.setCouponType(sysCouponActivity.getCouponType());
            userCouponRecord.setCouponUseType(sysCouponActivity.getCouponUseType());
            userCouponRecord.setCouponActivityId(sysCouponActivity.getId());
            userCouponRecord.setActivityType(1);
            //判断发送类型1=全部用户,2=选择用户
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            if(sysCouponActivity.getSendType()==1){
                Wrapper wrapper = new EntityWrapper<TUser>();
                if(sysCouponActivity.getCompanyType()!=1){
                    wrapper.eq("companyId",sysCouponActivity.getCompanyId());
                }
                List<TUser> list = userService.selectList(wrapper);
                for(TUser user:list){
                    userCouponRecord.setUserId(user.getId());
                    for (int i=0;i<sysCouponActivity.getNumber();i++){
                        userCouponRecord.insert();
                    }
                    String email = user.getEmail();
                    if(ToolUtil.isNotEmpty(email)){
                        Date expirationTime = userCouponRecord.getExpirationTime();
                        String e = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(expirationTime));
                        String s = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(new Date()));
                        sendEmail(user, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
                    }
                }
                sysCouponActivity.setSendUserNum(list.size());
                sysCouponActivity.updateById();
            }else{
               JSONArray  userId = JSON.parseArray(sysCouponActivity.getSendUserId());
                for(int j=0;j<userId.size();j++){
                    // 获取邮箱
                    TUser tUser = userService.selectById(userId.getJSONObject(j).getInteger("userId"));
                    String email = tUser.getEmail();
                    if(ToolUtil.isNotEmpty(email)){
                        Date expirationTime = userCouponRecord.getExpirationTime();
                        String e = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(expirationTime));
                        String s = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(new Date()));
                        sendEmail(tUser, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
                    }
                    userCouponRecord.setUserId(userId.getJSONObject(j).getInteger("userId"));
                    for (int i=0;i<sysCouponActivity.getNumber();i++){
                        userCouponRecord.insert();
                    }
                }
                sysCouponActivity.setSendUserNum(userId.size());
                sysCouponActivity.updateById();
            }
        }
    }
    public void sendEmail(TUser userInfo1, Integer num, String startTime, String endTime, Double fullMoney){
        try {
@@ -320,12 +244,12 @@
                }
                
                //开始生成pdf收据和html收据
                File file = new File("/home/igotechgh/nginx/html/files/html/");
                File file = new File("/data/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");
                file = new File("/data/nginx/html/files/html/coupon_" + randomString + ".html");
                if(!file.exists()){
                    file.createNewFile();
                }
@@ -355,9 +279,6 @@
            e.printStackTrace();
        }
    }
    /**
     * 删除
@@ -400,4 +321,76 @@
    public Object detail(@PathVariable("sysCouponActivityId") Integer sysCouponActivityId) {
        return sysCouponActivityService.selectById(sysCouponActivityId);
    }
    class timerTaskTest extends TimerTask {
        private Integer id;
        public timerTaskTest(Integer id) {
            this.id = id;
        }
        @Override
        public void run() {
            SysCouponActivity sysCouponActivity = sysCouponActivityService.selectById(id);
            UserCouponRecord userCouponRecord = new UserCouponRecord();
            userCouponRecord.setMoney(sysCouponActivity.getMoney());
            userCouponRecord.setFullMoney(sysCouponActivity.getFullMoney());
            Date nowDay = new Date();
            userCouponRecord.setInsertTime(nowDay);
            userCouponRecord.setExpirationTime(new Date(nowDay.getTime()+sysCouponActivity.getEffective()*24*3600*1000L));
            userCouponRecord.setCompanyId(sysCouponActivity.getCompanyId());
            userCouponRecord.setState(1);
            userCouponRecord.setCouponType(sysCouponActivity.getCouponType());
            userCouponRecord.setCouponUseType(sysCouponActivity.getCouponUseType());
            userCouponRecord.setCouponActivityId(sysCouponActivity.getId());
            userCouponRecord.setActivityType(1);
            //判断发送类型1=全部用户,2=选择用户
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            if(sysCouponActivity.getSendType()==1){
                Wrapper wrapper = new EntityWrapper<TUser>();
                if(sysCouponActivity.getCompanyType()!=1){
                    wrapper.eq("companyId",sysCouponActivity.getCompanyId());
                }
                List<TUser> list = userService.selectList(wrapper);
                for(TUser user:list){
                    userCouponRecord.setUserId(user.getId());
                    for (int i=0;i<sysCouponActivity.getNumber();i++){
                        userCouponRecord.insert();
                    }
                    String email = user.getEmail();
                    if(ToolUtil.isNotEmpty(email)){
                        Date expirationTime = userCouponRecord.getExpirationTime();
                        String e = sdf.format(expirationTime);
                        String s = sdf.format(new Date());
                        sendEmail(user, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
                    }
                }
                sysCouponActivity.setSendUserNum(list.size());
                sysCouponActivity.updateById();
            }else{
               JSONArray  userId = JSON.parseArray(sysCouponActivity.getSendUserId());
                for(int j=0;j<userId.size();j++){
                    // 获取邮箱
                    TUser tUser = userService.selectById(userId.getJSONObject(j).getInteger("userId"));
                    String email = tUser.getEmail();
                    if(ToolUtil.isNotEmpty(email)){
                        Date expirationTime = userCouponRecord.getExpirationTime();
                        String e = sdf.format(expirationTime);
                        String s = sdf.format(new Date());
                        sendEmail(tUser, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
                    }
                    userCouponRecord.setUserId(userId.getJSONObject(j).getInteger("userId"));
                    for (int i=0;i<sysCouponActivity.getNumber();i++){
                        userCouponRecord.insert();
                    }
                }
                sysCouponActivity.setSendUserNum(userId.size());
                sysCouponActivity.updateById();
            }
        }
    }
}