| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import cn.hutool.system.UserInfo; |
| | | 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.modular.system.model.TSystemNotice; |
| | | import com.stylefeng.guns.modular.system.model.SysRedPacketRecord; |
| | | import com.stylefeng.guns.modular.system.model.TUser; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import com.stylefeng.guns.modular.system.model.UserRedPacketRecord; |
| | | import com.stylefeng.guns.modular.system.service.ITSystemNoticeService; |
| | | import com.stylefeng.guns.modular.system.service.ITUserService; |
| | | import com.stylefeng.guns.modular.system.service.IUserRedPacketRecordService; |
| | | import com.stylefeng.guns.modular.system.service.impl.UserServiceImpl; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | 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 com.stylefeng.guns.modular.system.model.SysRedPacketRecord; |
| | | import com.stylefeng.guns.modular.system.service.ISysRedPacketRecordService; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.math.RoundingMode; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Random; |
| | | |
| | | /** |
| | | * 控制器 |
| | |
| | | @RequestMapping("/sysRedPacketRecord") |
| | | public class SysRedPacketRecordController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/sysRedPacketRecord/"; |
| | | private final String PREFIX = "/system/sysRedPacketRecord/"; |
| | | |
| | | @Autowired |
| | | private ISysRedPacketRecordService sysRedPacketRecordService; |
| | | @Autowired |
| | | private IUserRedPacketRecordService userRedPacketRecordService; |
| | | |
| | | @Autowired |
| | | private ITSystemNoticeService systemNoticeService; |
| | | @Autowired |
| | | private ITUserService userService; |
| | | |
| | | @Autowired |
| | | private IUserService iUserService; |
| | | |
| | | @RequestMapping("/redRecord") |
| | | public String index( Model model,Integer couponActivityId,Integer activityType) { |
| | |
| | | model.addAttribute("couponActivityId",couponActivityId); |
| | | return PREFIX + "userRedRecord.html"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | LogObjectHolder.me().set(sysRedPacketRecord); |
| | | return PREFIX + "sysRedPacketRecord_edit.html"; |
| | | } |
| | | |
| | | |
| | | @Autowired |
| | | private ITSystemNoticeService systemNoticeService; |
| | | |
| | | @Autowired |
| | | private ITUserService userService; |
| | | |
| | | |
| | | @RequestMapping(value = "/direct") |
| | | @ResponseBody |
| | |
| | | // } |
| | | |
| | | } |
| | | String[] split = ids.split(","); |
| | | User user = iUserService.selectById(ShiroKit.getUser().getId()); |
| | | String[] split = ids.split(","); |
| | | for (String s : split) { |
| | | if(money > 0||sysRedPacketRecord.getType()!=1){ |
| | | if (sysRedPacketRecord.getType()!=1){ |
| | | Double startMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getStartMoney())); |
| | | Double endMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getEndMoney())); |
| | | int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue(); |
| | | Random random = new Random(); |
| | | int num = random.nextInt(i); |
| | | money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | v=v-money; |
| | | if (v<=0){ |
| | | return ResultUtil.success("当前红包为随机红包,可能有部分用户无法领取",null,"当前红包为随机红包,可能有部分用户无法领取"); |
| | | if(money > 0||sysRedPacketRecord.getType()!=1){ |
| | | if (sysRedPacketRecord.getType()!=1){ |
| | | Double startMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getStartMoney())); |
| | | Double endMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getEndMoney())); |
| | | int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue(); |
| | | Random random = new Random(); |
| | | int num; |
| | | if (!startMoney.equals(endMoney)){ |
| | | num = random.nextInt(i); |
| | | |
| | | }else { |
| | | num = 0; |
| | | } |
| | | money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | v=v-money; |
| | | if (v<0){ |
| | | return ResultUtil.success("当前红包为随机红包,可能有部分用户无法领取",null,"当前红包为随机红包,可能有部分用户无法领取"); |
| | | } |
| | | } |
| | | //添加临时红包数据 |
| | | UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord(); |
| | | userRedPacketRecord.setMoney(money); |
| | | userRedPacketRecord.setRemainingAmount(money); |
| | | userRedPacketRecord.setInsertTime(new Date()); |
| | | userRedPacketRecord.setCompanyId(user.getObjectId()); |
| | | userRedPacketRecord.setState(1); |
| | | userRedPacketRecord.setOrderId(null); |
| | | // 标记为后台发放的红包 |
| | | userRedPacketRecord.setIsGrant(1); |
| | | userRedPacketRecord.setRedPacketActivityId(redId); |
| | | // userRedPacketRecord.setOrderType(3); |
| | | userRedPacketRecord.setUserId(Integer.valueOf(s)); |
| | | userRedPacketRecordService.insert(userRedPacketRecord); |
| | | |
| | | TUser tUser = userService.selectById(Integer.valueOf(s)); |
| | | Integer language = tUser.getLanguage(); |
| | | try { |
| | | systemNoticeService.addSystemNotice(1, language == 1 ? "您收到一个额度为GHS"+money+"的红包,请查收。" : language == 2 ? "You have received a red envelope with a limit of GHS"+money+". Please check it." : "Vous recevez un paquet rouge avec une limite de ghs+"+money+", veuillez vérifier.", tUser.getId()); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //添加临时红包数据 |
| | | UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord(); |
| | | userRedPacketRecord.setMoney(money); |
| | | userRedPacketRecord.setRemainingAmount(money); |
| | | userRedPacketRecord.setInsertTime(new Date()); |
| | | userRedPacketRecord.setCompanyId(1); |
| | | userRedPacketRecord.setState(1); |
| | | userRedPacketRecord.setOrderId(null); |
| | | userRedPacketRecord.setRedPacketActivityId(redId); |
| | | // userRedPacketRecord.setOrderType(3); |
| | | userRedPacketRecord.setUserId(Integer.valueOf(s)); |
| | | userRedPacketRecordService.insert(userRedPacketRecord); |
| | | |
| | | TUser tUser = userService.selectById(Integer.valueOf(s)); |
| | | Integer language = tUser.getLanguage(); |
| | | try { |
| | | systemNoticeService.addSystemNotice(1, language == 1 ? "您收到一个额度为GHS"+money+"的红包,请查收。" : language == 2 ? "You have received a red envelope with a limit of GHS"+money+". Please check it." : "Vous recevez un paquet rouge avec une limite de ghs+"+money+", veuillez vérifier.", tUser.getId()); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | return ResultUtil.success("指派成功",null,"当前红包为随机红包,可能有部分用户无法领取"); |
| | | } |