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 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 list = shopActivitiesGroupJoinDao.selectAllGroupBuyByActId(actId); if (CollectionUtils.isNotEmpty(list)) { return AjaxResult.buildFailInstance("该活动已存在拼团,无法修改"); } shopActivitiesDao.deleteById(actId); shopActivitiesGroupInfoDao.deleteByActId(actId); shopActivitiesGroupPriceDao.deleteByActId(actId); } List list = shopSkuDao.selectByPid(shopActivities.getGroupInfo().getGoodsId().intValue()); if (list.size() > 1) { return AjaxResult.buildFailInstance("仅能选择一个规格的产品"); } ShopActivitiesGroupInfo groupInfo = shopActivities.getGroupInfo(); List 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() { @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 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 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 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 ids = StringUtils.strToCollToString(keys, ","); Long actId = Long.parseLong(ids.get(0)); ShopActivities exist = shopActivitiesDao.selectById(actId); if (exist == null) { return AjaxResult.buildFailInstance("活动不存在"); } List 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 list = shopActivitiesSalonAttributeDao.selectByActId(shopActivities.getId()); AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); ajaxResult.putInMap("activities", shopActivities); ajaxResult.putInMap("list", list); return ajaxResult; } }