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.log.LogObjectHolder;
|
import com.stylefeng.guns.core.shiro.ShiroKit;
|
import com.stylefeng.guns.core.util.SinataUtil;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.system.model.*;
|
import com.stylefeng.guns.modular.system.response.MerchantActivityVo;
|
import com.stylefeng.guns.modular.system.service.*;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import static com.stylefeng.guns.modular.system.service.impl.MerchantActivityServiceImpl.getOrderTypeName;
|
|
|
@Controller
|
@RequestMapping("/merchantActivity")
|
public class MerchantActivityController extends BaseController {
|
|
private String PREFIX = "/system/merchantActivity/";
|
|
@Autowired
|
private IMerchantCouponService merchantCouponService;
|
|
@Autowired
|
private IMerchantActivityService merchantActivityService;
|
|
|
@Autowired
|
private IUserMerchantCouponService userMerchantCouponService;
|
|
@Autowired
|
private ITMerchantService merchantService;
|
|
@Autowired
|
private IMerchantActivitySlaveService merchantActivitySlaveService;
|
|
@Autowired
|
private IUserService userService;
|
|
@RequestMapping("/index")
|
public String index() {
|
return PREFIX + "merchantActivity.html";
|
}
|
|
/**
|
* @param startTime
|
* @param endTime
|
* @param type 券类型(1=优惠券。2=商品券)
|
* @param merchantName 商家名称
|
* @param status 状态 0未开始 1开始 2结束
|
* @return
|
*/
|
@RequestMapping("/list")
|
@ResponseBody
|
public Object list(String startTime, String endTime, Integer type, String merchantName, Integer status) {
|
Integer companyId = ShiroKit.getUser().getObjectId();
|
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
List<Map<String, Object>> list = merchantActivityService.list(startTime, endTime, type, merchantName, status, companyId, page);
|
page.setRecords(list);
|
return super.packForBT(page);
|
}
|
|
|
@RequestMapping("merchantActivity_add")
|
public String merchantActivityAdd(Model model) {
|
|
/*查询商家列表*/
|
List<Map<String, Object>> list = merchantCouponService.getMerchantList();
|
model.addAttribute("item", list);
|
|
return PREFIX + "merchantActivity_add.html";
|
}
|
|
|
/**
|
* 跳转选择商家卷
|
*
|
* @return
|
*/
|
@RequestMapping("/choiceCoupon")
|
public String choiceCoupon(String ids, String merchantIds, Integer type, Model model) {
|
|
model.addAttribute("item", ids);
|
model.addAttribute("merchantIds", merchantIds);
|
model.addAttribute("type", type);
|
|
return PREFIX + "merchantCoupon.html";
|
}
|
|
|
@RequestMapping("/getCouponList")
|
@ResponseBody
|
public Object getCouponList(String ids, String merchantIds, Integer type, String startTime, String endTime, String merchantName, String name) {
|
|
String[] split = ids.split(",");
|
List<Integer> couponIds = new ArrayList<>();
|
for (String id : split) {
|
couponIds.add(Integer.valueOf(id));
|
}
|
String[] split1 = merchantIds.split(",");
|
List<String> asList = Arrays.asList(split1);
|
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
List<Map<String, Object>> list = merchantCouponService.getCouponList(asList, type, startTime, endTime, merchantName, name, page);
|
list.forEach(one -> {
|
if (couponIds.contains(Integer.valueOf(one.get("id").toString()))) {
|
one.put("selectItem", Boolean.TRUE);
|
}
|
});
|
page.setRecords(list);
|
return super.packForBT(page);
|
}
|
|
|
/**
|
* 添加优惠券活动
|
*
|
* @param activity
|
* @return
|
*/
|
@RequestMapping("/add")
|
@ResponseBody
|
public Object add(@RequestBody MerchantActivity activity) {
|
|
Integer userId = ShiroKit.getUser().getId();
|
User user = userService.selectById(userId);
|
if (ToolUtil.isNotEmpty(user)) {
|
if (user.getRoleType().equals(2)) {
|
activity.setAuditStatus(1);
|
}
|
if (user.getRoleType().equals(1)) {
|
activity.setAuditStatus(2);
|
}
|
}
|
activity.setCompanyType(user.getRoleType());
|
activity.setCompanyId(user.getObjectId());
|
activity.setStatus(0);
|
activity.setState(1);
|
activity.setActivityType(1);
|
activity.setCreateTime(new Date());
|
|
List<MerchantActivitySlave> activitySlaveList = activity.getMerchantActivitySlaveList();
|
Map<Integer, List<MerchantActivitySlave>> listMap = activitySlaveList.stream().collect(Collectors.groupingBy(b -> b.getMerchantId()));
|
|
for (Integer key : listMap.keySet()) {
|
|
MerchantActivity merchantActivity = new MerchantActivity();
|
|
BeanUtils.copyProperties(activity, merchantActivity);
|
merchantActivity.setMerchantId(key);
|
|
merchantActivityService.insert(merchantActivity);
|
|
List<MerchantActivitySlave> merchantActivitySlaves = listMap.get(key);
|
for (MerchantActivitySlave activitySlave : merchantActivitySlaves) {
|
activitySlave.setMerchantActivityId(merchantActivity.getId());
|
activitySlave.setLaveNumber(activitySlave.getTotalNumber());
|
|
merchantActivitySlaveService.insert(activitySlave);
|
}
|
}
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 跳转到修改详情
|
*/
|
@RequestMapping("/merchant_activity_update")
|
public String merchantActivityUpdate(Integer id, Model model) {
|
|
MerchantActivity activity = merchantActivityService.selectById(id);
|
|
String orderType = activity.getOrderType();
|
|
String[] split = orderType.split(",");
|
List<String> asList = Arrays.asList(split);
|
|
MerchantActivityVo vo = new MerchantActivityVo();
|
BeanUtils.copyProperties(activity, vo);
|
vo.setAsList(asList);
|
vo.setOrderTypeName(getOrderTypeName(activity.getOrderType()));
|
|
/*券信息*/
|
List<Map<String, Object>> mapList = merchantActivitySlaveService.getActivitySlaveList(vo.getId());
|
|
/*查询商家列表*/
|
List<Map<String, Object>> list = merchantCouponService.getMerchantList();
|
model.addAttribute("merchantList", list);
|
model.addAttribute("item", vo);
|
model.addAttribute("mapList", mapList);
|
model.addAttribute("asList", asList);
|
|
LogObjectHolder.me().set(activity);
|
return PREFIX + "merchantActivity_edit.html";
|
}
|
|
/**
|
* 开始/结束活动
|
*
|
* @param ids
|
* @param state
|
* @return
|
*/
|
@RequestMapping("/renewState")
|
@ResponseBody
|
public Object renewState(String ids, Integer state) {
|
List<Integer> activityIds = new ArrayList<>();
|
if (SinataUtil.isNotEmpty(ids)) {
|
String[] split = ids.split(",");
|
for (String id : split) {
|
activityIds.add(Integer.valueOf(id));
|
}
|
}
|
if (CollectionUtils.isEmpty(activityIds)) {
|
activityIds.add(0);
|
}
|
Wrapper<MerchantActivity> wrapper = new EntityWrapper<>();
|
wrapper.in("id", activityIds);
|
List<MerchantActivity> activityList = merchantActivityService.selectList(wrapper);
|
if (CollectionUtils.isNotEmpty(activityList)) {
|
activityList.forEach(one -> {
|
one.setStatus(state);
|
merchantActivityService.updateById(one);
|
});
|
}
|
return SUCCESS_TIP;
|
}
|
|
|
/**
|
* 删除数据
|
*
|
* @param ids
|
* @return
|
*/
|
@RequestMapping("/activityDelete")
|
@ResponseBody
|
public Object activityDelete(String ids) {
|
List<Integer> activityIds = new ArrayList<>();
|
if (SinataUtil.isNotEmpty(ids)) {
|
String[] split = ids.split(",");
|
for (String id : split) {
|
activityIds.add(Integer.valueOf(id));
|
}
|
}
|
if (CollectionUtils.isEmpty(activityIds)) {
|
activityIds.add(0);
|
}
|
Wrapper<MerchantActivity> wrapper = new EntityWrapper<>();
|
wrapper.in("id", activityIds);
|
List<MerchantActivity> activityList = merchantActivityService.selectList(wrapper);
|
if (CollectionUtils.isNotEmpty(activityList)) {
|
activityList.forEach(one -> {
|
one.setState(3); //删除数据
|
one.setStatus(2);//结束活动
|
merchantActivityService.updateById(one);
|
});
|
}
|
return SUCCESS_TIP;
|
}
|
|
|
/**
|
* 跳转领取记录页面
|
*
|
* @return
|
*/
|
@RequestMapping("/receiveIndex")
|
public String receiveIndex(Integer merchantActivityId, Model model) {
|
|
model.addAttribute("item", merchantActivityId);
|
|
return PREFIX + "receivingRecord.html";
|
}
|
|
/**
|
* 领取记录
|
*
|
* @return
|
*/
|
@RequestMapping("/getReceiveList")
|
@ResponseBody
|
public Object getReceiveList(Integer merchantActivityId, String userName, String phone, String startTime, String endTime, Integer status) {
|
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
|
List<Map<String, Object>> list = merchantActivityService.getReceiveList(merchantActivityId, userName, phone, startTime, endTime, status, page);
|
page.setRecords(list);
|
return super.packForBT(page);
|
}
|
|
|
@ResponseBody
|
@RequestMapping("/receiveDelete")
|
public Object receiveDelete(String ids) {
|
List<Integer> activityIds = new ArrayList<>();
|
if (SinataUtil.isNotEmpty(ids)) {
|
String[] split = ids.split(",");
|
for (String id : split) {
|
activityIds.add(Integer.valueOf(id));
|
}
|
}
|
if (CollectionUtils.isEmpty(activityIds)) {
|
activityIds.add(0);
|
}
|
Wrapper<UserMerchantCoupon> wrapper = new EntityWrapper<>();
|
wrapper.in("id", activityIds);
|
List<UserMerchantCoupon> merchantCoupons = userMerchantCouponService.selectList(wrapper);
|
if (CollectionUtils.isNotEmpty(merchantCoupons)) {
|
merchantCoupons.forEach(one -> {
|
one.setState(3);
|
userMerchantCouponService.updateById(one);
|
});
|
}
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 跳转审核列表
|
*
|
* @return
|
*/
|
@RequestMapping("/activityExamineIndex")
|
public String activityExamineIndex() {
|
return PREFIX + "merchantActivityExamine.html";
|
}
|
|
|
/***
|
* 商家活动审核列表
|
* @param startTime
|
* @param endTime
|
* @param type
|
* @param auditStatus
|
* @return
|
*/
|
@RequestMapping("/activityExamineList")
|
@ResponseBody
|
public Object activityExamineList(String startTime, String endTime, Integer type, Integer auditStatus) {
|
|
Integer companyId = null;
|
if (ShiroKit.getUser().getRoleType().equals(1)) {
|
companyId = ShiroKit.getUser().getObjectId();
|
}
|
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
List<Map<String, Object>> list = merchantActivityService.activityExamineList(startTime, endTime, type, auditStatus, companyId, page);
|
page.setRecords(list);
|
return super.packForBT(page);
|
}
|
|
|
@RequestMapping("/activityExamine")
|
public Object activityExamine(Integer id, Model model) {
|
|
MerchantActivity activity = merchantActivityService.selectById(id);
|
|
String orderType = activity.getOrderType();
|
|
String[] split = orderType.split(",");
|
List<String> asList = Arrays.asList(split);
|
|
MerchantActivityVo vo = new MerchantActivityVo();
|
BeanUtils.copyProperties(activity, vo);
|
vo.setAsList(asList);
|
vo.setOrderTypeName(getOrderTypeName(activity.getOrderType()));
|
|
/*券信息*/
|
List<Map<String, Object>> mapList = merchantActivitySlaveService.getActivitySlaveList(vo.getId());
|
|
/*查询商家列表*/
|
List<Map<String, Object>> list = merchantCouponService.getMerchantList();
|
model.addAttribute("merchantList", list);
|
model.addAttribute("item", vo);
|
model.addAttribute("mapList", mapList);
|
model.addAttribute("asList", asList);
|
|
LogObjectHolder.me().set(activity);
|
|
return PREFIX + "ActivityExamine.html";
|
}
|
|
|
@RequestMapping("/examine")
|
@ResponseBody
|
public Object examine(Integer id, Integer state, String auditNote) {
|
|
MerchantActivity activity = merchantActivityService.selectById(id);
|
|
Integer userId = ShiroKit.getUser().getId();
|
User user = userService.selectById(userId);
|
|
if (ToolUtil.isNotEmpty(activity)) {
|
activity.setAuditStatus(state);
|
activity.setAuditNote(auditNote);
|
activity.setAuditUserId(user.getObjectId());
|
activity.setAuditTime(new Date());
|
|
merchantActivityService.updateById(activity);
|
}
|
return SUCCESS_TIP;
|
}
|
}
|