Pu Zhibing
2025-04-02 af335bf1ef9104dc62c721e142eca790356d18b6
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/UserActivityController.java
@@ -1,25 +1,23 @@
package com.stylefeng.guns.modular.system.controller.general;
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.page.PageInfoBT;
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.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.web.bind.annotation.ResponseBody;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@@ -37,424 +35,460 @@
@Controller
@RequestMapping("/userActivity")
public class UserActivityController extends BaseController {
    private String PREFIX = "/system/userActivity/";
    @Autowired
    private IUserActivityService userActivityService;
    @Autowired
    private IUserActivityBalanceService userActivityBalanceService;
    @Autowired
    private IUserActivityDiscount1Service userActivityDiscount1Service;
    @Autowired
    private IUserActivityInviteService userActivityInviteService;
    @Autowired
    private IUserActivityRedenvelopeService userActivityRedenvelopeService;
    @Autowired
    private IUserActivityRegisteredService userActivityRegisteredService;
    @Autowired
    private ISysCouponRecordService sysCouponRecordService;
    @Autowired
    private ISysRedPacketRecordService sysRedPacketRecordService;
    @Autowired
    private IUserCouponRecordService userCouponRecordService;
    @Autowired
    private ITUserRedPacketRecordService redPacketRecordService;
    /**
     * 跳转领取统计
     * @return
     */
    @RequestMapping("/receiveRecord")
    public String receiveRecord(Model model,Integer activityId){
        model.addAttribute("activityId",activityId);
        UserActivity userActivity = userActivityService.selectById(activityId);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        model.addAttribute("startTime", sdf.format(userActivity.getStartTime()));
        model.addAttribute("endTime", sdf.format(userActivity.getEndTime()));
        UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId",activityId));
        UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId",activityId));
        UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId",activityId));
        UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId",activityId));
        if(SinataUtil.isNotEmpty(userActivityRegistered)){
            model.addAttribute("userActivityRegisteredId",userActivityRegistered.getId());
        }else{
            model.addAttribute("userActivityRegisteredId",0);
        }
        if(SinataUtil.isNotEmpty(userActivityInvite)){
            model.addAttribute("userActivityInviteId",userActivityInvite.getId());
        }else{
            model.addAttribute("userActivityInviteId",0);
        }
        if(SinataUtil.isNotEmpty(userActivityDiscount1)){
            model.addAttribute("userActivityDiscount1Id",userActivityDiscount1.getId());
        }else{
            model.addAttribute("userActivityDiscount1Id",0);
        }
        if(SinataUtil.isNotEmpty(userActivityRedenvelope)){
            model.addAttribute("userActivityRedenvelopeId",userActivityRedenvelope.getId());
        }else{
            model.addAttribute("userActivityRedenvelopeId",0);
        }
        return PREFIX + "receiveRecord.html";
    }
    @RequestMapping(value = "/receiveRecordDetail")
    @ResponseBody
    public Object receiveRecordDetail(String createTime,Integer activityId) {
        String startTimes = null;
        String endTimes = null;
        if (SinataUtil.isNotEmpty(createTime)){
            String[] timeArray = createTime.split(" - ");
            startTimes = timeArray[0];
            endTimes = timeArray[1];
        }else{
            UserActivity userActivity = userActivityService.selectById(activityId);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            startTimes=sdf.format(userActivity.getStartTime());
            endTimes=sdf.format(userActivity.getEndTime());
        }
        Map<String,Object> map = new HashMap<>();
        Double totalMOney=0d;
        UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId",activityId));
        UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId",activityId));
        UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId",activityId));
        UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId",activityId));
        if(SinataUtil.isNotEmpty(userActivityRegistered)){
            Map<String,Object> resultMap = userCouponRecordService.getCouponStatic(startTimes,endTimes,userActivityRegistered.getId(),2);
            totalMOney+=Double.parseDouble(resultMap.get("money").toString());
            map.put("userActivityRegisteredMoney",resultMap.get("money"));
            map.put("userActivityRegisteredNumber",resultMap.get("number"));
            map.put("userActivityRegisteredUseMoney",resultMap.get("useMoney"));
        }else{
            map.put("userActivityRegisteredMoney",0);
            map.put("userActivityRegisteredNumber",0);
            map.put("userActivityRegisteredUseMoney",0);
        }
        if(SinataUtil.isNotEmpty(userActivityInvite)){
            Map<String,Object> resultMap = userCouponRecordService.getCouponStatic(startTimes,endTimes,userActivityInvite.getId(),3);
            totalMOney+=Double.parseDouble(resultMap.get("money").toString());
            map.put("userActivityInviteMoney",resultMap.get("money"));
            map.put("userActivityInviteNumber",resultMap.get("number"));
            map.put("userActivityInviteUseMoney",resultMap.get("useMoney"));
        }else{
            map.put("userActivityInviteMoney",0);
            map.put("userActivityInviteNumber",0);
            map.put("userActivityInviteUseMoney",0);
        }
        if(SinataUtil.isNotEmpty(userActivityDiscount1)){
            // 专车
            Map<String,Object> resultMap = userCouponRecordService.getDiscountStatic(startTimes,endTimes,userActivityDiscount1.getId());
            BigDecimal bigDecimal = new BigDecimal(resultMap.get("money").toString());
            String string = resultMap.get("number").toString();
            Integer i = Integer.valueOf(string);
            // 小件物流
            Map<String,Object> resultMap1 = userCouponRecordService.getDiscountStatic1(startTimes,endTimes,userActivityDiscount1.getId());
            BigDecimal bigDecimal1 = new BigDecimal(resultMap1.get("money").toString());
            String string1 = resultMap1.get("number").toString();
            Integer i1 = Integer.valueOf(string1);
            BigDecimal add = bigDecimal.add(bigDecimal1);
            i +=i1;
            map.put("userActivityDiscount1Money",add);
            map.put("userActivityDiscount1Number",i);
        }else{
            map.put("userActivityDiscount1Money",0);
            map.put("userActivityDiscount1Number",0);
        }
        if(SinataUtil.isNotEmpty(userActivityRedenvelope)){
            Map<String,Object> resultMap = userCouponRecordService.getRedStatic(startTimes,endTimes,userActivityRedenvelope.getId());
            totalMOney+=Double.parseDouble(resultMap.get("money").toString());
            map.put("userActivityRedenvelopeMoney",resultMap.get("money"));
            map.put("userActivityRedenvelopeNumber",resultMap.get("number"));
            map.put("userActivityRedenvelopeUseMoney",resultMap.get("useMoney"));
        }else{
            map.put("userActivityRedenvelopeMoney",0);
            map.put("userActivityRedenvelopeNumber",0);
            map.put("userActivityRedenvelopeUseMoney",0);
        }
        Map<String,Object> resultMap = userCouponRecordService.getRegStatic(startTimes,endTimes,activityId);
        totalMOney+=Double.parseDouble(resultMap.get("money").toString());
        map.put("totalMOney",totalMOney);
        return map;
    }
    /**
     * 跳转到首页
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "userActivity.html";
    }
    /**
     * 跳转添加注册送优惠券页面
     * @return
     */
    @RequestMapping("addRegist")
    public String addRegist() {
        return PREFIX + "addRegist.html";
    }
    /**
     * 跳转红包选择页面
     * @return
     */
    @RequestMapping("/sysRedPacketRecord")
    public String sysRedPacketRecord() {
        return PREFIX + "sysRedPacketRecord.html";
    }
    /**
     * 跳转到选择优惠券页面
     * @return
     */
    @RequestMapping("/sysCouponRecord")
    public String sysCouponRecord() {
        return PREFIX + "sysCouponRecord.html";
    }
    @RequestMapping("/sysCouponRecord1")
    public String sysCouponRecord1() {
        return PREFIX + "sysCouponRecord1.html";
    }
    @RequestMapping("/sysCouponRecord2")
    public String sysCouponRecord2(Model model,Integer type) {
        model.addAttribute("type",type);
        return PREFIX + "sysCouponRecord2.html";
    }
    /**
     * 跳转到添加
     */
    @RequestMapping("/userActivity_add")
    public String userActivityAdd() {
        return PREFIX + "userActivity_add.html";
    }
    /**
     * 跳转到修改
     */
    @RequestMapping("/userActivity_update/{userActivityId}")
    public String userActivityUpdate(@PathVariable Integer userActivityId, Model model) {
        UserActivity userActivity = userActivityService.selectById(userActivityId);
        model.addAttribute("item",userActivity);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        model.addAttribute("startTime", sdf.format(userActivity.getStartTime()));
        model.addAttribute("endTime", sdf.format(userActivity.getEndTime()));
        UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("item1",userActivityRegistered);
        if(userActivityRegistered!=null){
            model.addAttribute("item1Coupon",sysCouponRecordService.selectById(userActivityRegistered.getCouponId()));
        }
        UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("item2",userActivityInvite);
        if(userActivityInvite!=null){
            model.addAttribute("item2Coupon",sysCouponRecordService.selectById(userActivityInvite.getCouponId()));
        }
        List<UserActivityBalance> balanceInfoList = userActivityBalanceService.selectList(new EntityWrapper<UserActivityBalance>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("balanceInfoList",balanceInfoList);
        model.addAttribute("item4",userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId",userActivity.getId())));
        UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("item5",userActivityRedenvelope);
        if(userActivityRedenvelope!=null){
            model.addAttribute("item5Red",sysRedPacketRecordService.selectById(userActivityRedenvelope.getRedEnvelopeId()));
        }
        LogObjectHolder.me().set(userActivity);
        return PREFIX + "userActivity_edit.html";
    }
    /**
     * 获取列表
     */
    @RequestMapping(value = "/blanceList")
    @ResponseBody
    public Object blanceList(String createTime,Integer activityId) {
        ShiroUser user = ShiroKit.getUser();
        String beginTime = null;
        String endTime = null;
        if (SinataUtil.isNotEmpty(createTime)){
            String[] timeArray = createTime.split(" - ");
            beginTime = timeArray[0];
            endTime = timeArray[1];
        }
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        page.setRecords(userCouponRecordService.getBlanceList(page,beginTime,endTime,activityId));
        return super.packForBT(page);
    }
    /**
     * 获取列表
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(String createTime,String name,Integer status, Integer offset, Integer limit) {
        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");
        }
        Integer uid = ShiroKit.getUser().getId();
        Map<String, Object> map = userActivityService.queryUserActivityList(uid, startTimes, endTimes, name, status, offset, limit);
        return map;
    }
    /**
     *
     * @param name 活动时间
     * @param startTime  时间区间
     * @param registCouponId 注册活动-优惠券id
     * @param registEnable 注册活动-是否启动(1=不启动,2=启动)
     * @param registNumber 注册活动-优惠券数量
     * @param registEffective 注册活动-优惠券有效期
     * @param inviteCouponId 邀请活动-优惠券id
     * @param inviteEnable 邀请活动-是否启动(1=不启动,2=启动)
     * @param inviteNumber 邀请活动-优惠券数量
     * @param inviteEffective 邀请活动-优惠券有效期
     * @param balanceEnable 充值活动-是否启动(1=不启动,2=启动)
     * @param balanceInfo 充值活动-详情
     * @param discountEnable 折扣活动-是否启动(1=不启动,2=启动)
     * @param discountSpecial 折扣活动-专车
     * @param discountTaxi 折扣活动-出租车
     * @param discountLogistics 折扣活动-小件物流
     * @param redenvelopeId -红包活动-红包id
     * @param redenvelopeEnable 红包活动-是否启动(1=不启动,2=启动)
     * @return
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(String name,String startTime,Integer registCouponId,
                      Integer registEnable,Integer registNumber,Integer registEffective,
                      Integer inviteCouponId,Integer inviteEnable,Integer inviteNumber,Integer inviteEffective,
                      Integer balanceEnable,String balanceInfo,
                      Integer discountEnable,Double discountSpecial,Double discountTaxi,Double discountLogistics,
                      Integer redenvelopeId,Integer redenvelopeEnable, Double registerPrice, Double invitationPrice, Double redPrice,Double discountDistance,Integer discountOrderNum) {
        userActivityService.insertOrUpdate(null,name,startTime, registCouponId,
                 registEnable, registNumber, registEffective,
                 inviteCouponId, inviteEnable, inviteNumber, inviteEffective,
                 balanceEnable, balanceInfo,
                 discountEnable, discountSpecial, discountTaxi, discountLogistics,
                 redenvelopeId, redenvelopeEnable, registerPrice, invitationPrice, redPrice,discountDistance,discountOrderNum);
        return SUCCESS_TIP;
    }
    /**
     * 删除
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer userActivityId) {
        userActivityService.deleteById(userActivityId);
        return SUCCESS_TIP;
    }
    /**
     *
     * @param name 活动时间
     * @param startTime  时间区间
     * @param registCouponId 注册活动-优惠券id
     * @param registEnable 注册活动-是否启动(1=不启动,2=启动)
     * @param registNumber 注册活动-优惠券数量
     * @param registEffective 注册活动-优惠券有效期
     * @param inviteCouponId 邀请活动-优惠券id
     * @param inviteEnable 邀请活动-是否启动(1=不启动,2=启动)
     * @param inviteNumber 邀请活动-优惠券数量
     * @param inviteEffective 邀请活动-优惠券有效期
     * @param balanceEnable 充值活动-是否启动(1=不启动,2=启动)
     * @param balanceInfo 充值活动-详情
     * @param discountEnable 折扣活动-是否启动(1=不启动,2=启动)
     * @param discountSpecial 折扣活动-专车
     * @param discountTaxi 折扣活动-出租车
     * @param discountLogistics 折扣活动-小件物流
     * @param redenvelopeId -红包活动-红包id
     * @param redenvelopeEnable 红包活动-是否启动(1=不启动,2=启动)
     * @return
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(Integer id,String name,String startTime,Integer registCouponId,
                         Integer registEnable,Integer registNumber,Integer registEffective,
                         Integer inviteCouponId,Integer inviteEnable,Integer inviteNumber,Integer inviteEffective,
                         Integer balanceEnable,String balanceInfo,
                         Integer discountEnable,Double discountSpecial,Double discountTaxi,Double discountLogistics,
                         Integer redenvelopeId,Integer redenvelopeEnable, Double registerPrice, Double invitationPrice, Double redPrice,Double discountDistance,Integer discountOrderNum) {
        userActivityService.insertOrUpdate(id,name,startTime, registCouponId,
                registEnable, registNumber, registEffective,
                inviteCouponId, inviteEnable, inviteNumber, inviteEffective,
                balanceEnable, balanceInfo,
                discountEnable, discountSpecial, discountTaxi, discountLogistics,
                redenvelopeId, redenvelopeEnable, registerPrice, invitationPrice, redPrice,discountDistance,discountOrderNum);
        return SUCCESS_TIP;
    }
    /**
     * 修改状态
     * @param driverActivity
     * @return
     */
    @RequestMapping(value = "/updateStatus")
    @ResponseBody
    public Object updateStatus(UserActivity driverActivity) {
        userActivityService.updateById(driverActivity);
        return SUCCESS_TIP;
    }
    /**
     * 详情
     */
    @RequestMapping(value = "/userActivity_detail/{userActivityId}")
    public Object detail(@PathVariable("userActivityId") Integer userActivityId,Model model) {
        UserActivity userActivity = userActivityService.selectById(userActivityId);
        model.addAttribute("item",userActivity);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        model.addAttribute("startTime", sdf.format(userActivity.getStartTime()));
        model.addAttribute("endTime", sdf.format(userActivity.getEndTime()));
        UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("item1",userActivityRegistered);
        if(userActivityRegistered!=null){
            model.addAttribute("item1Coupon",sysCouponRecordService.selectById(userActivityRegistered.getCouponId()));
        }
        UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("item2",userActivityInvite);
        if(userActivityInvite!=null){
            model.addAttribute("item2Coupon",sysCouponRecordService.selectById(userActivityInvite.getCouponId()));
        }
        List<UserActivityBalance> balanceInfoList = userActivityBalanceService.selectList(new EntityWrapper<UserActivityBalance>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("balanceInfoList",balanceInfoList);
        model.addAttribute("item4",userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId",userActivity.getId())));
        UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId",userActivity.getId()));
        model.addAttribute("item5",userActivityRedenvelope);
        if(userActivityRedenvelope!=null){
            model.addAttribute("item5Red",sysRedPacketRecordService.selectById(userActivityRedenvelope.getRedEnvelopeId()));
        }
        return PREFIX + "userActivity_detail.html";
    }
    /**
     * 跳转到立即处理页面
     */
    @RequestMapping("/userActivity_immediately/{id}")
    public String userActivityImmediately(@PathVariable Integer id, Model model) {
        model.addAttribute("id",id);
        return PREFIX + "userActivity_immediately.html";
    }
    /**
     * 立即处理操作
     */
    @RequestMapping(value = "/immediately")
    @ResponseBody
    public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) {
        UserActivity userActivity = userActivityService.selectById(id);
        if (SinataUtil.isNotEmpty(userActivity)){
            userActivity.setStatus(state);
            userActivity.setRemark(remark);
            userActivityService.updateById(userActivity);
        }
        return SUCCESS_TIP;
    }
   private String PREFIX = "/system/userActivity/";
   @Autowired
   private IUserActivityService userActivityService;
   @Autowired
   private IUserActivityBalanceService userActivityBalanceService;
   @Autowired
   private IUserActivityDiscount1Service userActivityDiscount1Service;
   @Autowired
   private IUserActivityInviteService userActivityInviteService;
   @Autowired
   private IUserActivityRedenvelopeService userActivityRedenvelopeService;
   @Autowired
   private IUserActivityRegisteredService userActivityRegisteredService;
   @Autowired
   private ISysCouponRecordService sysCouponRecordService;
   @Autowired
   private ISysRedPacketRecordService sysRedPacketRecordService;
   @Autowired
   private IUserCouponRecordService userCouponRecordService;
   @Autowired
   private ITUserRedPacketRecordService redPacketRecordService;
   /**
    * 跳转领取统计
    *
    * @return
    */
   @RequestMapping("/receiveRecord")
   public String receiveRecord(Model model, Integer activityId) {
      model.addAttribute("activityId", activityId);
      UserActivity userActivity = userActivityService.selectById(activityId);
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      model.addAttribute("startTime", sdf.format(userActivity.getStartTime()));
      model.addAttribute("endTime", sdf.format(userActivity.getEndTime()));
      UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId", activityId));
      UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId", activityId));
      UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId", activityId));
      UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId", activityId));
      if (SinataUtil.isNotEmpty(userActivityRegistered)) {
         model.addAttribute("userActivityRegisteredId", userActivityRegistered.getId());
      } else {
         model.addAttribute("userActivityRegisteredId", 0);
      }
      if (SinataUtil.isNotEmpty(userActivityInvite)) {
         model.addAttribute("userActivityInviteId", userActivityInvite.getId());
      } else {
         model.addAttribute("userActivityInviteId", 0);
      }
      if (SinataUtil.isNotEmpty(userActivityDiscount1)) {
         model.addAttribute("userActivityDiscount1Id", userActivityDiscount1.getId());
      } else {
         model.addAttribute("userActivityDiscount1Id", 0);
      }
      if (SinataUtil.isNotEmpty(userActivityRedenvelope)) {
         model.addAttribute("userActivityRedenvelopeId", userActivityRedenvelope.getId());
      } else {
         model.addAttribute("userActivityRedenvelopeId", 0);
      }
      return PREFIX + "receiveRecord.html";
   }
   @RequestMapping(value = "/receiveRecordDetail")
   @ResponseBody
   public Object receiveRecordDetail(String createTime, Integer activityId) {
      String startTimes = null;
      String endTimes = null;
      if (SinataUtil.isNotEmpty(createTime)) {
         String[] timeArray = createTime.split(" - ");
         startTimes = timeArray[0];
         endTimes = timeArray[1];
      } else {
         UserActivity userActivity = userActivityService.selectById(activityId);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         startTimes = sdf.format(userActivity.getStartTime());
         endTimes = sdf.format(userActivity.getEndTime());
      }
      Map<String, Object> map = new HashMap<>();
      Double totalMOney = 0d;
      UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId", activityId));
      UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId", activityId));
      UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId", activityId));
      UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId", activityId));
      if (SinataUtil.isNotEmpty(userActivityRegistered)) {
         Map<String, Object> resultMap = userCouponRecordService.getCouponStatic(startTimes, endTimes, userActivityRegistered.getId(), 2);
         if (null != resultMap) {
            totalMOney += Double.parseDouble(resultMap.get("money").toString());
            map.put("userActivityRegisteredMoney", resultMap.get("money"));
            map.put("userActivityRegisteredNumber", resultMap.get("number"));
            map.put("userActivityRegisteredUseMoney", resultMap.get("useMoney"));
         } else {
            map.put("userActivityRegisteredMoney", 0);
            map.put("userActivityRegisteredNumber", 0);
            map.put("userActivityRegisteredUseMoney", 0);
         }
      } else {
         map.put("userActivityRegisteredMoney", 0);
         map.put("userActivityRegisteredNumber", 0);
         map.put("userActivityRegisteredUseMoney", 0);
      }
      if (SinataUtil.isNotEmpty(userActivityInvite)) {
         Map<String, Object> resultMap = userCouponRecordService.getCouponStatic(startTimes, endTimes, userActivityInvite.getId(), 3);
         if (null != resultMap) {
            totalMOney += Double.parseDouble(resultMap.get("money").toString());
            map.put("userActivityInviteMoney", resultMap.get("money"));
            map.put("userActivityInviteNumber", resultMap.get("number"));
            map.put("userActivityInviteUseMoney", resultMap.get("useMoney"));
         } else {
            map.put("userActivityInviteMoney", 0);
            map.put("userActivityInviteNumber", 0);
            map.put("userActivityInviteUseMoney", 0);
         }
      } else {
         map.put("userActivityInviteMoney", 0);
         map.put("userActivityInviteNumber", 0);
         map.put("userActivityInviteUseMoney", 0);
      }
      if (SinataUtil.isNotEmpty(userActivityDiscount1)) {
         // 专车
         Map<String, Object> resultMap = userCouponRecordService.getDiscountStatic(startTimes, endTimes, userActivityDiscount1.getId());
         BigDecimal bigDecimal = new BigDecimal(resultMap.get("money").toString());
         String string = resultMap.get("number").toString();
         Integer i = Integer.valueOf(string);
         // 小件物流
         Map<String, Object> resultMap1 = userCouponRecordService.getDiscountStatic1(startTimes, endTimes, userActivityDiscount1.getId());
         if (null != resultMap1) {
            BigDecimal bigDecimal1 = new BigDecimal(resultMap1.get("money").toString());
            String string1 = resultMap1.get("number").toString();
            Integer i1 = Integer.valueOf(string1);
            BigDecimal add = bigDecimal.add(bigDecimal1);
            i += i1;
            map.put("userActivityDiscount1Money", add);
            map.put("userActivityDiscount1Number", i);
         } else {
            map.put("userActivityDiscount1Money", 0);
            map.put("userActivityDiscount1Number", 0);
         }
      } else {
         map.put("userActivityDiscount1Money", 0);
         map.put("userActivityDiscount1Number", 0);
      }
      if (SinataUtil.isNotEmpty(userActivityRedenvelope)) {
         Map<String, Object> resultMap = userCouponRecordService.getRedStatic(startTimes, endTimes, userActivityRedenvelope.getId());
         if (null != resultMap) {
            totalMOney += Double.parseDouble(resultMap.get("money").toString());
            map.put("userActivityRedenvelopeMoney", resultMap.get("money"));
            map.put("userActivityRedenvelopeNumber", resultMap.get("number"));
            map.put("userActivityRedenvelopeUseMoney", resultMap.get("useMoney"));
         } else {
            map.put("userActivityRedenvelopeMoney", 0);
            map.put("userActivityRedenvelopeNumber", 0);
            map.put("userActivityRedenvelopeUseMoney", 0);
         }
      } else {
         map.put("userActivityRedenvelopeMoney", 0);
         map.put("userActivityRedenvelopeNumber", 0);
         map.put("userActivityRedenvelopeUseMoney", 0);
      }
      Map<String, Object> resultMap = userCouponRecordService.getRegStatic(startTimes, endTimes, activityId);
      totalMOney += Double.parseDouble(resultMap.get("money").toString());
      map.put("totalMOney", totalMOney);
      return map;
   }
   /**
    * 跳转到首页
    */
   @RequestMapping("")
   public String index() {
      return PREFIX + "userActivity.html";
   }
   /**
    * 跳转添加注册送优惠券页面
    *
    * @return
    */
   @RequestMapping("addRegist")
   public String addRegist() {
      return PREFIX + "addRegist.html";
   }
   /**
    * 跳转红包选择页面
    *
    * @return
    */
   @RequestMapping("/sysRedPacketRecord")
   public String sysRedPacketRecord() {
      return PREFIX + "sysRedPacketRecord.html";
   }
   /**
    * 跳转到选择优惠券页面
    *
    * @return
    */
   @RequestMapping("/sysCouponRecord")
   public String sysCouponRecord() {
      return PREFIX + "sysCouponRecord.html";
   }
   @RequestMapping("/sysCouponRecord1")
   public String sysCouponRecord1() {
      return PREFIX + "sysCouponRecord1.html";
   }
   @RequestMapping("/sysCouponRecord2")
   public String sysCouponRecord2(Model model, Integer type) {
      model.addAttribute("type", type);
      return PREFIX + "sysCouponRecord2.html";
   }
   /**
    * 跳转到添加
    */
   @RequestMapping("/userActivity_add")
   public String userActivityAdd() {
      return PREFIX + "userActivity_add.html";
   }
   /**
    * 跳转到修改
    */
   @RequestMapping("/userActivity_update/{userActivityId}")
   public String userActivityUpdate(@PathVariable Integer userActivityId, Model model) {
      UserActivity userActivity = userActivityService.selectById(userActivityId);
      model.addAttribute("item", userActivity);
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      model.addAttribute("startTime", sdf.format(userActivity.getStartTime()));
      model.addAttribute("endTime", sdf.format(userActivity.getEndTime()));
      UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("item1", userActivityRegistered);
      if (userActivityRegistered != null) {
         model.addAttribute("item1Coupon", sysCouponRecordService.selectById(userActivityRegistered.getCouponId()));
      }
      UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("item2", userActivityInvite);
      if (userActivityInvite != null) {
         model.addAttribute("item2Coupon", sysCouponRecordService.selectById(userActivityInvite.getCouponId()));
      }
      List<UserActivityBalance> balanceInfoList = userActivityBalanceService.selectList(new EntityWrapper<UserActivityBalance>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("balanceInfoList", balanceInfoList);
      model.addAttribute("item4", userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId", userActivity.getId())));
      UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("item5", userActivityRedenvelope);
      if (userActivityRedenvelope != null) {
         model.addAttribute("item5Red", sysRedPacketRecordService.selectById(userActivityRedenvelope.getRedEnvelopeId()));
      }
      LogObjectHolder.me().set(userActivity);
      return PREFIX + "userActivity_edit.html";
   }
   /**
    * 获取列表
    */
   @RequestMapping(value = "/blanceList")
   @ResponseBody
   public Object blanceList(String createTime, Integer activityId) {
      ShiroUser user = ShiroKit.getUser();
      String beginTime = null;
      String endTime = null;
      if (SinataUtil.isNotEmpty(createTime)) {
         String[] timeArray = createTime.split(" - ");
         beginTime = timeArray[0];
         endTime = timeArray[1];
      }
      Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
      page.setRecords(userCouponRecordService.getBlanceList(page, beginTime, endTime, activityId));
      return super.packForBT(page);
   }
   /**
    * 获取列表
    */
   @RequestMapping(value = "/list")
   @ResponseBody
   public Object list(String createTime, String name, Integer status, Integer offset, Integer limit) {
      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");
      }
      Integer uid = ShiroKit.getUser().getId();
      Map<String, Object> map = userActivityService.queryUserActivityList(uid, startTimes, endTimes, name, status, offset, limit);
      return map;
   }
   /**
    * @param name              活动时间
    * @param startTime         时间区间
    * @param registCouponId    注册活动-优惠券id
    * @param registEnable      注册活动-是否启动(1=不启动,2=启动)
    * @param registNumber      注册活动-优惠券数量
    * @param registEffective   注册活动-优惠券有效期
    * @param inviteCouponId    邀请活动-优惠券id
    * @param inviteEnable      邀请活动-是否启动(1=不启动,2=启动)
    * @param inviteNumber      邀请活动-优惠券数量
    * @param inviteEffective   邀请活动-优惠券有效期
    * @param balanceEnable     充值活动-是否启动(1=不启动,2=启动)
    * @param balanceInfo       充值活动-详情
    * @param discountEnable    折扣活动-是否启动(1=不启动,2=启动)
    * @param discountSpecial   折扣活动-专车
    * @param discountTaxi      折扣活动-出租车
    * @param discountLogistics 折扣活动-小件物流
    * @param redenvelopeId     -红包活动-红包id
    * @param redenvelopeEnable 红包活动-是否启动(1=不启动,2=启动)
    * @return
    */
   @RequestMapping(value = "/add")
   @ResponseBody
   public Object add(String name, String startTime, Integer registCouponId,
                     Integer registEnable, Integer registNumber, Integer registEffective,
                     Integer inviteCouponId, Integer inviteEnable, Integer inviteNumber, Integer inviteEffective,
                     Integer balanceEnable, String balanceInfo,
                     Integer discountEnable, Double discountSpecial, Double discountTaxi, Double discountLogistics,
                     Integer redenvelopeId, Integer redenvelopeEnable, Double registerPrice, Double invitationPrice, Double redPrice, Double discountDistance, Integer discountOrderNum) {
      userActivityService.insertOrUpdate(null, name, startTime, registCouponId,
            registEnable, registNumber, registEffective,
            inviteCouponId, inviteEnable, inviteNumber, inviteEffective,
            balanceEnable, balanceInfo,
            discountEnable, discountSpecial, discountTaxi, discountLogistics,
            redenvelopeId, redenvelopeEnable, registerPrice, invitationPrice, redPrice, discountDistance, discountOrderNum);
      return SUCCESS_TIP;
   }
   /**
    * 删除
    */
   @RequestMapping(value = "/delete")
   @ResponseBody
   public Object delete(@RequestParam Integer userActivityId) {
      userActivityService.deleteById(userActivityId);
      return SUCCESS_TIP;
   }
   /**
    * @param name              活动时间
    * @param startTime         时间区间
    * @param registCouponId    注册活动-优惠券id
    * @param registEnable      注册活动-是否启动(1=不启动,2=启动)
    * @param registNumber      注册活动-优惠券数量
    * @param registEffective   注册活动-优惠券有效期
    * @param inviteCouponId    邀请活动-优惠券id
    * @param inviteEnable      邀请活动-是否启动(1=不启动,2=启动)
    * @param inviteNumber      邀请活动-优惠券数量
    * @param inviteEffective   邀请活动-优惠券有效期
    * @param balanceEnable     充值活动-是否启动(1=不启动,2=启动)
    * @param balanceInfo       充值活动-详情
    * @param discountEnable    折扣活动-是否启动(1=不启动,2=启动)
    * @param discountSpecial   折扣活动-专车
    * @param discountTaxi      折扣活动-出租车
    * @param discountLogistics 折扣活动-小件物流
    * @param redenvelopeId     -红包活动-红包id
    * @param redenvelopeEnable 红包活动-是否启动(1=不启动,2=启动)
    * @return
    */
   @RequestMapping(value = "/update")
   @ResponseBody
   public Object update(Integer id, String name, String startTime, Integer registCouponId,
                        Integer registEnable, Integer registNumber, Integer registEffective,
                        Integer inviteCouponId, Integer inviteEnable, Integer inviteNumber, Integer inviteEffective,
                        Integer balanceEnable, String balanceInfo,
                        Integer discountEnable, Double discountSpecial, Double discountTaxi, Double discountLogistics,
                        Integer redenvelopeId, Integer redenvelopeEnable, Double registerPrice, Double invitationPrice, Double redPrice, Double discountDistance, Integer discountOrderNum) {
      userActivityService.insertOrUpdate(id, name, startTime, registCouponId,
            registEnable, registNumber, registEffective,
            inviteCouponId, inviteEnable, inviteNumber, inviteEffective,
            balanceEnable, balanceInfo,
            discountEnable, discountSpecial, discountTaxi, discountLogistics,
            redenvelopeId, redenvelopeEnable, registerPrice, invitationPrice, redPrice, discountDistance, discountOrderNum);
      return SUCCESS_TIP;
   }
   /**
    * 修改状态
    *
    * @param driverActivity
    * @return
    */
   @RequestMapping(value = "/updateStatus")
   @ResponseBody
   public Object updateStatus(UserActivity driverActivity) {
      userActivityService.updateById(driverActivity);
      return SUCCESS_TIP;
   }
   /**
    * 详情
    */
   @RequestMapping(value = "/userActivity_detail/{userActivityId}")
   public Object detail(@PathVariable("userActivityId") Integer userActivityId, Model model) {
      UserActivity userActivity = userActivityService.selectById(userActivityId);
      model.addAttribute("item", userActivity);
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      model.addAttribute("startTime", sdf.format(userActivity.getStartTime()));
      model.addAttribute("endTime", sdf.format(userActivity.getEndTime()));
      UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectOne(new EntityWrapper<UserActivityRegistered>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("item1", userActivityRegistered);
      if (userActivityRegistered != null) {
         model.addAttribute("item1Coupon", sysCouponRecordService.selectById(userActivityRegistered.getCouponId()));
      }
      UserActivityInvite userActivityInvite = userActivityInviteService.selectOne(new EntityWrapper<UserActivityInvite>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("item2", userActivityInvite);
      if (userActivityInvite != null) {
         model.addAttribute("item2Coupon", sysCouponRecordService.selectById(userActivityInvite.getCouponId()));
      }
      List<UserActivityBalance> balanceInfoList = userActivityBalanceService.selectList(new EntityWrapper<UserActivityBalance>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("balanceInfoList", balanceInfoList);
      model.addAttribute("item4", userActivityDiscount1Service.selectOne(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId", userActivity.getId())));
      UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeService.selectOne(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId", userActivity.getId()));
      model.addAttribute("item5", userActivityRedenvelope);
      if (userActivityRedenvelope != null) {
         model.addAttribute("item5Red", sysRedPacketRecordService.selectById(userActivityRedenvelope.getRedEnvelopeId()));
      }
      return PREFIX + "userActivity_detail.html";
   }
   /**
    * 跳转到立即处理页面
    */
   @RequestMapping("/userActivity_immediately/{id}")
   public String userActivityImmediately(@PathVariable Integer id, Model model) {
      model.addAttribute("id", id);
      return PREFIX + "userActivity_immediately.html";
   }
   /**
    * 立即处理操作
    */
   @RequestMapping(value = "/immediately")
   @ResponseBody
   public Object immediately(@RequestParam Integer id, @RequestParam Integer state, @RequestParam String remark) {
      UserActivity userActivity = userActivityService.selectById(id);
      if (SinataUtil.isNotEmpty(userActivity)) {
         userActivity.setStatus(state);
         userActivity.setRemark(remark);
         userActivityService.updateById(userActivity);
      }
      return SUCCESS_TIP;
   }
}