package com.stylefeng.guns.modular.system.controller.general;
|
|
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.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.modular.system.model.SysCouponRecord;
|
import com.stylefeng.guns.modular.system.model.TUser;
|
import com.stylefeng.guns.modular.system.model.UserCouponRecord;
|
import com.stylefeng.guns.modular.system.service.ISysCouponRecordService;
|
import com.stylefeng.guns.modular.system.service.ITUserService;
|
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.RequestParam;
|
import com.stylefeng.guns.modular.system.model.SysCouponActivity;
|
import com.stylefeng.guns.modular.system.service.ISysCouponActivityService;
|
|
import java.util.*;
|
|
/**
|
* 控制器
|
*
|
* @author fengshuonan
|
* @Date 2020-06-17 09:14:59
|
*/
|
@Controller
|
@RequestMapping("/sysCouponActivity")
|
public class SysCouponActivityController extends BaseController {
|
|
private String PREFIX = "/system/sysCouponActivity/";
|
|
@Autowired
|
private ISysCouponActivityService sysCouponActivityService;
|
|
@Autowired
|
private ITUserService userService;
|
|
@Autowired
|
private ISysCouponRecordService couponRecordService;
|
|
/**
|
* 跳转到首页
|
*/
|
@RequestMapping("")
|
public String index() {
|
return PREFIX + "sysCouponActivity.html";
|
}
|
|
/**
|
* 跳转到选择优惠券页面
|
* @return
|
*/
|
@RequestMapping("/sysCouponRecord")
|
public String sysCouponRecord() {
|
return PREFIX + "sysCouponRecord.html";
|
}
|
|
/**
|
* 跳转到选择用户页面
|
* @return
|
*/
|
@RequestMapping("user")
|
public String user() {
|
return PREFIX + "tUser.html";
|
}
|
/**
|
* 跳转到添加
|
*/
|
@RequestMapping("/sysCouponActivity_add")
|
public String sysCouponActivityAdd() {
|
return PREFIX + "sysCouponActivity_add.html";
|
}
|
|
/**
|
* 跳转到修改
|
*/
|
@RequestMapping("/sysCouponActivity_update/{sysCouponActivityId}")
|
public String sysCouponActivityUpdate(@PathVariable Integer sysCouponActivityId, Model model) {
|
SysCouponActivity sysCouponActivity = sysCouponActivityService.selectById(sysCouponActivityId);
|
model.addAttribute("item",sysCouponActivity);
|
if(sysCouponActivity.getSendType()==2){
|
model.addAttribute("sendUserInfoList",JSON.parseArray(sysCouponActivity.getSendUserId()));
|
}else{
|
model.addAttribute("sendUserInfoList",new ArrayList<>());
|
}
|
LogObjectHolder.me().set(sysCouponActivity);
|
return PREFIX + "sysCouponActivity_edit.html";
|
}
|
|
/**
|
* 获取列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String createTime,Integer couponUseType,Integer status) {
|
Date startTimes = null;
|
Date endTimes = null;
|
if (SinataUtil.isNotEmpty(createTime)){
|
String[] timeArray = createTime.split(" - ");
|
startTimes = DateUtil.getDate_str3(timeArray[0]+" 00:00:00");
|
endTimes = DateUtil.getDate_str3(timeArray[1]+" 23:59:59");
|
}
|
Page<SysCouponActivity> page = new PageFactory<SysCouponActivity>().defaultPage();
|
Wrapper wrapper = new EntityWrapper<SysCouponActivity>();
|
if(SinataUtil.isNotEmpty(createTime)){
|
wrapper.between("insertTime",startTimes,endTimes);
|
}
|
if(SinataUtil.isNotEmpty(couponUseType)){wrapper.eq("couponUseType",couponUseType);}
|
if(SinataUtil.isNotEmpty(status)){wrapper.eq("status",status);}
|
ShiroUser user = ShiroKit.getUser();
|
if(user.getRoleType()!=1){
|
wrapper.eq("companyId",user.getObjectId());
|
wrapper.eq("companyType",user.getRoleType());
|
}
|
wrapper.ne("status",4);
|
wrapper.orderBy("id",false);
|
return super.packForBT(sysCouponActivityService.selectPage(page,wrapper));
|
}
|
|
/**
|
* 新增
|
*/
|
@RequestMapping(value = "/add")
|
@ResponseBody
|
public Object add(SysCouponActivity sysCouponActivity,Integer activityId) {
|
SysCouponRecord sysCouponRecord = couponRecordService.selectById(activityId);
|
sysCouponActivity.setCouponType(sysCouponRecord.getCouponType());
|
sysCouponActivity.setCouponUseType(sysCouponRecord.getCouponUseType());
|
sysCouponActivity.setMoney(sysCouponRecord.getMoney());
|
sysCouponActivity.setFullMoney(sysCouponRecord.getFullMoney());
|
sysCouponActivity.setInsertTime(new Date());
|
sysCouponActivity.setCouponId(activityId);
|
sysCouponActivity.setCompanyId(ShiroKit.getUser().getObjectId());
|
sysCouponActivity.setCompanyType(ShiroKit.getUser().getRoleType());
|
sysCouponActivity.setStatus(sysCouponActivity.getCompanyType()==1?3:1);
|
sysCouponActivityService.insert(sysCouponActivity);
|
if(sysCouponActivity.getCompanyType()==1){
|
//定时发送优惠券
|
Timer timer = new Timer();
|
timer.schedule(new timerTaskTest(sysCouponActivity.getId()),30*1000);//timer.schedule(执行的方法,延迟多久执行(ms))
|
}
|
return SUCCESS_TIP;
|
}
|
/**
|
* 跳转到立即处理页面
|
*/
|
@RequestMapping("/sysCouponActivity_immediately/{id}")
|
public String sysCouponActivityImmediately(@PathVariable Integer id, Model model) {
|
model.addAttribute("id",id);
|
return PREFIX + "sysCouponActivity_immediately.html";
|
}
|
/**
|
* 立即处理操作
|
*/
|
@RequestMapping(value = "/immediately")
|
@ResponseBody
|
public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) {
|
SysCouponActivity sysCouponActivity = sysCouponActivityService.selectById(id);
|
if (SinataUtil.isNotEmpty(sysCouponActivity)){
|
sysCouponActivity.setStatus(state);
|
sysCouponActivity.setRemark(remark);
|
sysCouponActivityService.updateById(sysCouponActivity);
|
if(state==3){
|
//定时发送优惠券
|
Timer timer = new Timer();
|
timer.schedule(new timerTaskTest(id),30*1000);//timer.schedule(执行的方法,延迟多久执行(ms))
|
}
|
}
|
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=选择用户
|
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();
|
}
|
}
|
sysCouponActivity.setSendUserNum(list.size());
|
sysCouponActivity.updateById();
|
}else{
|
JSONArray userId = JSON.parseArray(sysCouponActivity.getSendUserId());
|
for(int j=0;j<userId.size();j++){
|
userCouponRecord.setUserId(userId.getJSONObject(j).getInteger("userId"));
|
for (int i=0;i<sysCouponActivity.getNumber();i++){
|
userCouponRecord.insert();
|
}
|
}
|
sysCouponActivity.setSendUserNum(userId.size());
|
sysCouponActivity.updateById();
|
|
}
|
|
}
|
}
|
/**
|
* 删除
|
*/
|
@RequestMapping(value = "/delete")
|
@ResponseBody
|
public Object delete(@RequestParam Integer sysCouponActivityId) {
|
SysCouponActivity sysCouponActivity = new SysCouponActivity();
|
sysCouponActivity.setId(sysCouponActivityId);
|
sysCouponActivity.setStatus(4);
|
sysCouponActivityService.updateById(sysCouponActivity);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改
|
*/
|
@RequestMapping(value = "/update")
|
@ResponseBody
|
public Object update(SysCouponActivity sysCouponActivity,Integer activityId) {
|
SysCouponRecord sysCouponRecord = couponRecordService.selectById(activityId);
|
sysCouponActivity.setCouponType(sysCouponRecord.getCouponType());
|
sysCouponActivity.setCouponUseType(sysCouponRecord.getCouponUseType());
|
sysCouponActivity.setMoney(sysCouponRecord.getMoney());
|
sysCouponActivity.setFullMoney(sysCouponRecord.getFullMoney());
|
sysCouponActivity.setInsertTime(new Date());
|
sysCouponActivity.setCouponId(activityId);
|
sysCouponActivity.setCompanyId(ShiroKit.getUser().getObjectId());
|
sysCouponActivity.setCompanyType(ShiroKit.getUser().getRoleType());
|
sysCouponActivity.setStatus(sysCouponActivity.getCompanyType()==1?3:1);
|
sysCouponActivityService.updateById(sysCouponActivity);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 详情
|
*/
|
@RequestMapping(value = "/detail/{sysCouponActivityId}")
|
@ResponseBody
|
public Object detail(@PathVariable("sysCouponActivityId") Integer sysCouponActivityId) {
|
return sysCouponActivityService.selectById(sysCouponActivityId);
|
}
|
}
|