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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<UserActivityBalance> 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<Map<String, Object>> page = new PageFactory<Map<String, Object>>().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<UserActivityBalance> balanceInfoList = userActivityBalanceClient.queryUserActivityBalanceList(userActivity.getId());
|
model.addAttribute("balanceInfoList", balanceInfoList==null?new ArrayList<UserActivityBalance>():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;
|
}
|
}
|