package com.matrix.system.shopXcx.action;
|
|
import com.matrix.core.anotations.RemoveRequestToken;
|
import com.matrix.core.anotations.SaveRequestToken;
|
import com.matrix.core.constance.MatrixConstance;
|
import com.matrix.core.constance.SystemErrorCode;
|
import com.matrix.core.constance.SystemMessageCode;
|
import com.matrix.core.exception.GlobleException;
|
import com.matrix.core.pojo.AjaxResult;
|
import com.matrix.core.pojo.PaginationVO;
|
import com.matrix.core.tools.DateUtil;
|
import com.matrix.core.tools.ModelUtils;
|
import com.matrix.core.tools.StringUtils;
|
import com.matrix.core.tools.WebUtil;
|
import com.matrix.system.common.bean.SysUsers;
|
import com.matrix.system.hive.plugin.util.CollectionUtils;
|
import com.matrix.system.shopXcx.bean.*;
|
import com.matrix.system.shopXcx.dao.*;
|
import com.matrix.system.shopXcx.dto.SalonDTO;
|
import com.matrix.system.shopXcx.dto.SecKillDTO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import java.util.Comparator;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author wzy
|
* @description 活动主表
|
* @date 2020-03-21 15:26
|
*/
|
@Controller
|
@RequestMapping(value = "admin/shopActivities")
|
public class ShopActivitiesAction {
|
|
@Autowired
|
private ShopActivitiesDao shopActivitiesDao;
|
|
@Autowired
|
private ShopActivitiesGroupInfoDao shopActivitiesGroupInfoDao;
|
|
@Autowired
|
private ShopActivitiesGroupPriceDao shopActivitiesGroupPriceDao;
|
|
@Autowired
|
private ShopActivitiesGroupJoinDao shopActivitiesGroupJoinDao;
|
|
@Autowired
|
private ShopActivitiesSeckillInfoDao shopActivitiesSeckillInfoDao;
|
|
@Autowired
|
private ShopSkuDao shopSkuDao;
|
|
@Autowired
|
private ShopActivitiesSalonAttributeDao shopActivitiesSalonAttributeDao;
|
|
//记录编辑前的值Before_Edit_Value
|
public static final String BEV = "ShopActivities_BEV";
|
|
|
/**
|
* 列表显示
|
*/
|
@RequestMapping(value = "/showList")
|
public @ResponseBody
|
AjaxResult showList(ShopActivities shopActivities, PaginationVO pageVo) {
|
SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
|
if (pageVo == null) {
|
pageVo = new PaginationVO();
|
}
|
shopActivities.setCompanyId(user.getCompanyId());
|
List<ShopActivities> dataList = shopActivitiesDao.selectInPage(shopActivities, pageVo);
|
AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList,
|
shopActivitiesDao.selectTotalRecord(shopActivities));
|
return result;
|
}
|
|
/**
|
* 新增
|
*/
|
@RequestMapping(value = "/addGroupActivities")
|
@ResponseBody
|
@Transactional
|
public AjaxResult addGroupActivities(@RequestBody ShopActivities shopActivities) {
|
SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
|
|
if (shopActivities.getId() != null) {
|
Long actId = shopActivities.getId();
|
ShopActivities exist = shopActivitiesDao.selectById(actId);
|
if (exist == null) {
|
return AjaxResult.buildFailInstance("活动不存在");
|
}
|
|
List<ShopActivitiesGroupJoin> list = shopActivitiesGroupJoinDao.selectAllGroupBuyByActId(actId);
|
if (CollectionUtils.isNotEmpty(list)) {
|
return AjaxResult.buildFailInstance("该活动已存在拼团,无法修改");
|
}
|
|
shopActivitiesDao.deleteById(actId);
|
shopActivitiesGroupInfoDao.deleteByActId(actId);
|
shopActivitiesGroupPriceDao.deleteByActId(actId);
|
|
}
|
|
List<ShopSku> list = shopSkuDao.selectByPid(shopActivities.getGroupInfo().getGoodsId().intValue());
|
if (list.size() > 1) {
|
return AjaxResult.buildFailInstance("仅能选择一个规格的产品");
|
}
|
|
ShopActivitiesGroupInfo groupInfo = shopActivities.getGroupInfo();
|
List<ShopActivitiesGroupPrice> prices = groupInfo.getGroupPriceList();
|
shopActivities.setActBeginTime(DateUtil.stringToDate(shopActivities.getBeginTime(), DateUtil.DATE_FORMAT_SS));
|
shopActivities.setActEndTime(DateUtil.stringToDate(shopActivities.getEndTime(), DateUtil.DATE_FORMAT_SS));
|
|
shopActivities.setCreateBy(user.getSuName());
|
shopActivities.setUpdateBy(user.getSuName());
|
shopActivities.setActStatus(ShopActivities.ACTIVITIES_STATUS_OPEN);
|
shopActivities.setActType(ShopActivities.ACTIVITIES_TYPE_GROUP);
|
shopActivities.setCompanyId(user.getCompanyId());
|
shopActivitiesDao.insert(shopActivities);
|
|
groupInfo.setActId(shopActivities.getId());
|
groupInfo.setCreateBy(user.getSuName());
|
groupInfo.setUpdateBy(user.getSuName());
|
groupInfo.setCompanyId(user.getCompanyId());
|
shopActivitiesGroupInfoDao.insert(groupInfo);
|
|
if (CollectionUtils.isNotEmpty(prices)) {
|
prices.sort(new Comparator<ShopActivitiesGroupPrice>() {
|
@Override
|
public int compare(ShopActivitiesGroupPrice o1, ShopActivitiesGroupPrice o2) {
|
return (o1.getGpPrice().subtract(o2.getGpPrice())).intValue();
|
}
|
});
|
|
int i = 1;
|
for (ShopActivitiesGroupPrice price : prices) {
|
price.setCreateBy(user.getSuName());
|
price.setUpdateBy(user.getSuName());
|
price.setActId(shopActivities.getId());
|
price.setGpId(groupInfo.getId());
|
price.setSeq(i);
|
price.setCompanyId(user.getCompanyId());
|
i++;
|
}
|
}
|
int i = shopActivitiesGroupPriceDao.batchInsert(prices);
|
if (i > 0) {
|
return AjaxResult.buildSuccessInstance("添加成功");
|
} else {
|
return AjaxResult.buildSuccessInstance("添加失败");
|
}
|
}
|
|
/**
|
* 查询某个活动的基本信息
|
*
|
* @param id
|
* @return
|
*/
|
@RequestMapping(value = "/findShopActivitiesById/{id}")
|
@ResponseBody
|
public AjaxResult findShopActivitiesById(@PathVariable Long id) {
|
|
ShopActivities shopActivities = shopActivitiesDao.selectShopActivitiesById(id);
|
List<ShopActivitiesGroupPrice> groupPrices = shopActivitiesGroupPriceDao.selectGroupPriceByActId(shopActivities.getId());
|
AjaxResult ajaxResult = new AjaxResult(AjaxResult.STATUS_SUCCESS, null);
|
ajaxResult.putInMap("shopActivities", shopActivities);
|
ajaxResult.putInMap("groupPrices", groupPrices);
|
return ajaxResult;
|
}
|
|
|
/**
|
* 新增秒杀活动
|
*
|
* @param secKillDTO
|
* @return
|
*/
|
@RequestMapping(value = "/addSecKillAct")
|
@ResponseBody
|
@Transactional
|
public AjaxResult addSecKillAct(@RequestBody SecKillDTO secKillDTO) {
|
SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
|
|
if (secKillDTO.getId() != null) {
|
ShopActivities exist = shopActivitiesDao.selectById(secKillDTO.getId());
|
if (exist == null) {
|
return AjaxResult.buildSuccessInstance("活动不存在");
|
}
|
// TODO 需要判断当前活动是否产生了数据
|
|
shopActivitiesDao.deleteById(secKillDTO.getId());
|
shopActivitiesSeckillInfoDao.deleteByActId(secKillDTO.getId());
|
}
|
|
|
ShopActivities shopActivities = new ShopActivities();
|
shopActivities.setActType(ShopActivities.ACTIVITIES_TYPE_SECKILL);
|
shopActivities.setActStatus(ShopActivities.ACTIVITIES_STATUS_OPEN);
|
shopActivities.setActBeginTime(secKillDTO.getBeginTime());
|
shopActivities.setActEndTime(secKillDTO.getEndTime());
|
shopActivities.setActName(secKillDTO.getActName());
|
shopActivities.setShopIds(secKillDTO.getShopIds());
|
shopActivities.setUpdateBy(sysUsers.getSuName());
|
shopActivities.setCreateBy(sysUsers.getSuName());
|
shopActivities.setActRemark(secKillDTO.getActRemark());
|
shopActivities.setCompanyId(sysUsers.getCompanyId());
|
|
shopActivitiesDao.insert(shopActivities);
|
|
for (ShopActivitiesSeckillInfo seckillInfo : secKillDTO.getTableData()) {
|
seckillInfo.setActId(shopActivities.getId());
|
seckillInfo.setCreateBy(sysUsers.getSuName());
|
seckillInfo.setUpdateBy(sysUsers.getSuName());
|
seckillInfo.setSiRemainCnt(seckillInfo.getSiCount());
|
seckillInfo.setCompanyId(sysUsers.getCompanyId());
|
}
|
shopActivitiesSeckillInfoDao.batchInsert(secKillDTO.getTableData());
|
|
|
return AjaxResult.buildSuccessInstance("添加成功");
|
}
|
|
@RequestMapping(value = "/findSecKillActivitiesById/{id}")
|
@ResponseBody
|
public AjaxResult findSecKillActivitiesById(@PathVariable("id") Long id) {
|
ShopActivities shopActivities = shopActivitiesDao.selectById(id);
|
List<ShopActivitiesSeckillInfo> seckillInfos = shopActivitiesSeckillInfoDao.selectSeckillInfoByActId(shopActivities.getId());
|
AjaxResult ajaxResult = new AjaxResult(AjaxResult.STATUS_SUCCESS, "获取成功");
|
ajaxResult.putInMap("activities", shopActivities);
|
ajaxResult.putInMap("seckill", seckillInfos);
|
return ajaxResult;
|
}
|
|
|
/**
|
* 修改
|
*/
|
@RemoveRequestToken
|
@RequestMapping(value = "/modifyShopActivities")
|
public @ResponseBody
|
AjaxResult modifyShopActivities(ShopActivities newShopActivities) {
|
ShopActivities oldShopActivities = WebUtil.getSessionAttribute(BEV);
|
int i = 0;
|
Map<String, Object> modifyMap = null;
|
try {
|
if (!ModelUtils.isModified(oldShopActivities, newShopActivities)) {
|
i = MatrixConstance.DML_SUCCESSS;
|
}
|
modifyMap = ModelUtils.comparePojo2Map(oldShopActivities, newShopActivities);
|
} catch (Exception e) {
|
throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newShopActivities);
|
}
|
if (modifyMap.size() > 0) {
|
modifyMap.put("id", oldShopActivities.getId());
|
shopActivitiesDao.updateByMap(modifyMap);
|
}
|
i = MatrixConstance.DML_SUCCESSS;
|
WebUtil.removeSessionAttribute(BEV);
|
if (i > 0) {
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "活动主表");
|
} else {
|
throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL);
|
}
|
}
|
|
|
/**
|
* 进入修改界面
|
*/
|
@SaveRequestToken
|
@RequestMapping(value = "/editForm")
|
public ModelAndView editForm(Long id) {
|
ShopActivities shopActivities = new ShopActivities();
|
ModelAndView modelAndView = new ModelAndView("admin/shopActivities-form");
|
if (id != null) {
|
shopActivities = shopActivitiesDao.selectById(id);
|
WebUtil.setSessionAttribute(BEV, shopActivities);
|
}
|
modelAndView.addObject("obj", shopActivities);
|
return modelAndView;
|
}
|
|
|
/**
|
* 删除
|
*/
|
@Transactional
|
@RequestMapping(value = "/del")
|
public @ResponseBody
|
AjaxResult del(String keys) {
|
List<String> ids = StringUtils.strToCollToString(keys, ",");
|
Long actId = Long.parseLong(ids.get(0));
|
ShopActivities exist = shopActivitiesDao.selectById(actId);
|
if (exist == null) {
|
return AjaxResult.buildFailInstance("活动不存在");
|
}
|
|
List<ShopActivitiesGroupJoin> list = shopActivitiesGroupJoinDao.selectAllGroupBuyByActId(actId);
|
if (CollectionUtils.isNotEmpty(list)) {
|
return AjaxResult.buildFailInstance("该活动已存在拼团,无法修改");
|
}
|
|
shopActivitiesDao.deleteById(actId);
|
shopActivitiesGroupInfoDao.deleteByActId(actId);
|
shopActivitiesGroupPriceDao.deleteByActId(actId);
|
return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES);
|
}
|
|
@RequestMapping(value = "/closeAct")
|
@ResponseBody
|
public AjaxResult closeAct(Long id) {
|
ShopActivities shopActivities = new ShopActivities();
|
shopActivities.setId(id);
|
shopActivities.setActStatus(ShopActivities.ACTIVITIES_STATUS_CLOSE);
|
int i = shopActivitiesDao.updateByModel(shopActivities);
|
if (i > 0) {
|
return AjaxResult.buildSuccessInstance("关闭成功");
|
}
|
return AjaxResult.buildFailInstance("关闭失败");
|
}
|
|
/**
|
* 新增沙龙活动
|
*
|
* @param salonDTO
|
* @return
|
*/
|
@RequestMapping(value = "/addSalonActivity")
|
@ResponseBody
|
@Transactional
|
public AjaxResult addSalonActivity(@RequestBody SalonDTO salonDTO) {
|
SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
|
|
ShopActivities shopActivities = new ShopActivities();
|
// 判断id是否存在,若存在则为修改,先删除原有数据再重新插入
|
if (salonDTO.getId() != null) {
|
shopActivities.setId(salonDTO.getId());
|
shopActivitiesDao.deleteById(salonDTO.getId());
|
shopActivitiesSalonAttributeDao.deleteByActId(salonDTO.getId());
|
}
|
|
shopActivities.setActName(salonDTO.getActName());
|
shopActivities.setActType(ShopActivities.ACTIVITIES_TYPE_SALON);
|
shopActivities.setActBeginTime(salonDTO.getBeginTime());
|
shopActivities.setActEndTime(salonDTO.getEndTime());
|
shopActivities.setActStatus(ShopActivities.ACTIVITIES_STATUS_OPEN);
|
shopActivities.setActRemark(salonDTO.getActRemark());
|
shopActivities.setShopIds(salonDTO.getShopIds());
|
shopActivities.setActMax(salonDTO.getActMax());
|
shopActivities.setCreateBy(sysUsers.getSuName());
|
shopActivities.setUpdateBy(sysUsers.getSuName());
|
shopActivities.setActImg(salonDTO.getActImg());
|
shopActivities.setActContent(salonDTO.getActContent());
|
shopActivities.setCompanyId(sysUsers.getCompanyId());
|
shopActivitiesDao.insert(shopActivities);
|
|
if (CollectionUtils.isNotEmpty(salonDTO.getAttrLists())) {
|
for (ShopActivitiesSalonDistribute distribute : salonDTO.getAttrLists()) {
|
distribute.setActId(shopActivities.getId());
|
distribute.setUpdateBy(sysUsers.getSuName());
|
distribute.setCreateBy(sysUsers.getSuName());
|
distribute.setCompanyId(sysUsers.getCompanyId());
|
}
|
}
|
|
int i = shopActivitiesSalonAttributeDao.batchInsert(salonDTO.getAttrLists());
|
if (i > 0) {
|
return AjaxResult.buildSuccessInstance("新增成功");
|
}
|
return AjaxResult.buildFailInstance("新增失败");
|
}
|
|
@RequestMapping(value = "/findShopActivitiesSalonById/{id}")
|
@ResponseBody
|
public AjaxResult findShopActivitiesSalonById(@PathVariable("id") Long id) {
|
ShopActivities shopActivities = shopActivitiesDao.selectById(id);
|
if (shopActivities == null) {
|
return AjaxResult.buildSuccessInstance("活动不存在");
|
}
|
List<ShopActivitiesSalonDistribute> list = shopActivitiesSalonAttributeDao.selectByActId(shopActivities.getId());
|
AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
|
ajaxResult.putInMap("activities", shopActivities);
|
ajaxResult.putInMap("list", list);
|
return ajaxResult;
|
}
|
}
|