package com.dsh.guns.modular.system.controller.general; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.activity.*; import com.dsh.course.feignClient.activity.model.*; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.common.constant.factory.PageFactory; import com.dsh.guns.core.log.LogObjectHolder; import com.dsh.guns.core.util.SinataUtil; import com.dsh.guns.modular.system.enums.ActivityTypeEnum; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.ISysCouponRecordService; import com.dsh.guns.modular.system.service.ISysRedPacketRecordService; import com.dsh.guns.modular.system.service.ITAuditRecordService; import com.dsh.guns.modular.system.util.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.text.SimpleDateFormat; import java.util.*; /** * 控制器 * * @author fengshuonan * @Date 2020-06-19 14:32:29 */ @Controller @RequestMapping("/userActivity") public class UserActivityController extends BaseController { private String PREFIX = "/system/userActivity/"; @Autowired private UserActivityClient userActivityClient; @Autowired private UserActivityBalanceClient userActivityBalanceClient; @Autowired private UserActivityDiscount1Client userActivityDiscount1Client; @Autowired private UserActivityInviteClient userActivityInviteClient; @Autowired private UserActivityRedenvelpoeClient userActivityRedenvelpoeClient; @Autowired private UserActivityRegisteredClient userActivityRegisteredClient; @Autowired private ISysCouponRecordService sysCouponRecordService; @Autowired private ISysRedPacketRecordService sysRedPacketRecordService; @Autowired private UserCouponRecordClient userCouponRecordService; @Autowired private ITAuditRecordService auditRecordService; /** * 跳转领取统计 * * @return */ @RequestMapping("/receiveRecord") public String receiveRecord(Model model, Integer activityId) { model.addAttribute("activityId", activityId); UserActivity userActivity = userActivityClient.queryUserActivityById(activityId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); model.addAttribute("startTime", sdf.format(userActivity.getStartTime())); model.addAttribute("endTime", sdf.format(userActivity.getEndTime())); UserActivityRegistered userActivityRegistered = userActivityRegisteredClient.queryUserActivityRegisteredByActivityId(activityId); UserActivityInvite userActivityInvite = userActivityInviteClient.queryUserActivityInviteByActivityId(activityId); UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Client.queryUserActivityDiscount1ByActivityId(activityId); UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelpoeClient.queryUserActivityRedenvelopeByActivityId(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); } model.addAttribute("language",UserExt.getLanguage()); 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 = userActivityClient.queryUserActivityById(activityId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); startTimes = sdf.format(userActivity.getStartTime()); endTimes = sdf.format(userActivity.getEndTime()); } Map map = new HashMap<>(); Double totalMOney = 0d; UserActivityRegistered userActivityRegistered = userActivityRegisteredClient.queryUserActivityRegisteredByActivityId(activityId); UserActivityInvite userActivityInvite = userActivityInviteClient.queryUserActivityInviteByActivityId(activityId); UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Client.queryUserActivityDiscount1ByActivityId(activityId); UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelpoeClient.queryUserActivityRedenvelopeByActivityId(activityId); if (SinataUtil.isNotEmpty(userActivityRegistered)) { Map resultMap = userCouponRecordService.getCouponStatic(new GetCouponStaticReq(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 resultMap = userCouponRecordService.getCouponStatic(new GetCouponStaticReq(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 resultMap = userCouponRecordService.getDiscountStatic(new GetDiscountStaticReq(startTimes, endTimes, userActivityDiscount1.getId())); if(resultMap!=null){ map.put("userActivityDiscount1Money", resultMap.get("money")); map.put("userActivityDiscount1Number", resultMap.get("number")); }else { map.put("userActivityDiscount1Money", 0); map.put("userActivityDiscount1Number", 0); } } else { map.put("userActivityDiscount1Money", 0); map.put("userActivityDiscount1Number", 0); } if (SinataUtil.isNotEmpty(userActivityRedenvelope)) { Map resultMap = userCouponRecordService.getRedStatic(new GetDiscountStaticReq(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 resultMap = userCouponRecordService.getRegStatic(new GetDiscountStaticReq(startTimes, endTimes, activityId)); totalMOney += Double.parseDouble(resultMap.get("money").toString()); map.put("totalMOney", totalMOney); return map; } /** * 跳转到首页 */ @RequestMapping("") public String index(Model model) { model.addAttribute("language",UserExt.getLanguage()); model.addAttribute("id",UserExt.getUser().getObjectId()); return PREFIX + "userActivity.html"; } /** * 跳转添加注册送优惠券页面 * * @return */ @RequestMapping("addRegist") public String addRegist(Model model) { model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "addRegist.html"; } /** * 跳转红包选择页面 * * @return */ @RequestMapping("/sysRedPacketRecord") public String sysRedPacketRecord() { return PREFIX + "sysRedPacketRecord.html"; } /** * 跳转到选择优惠券页面 * * @return */ @RequestMapping("/sysCouponRecord") public String sysCouponRecord(Model model) { model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "sysCouponRecord.html"; } @RequestMapping("/sysCouponRecord1") public String sysCouponRecord1(Model model) { model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "sysCouponRecord1.html"; } @RequestMapping("/sysCouponRecord2") public String sysCouponRecord2(Model model, Integer type) { model.addAttribute("type", type); model.addAttribute("language", UserExt.getLanguage()); return PREFIX + "sysCouponRecord2.html"; } /** * 跳转到添加 */ @RequestMapping("/userActivity_add") public String userActivityAdd(Model model) { model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "userActivity_add.html"; } /** * 跳转到修改 */ @RequestMapping("/userActivity_update/{userActivityId}") public String userActivityUpdate(@PathVariable Integer userActivityId, Model model) { UserActivity userActivity = userActivityClient.queryUserActivityById(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 = userActivityRegisteredClient.queryUserActivityRegisteredByActivityId(userActivity.getId()); model.addAttribute("item1", userActivityRegistered); if (userActivityRegistered != null) { model.addAttribute("item1Coupon", sysCouponRecordService.getById(userActivityRegistered.getCouponId())); } UserActivityInvite userActivityInvite = userActivityInviteClient.queryUserActivityInviteByActivityId(userActivity.getId()); model.addAttribute("item2", userActivityInvite); if (userActivityInvite != null) { model.addAttribute("item2Coupon", sysCouponRecordService.getById(userActivityInvite.getCouponId())); } List balanceInfoList = userActivityBalanceClient.queryUserActivityBalanceList(userActivity.getId()); model.addAttribute("balanceInfoList", balanceInfoList); model.addAttribute("item4", userActivityDiscount1Client.queryUserActivityDiscount1ByActivityId(userActivity.getId())); UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelpoeClient.queryUserActivityRedenvelopeByActivityId(userActivity.getId()); model.addAttribute("item5", userActivityRedenvelope); if (userActivityRedenvelope != null) { model.addAttribute("item5Red", sysRedPacketRecordService.getById(userActivityRedenvelope.getRedEnvelopeId())); } LogObjectHolder.me().set(userActivity); return PREFIX + "userActivity_edit.html"; } /** * 获取列表 */ @RequestMapping(value = "/blanceList") @ResponseBody public Object blanceList(String createTime, Integer activityId) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(createTime)) { String[] timeArray = createTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } Page> page = new PageFactory>().defaultPage(); page.setRecords(userCouponRecordService.getBlanceList(new GetBlanceListReq(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 = UserExt.getUser().getId(); return userActivityClient.queryUserActivityList(new QueryUserActivityListReq(uid, startTimes, endTimes, name, status, offset, limit)); } /** * @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) { if(registEnable==1 && inviteEnable==1 && balanceEnable==1 && discountEnable==1){ return "504"; } userActivityClient.insertOrUpdate(new UserActivityInsertOrUpdateReq(null, name, startTime, registCouponId, registEnable, registNumber, registEffective, inviteCouponId, inviteEnable, inviteNumber, inviteEffective, balanceEnable, balanceInfo, discountEnable, discountSpecial, discountTaxi, discountLogistics, redenvelopeId, redenvelopeEnable, registerPrice, invitationPrice, redPrice, UserExt.getUser().getObjectId(), UserExt.getUser().getRoleType())); return SUCCESS_TIP; } /** * 删除 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer userActivityId) { userActivityClient.deleteUserActivityById(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) { userActivityClient.insertOrUpdate(new UserActivityInsertOrUpdateReq(id, name, startTime, registCouponId, registEnable, registNumber, registEffective, inviteCouponId, inviteEnable, inviteNumber, inviteEffective, balanceEnable, balanceInfo, discountEnable, discountSpecial, discountTaxi, discountLogistics, redenvelopeId, redenvelopeEnable, registerPrice, invitationPrice, redPrice, 11, 33)); return SUCCESS_TIP; } /** * 修改状态 * * @param driverActivity * @return */ @RequestMapping(value = "/updateStatus") @ResponseBody public Object updateStatus(UserActivity driverActivity) { userActivityClient.updateStatus(driverActivity); return SUCCESS_TIP; } /** * 详情 */ @RequestMapping(value = "/userActivity_detail/{userActivityId}") public Object detail(@PathVariable("userActivityId") Integer userActivityId, Model model) { UserActivity userActivity = userActivityClient.queryUserActivityById(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 = userActivityRegisteredClient.queryUserActivityRegisteredByActivityId(userActivity.getId()); model.addAttribute("item1", userActivityRegistered); if (userActivityRegistered != null) { model.addAttribute("item1Coupon", sysCouponRecordService.getById(userActivityRegistered.getCouponId())); } UserActivityInvite userActivityInvite = userActivityInviteClient.queryUserActivityInviteByActivityId(userActivity.getId()); model.addAttribute("item2", userActivityInvite); if (userActivityInvite != null) { model.addAttribute("item2Coupon", sysCouponRecordService.getById(userActivityInvite.getCouponId())); } List balanceInfoList = userActivityBalanceClient.queryUserActivityBalanceList(userActivity.getId()); model.addAttribute("balanceInfoList", balanceInfoList==null?new ArrayList():balanceInfoList); model.addAttribute("item4", userActivityDiscount1Client.queryUserActivityDiscount1ByActivityId(userActivity.getId())); UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelpoeClient.queryUserActivityRedenvelopeByActivityId(userActivity.getId()); model.addAttribute("item5", userActivityRedenvelope); if (userActivityRedenvelope != null) { model.addAttribute("item5Red", sysRedPacketRecordService.getById(userActivityRedenvelope.getRedEnvelopeId())); } model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "userActivity_detail.html"; } /** * 跳转到立即处理页面 */ @RequestMapping("/userActivity_immediately/{id}") public String userActivityImmediately(@PathVariable Integer id, Model model) { model.addAttribute("id", id); model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "userActivity_immediately.html"; } /** * 立即处理操作 */ @RequestMapping(value = "/immediately") @Transactional(rollbackFor = Exception.class) @ResponseBody public Object immediately(@RequestParam Integer id, @RequestParam Integer state, @RequestParam String remark) { UserActivity userActivity = userActivityClient.queryUserActivityById(id); if (SinataUtil.isNotEmpty(userActivity)) { userActivity.setStatus(state); userActivity.setRemark(remark); userActivityClient.updateStatus(userActivity); // 添加审核记录 TAuditRecord tAuditRecord = new TAuditRecord(); tAuditRecord.setActivityId(id); tAuditRecord.setActivityName(userActivity.getName()); if(state == 2){ tAuditRecord.setAuditStatus(3); } if(state == 3){ tAuditRecord.setAuditStatus(2); } tAuditRecord.setAuditTime(new Date()); tAuditRecord.setAuditUserId(Objects.requireNonNull(UserExt.getUser()).getId()); tAuditRecord.setRemark(remark); tAuditRecord.setActivityType(ActivityTypeEnum.USER_ACTIVITY.getCode()); auditRecordService.save(tAuditRecord); } return SUCCESS_TIP; } }