package com.matrix.system.hive.action; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.bean.MoneyCardUse; import com.matrix.system.hive.bean.SysProjUse; import com.matrix.system.hive.bean.SysProjUseFlow; import com.matrix.system.hive.dao.SysProjUseDao; import com.matrix.system.hive.service.MoneyCardUseService; import com.matrix.system.hive.service.SysProjUseService; import com.matrix.system.hive.service.SysProjuseFreezeService; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * 会员套餐管理 * * @author guchunxia * @date 2016-09-03 */ @Controller @RequestMapping(value = "admin/taoCanUser") public class TaocanController extends BaseController { @Resource private SysProjUseService sysProjUseService; @Autowired private SysProjUseDao projUseDao; @Resource private SysProjuseFreezeService sysProjuseFreezeService; @Resource private MoneyCardUseService moneyCardUseService; public static final String fnCode = "projUse"; public static final String search = fnCode + ":search"; public static final String edit = fnCode + ":edit"; public static final String del = fnCode + ":del"; public static final String add = fnCode + ":add"; /** * 查看会员套餐使用情况 * * @author guchunxia * @date 2016-09-03 */ @RequestMapping(value = "/showTc") public @ResponseBody AjaxResult showTc(PaginationVO pageVo, SysProjUse sysProjUse) { sysProjUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC); List projUseList =sysProjUseService.findInPage(sysProjUse,null); //设置套餐中的项目 projUseList.forEach(taocanProjUse -> { taocanProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(taocanProjUse.getId(),sysProjUse.getStatus())); }); return new AjaxResult(AjaxResult.STATUS_SUCCESS, projUseList, sysProjUseService.findTotal(sysProjUse)); } /** * 将套餐设置为有效 * * @author guchunxia * @date 2016-09-03 */ @RequestMapping(value = "/activeTc") public @ResponseBody AjaxResult activeTc(SysProjUse sysProjUse) { return sysProjUseService.activeTc(sysProjUse); } /** * 将套餐设置为无效 * * @author guchunxia * @date 2016-09-03 */ @RequestMapping(value = "/invalidTc") public @ResponseBody AjaxResult invalidTc(SysProjUse sysProjUse) { int i = sysProjUseService.invalidTc(sysProjUse); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "已设置为无效"); } else { return new AjaxResult(AjaxResult.STATUS_FAIL, "设置失败"); } } /** * 转让套餐 * * @param sysProjUse 转让信息 * 被转让的会员id * @return * @author guchunxia * @date 2016-09-04 */ @RequestMapping(value = "/transferTc") public @ResponseBody AjaxResult transferTc(SysProjUse sysProjUse, Long vipId2) { int i = sysProjUseService.transferTc(sysProjUse, vipId2); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "套餐转让成功"); } return new AjaxResult(AjaxResult.STATUS_FAIL, "套餐转让失败"); } /** * 冻结会员套餐 * * @param sysProjUse * @return */ @RequestMapping(value = "/freezeTc") public @ResponseBody AjaxResult freezeTc(SysProjUse sysProjUse) { int i = sysProjUseService.freezeTc(sysProjUse); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "冻结成功"); } return new AjaxResult(AjaxResult.STATUS_FAIL, "冻结失败"); } @RequestMapping(value = "/getEffectCard") public @ResponseBody AjaxResult getEffectCard(SysProjUse sysProjUse) { MoneyCardUse cardUse = null; cardUse = moneyCardUseService.findByVipId(sysProjUse.getVipId()); double money = sysProjUseService.getTotalMoneyTc(sysProjUse); if (cardUse != null) { cardUse.setRealMoney(money); List list = new ArrayList(); list.add(cardUse); return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "有有效会籍卡", list, null); } else { //无会员卡则new一个,为了把钱传递到前台 cardUse = new MoneyCardUse(); cardUse.setRealMoney(money); List list = new ArrayList(); list.add(cardUse); return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "无有效会籍卡", list, null); } } /** * 进入套餐修改页面 * * @return */ @RequestMapping(value = "/editForm") public String editForm(Long id) { if (id != null) { SysProjUse sysProjUse = sysProjUseService.findById(id); sysProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(sysProjUse.getId(), sysProjUse.getStatus())); WebUtil.getRequest().setAttribute("obj", sysProjUse); } return "admin/hive/vip/tc-form"; } /** * 添加或修改会员套餐信息 */ @RequestMapping(value = "/addOrModify") public @ResponseBody AjaxResult addOrModify(SysProjUse sysProjUse) { if (sysProjUse.getId() != null) { //插入修改记录 SysUsers user=getMe(); //插入修改记录 SysProjUse oldProjUse = sysProjUseService.findById(sysProjUse.getId()); SysProjUseFlow projUseFlow=new SysProjUseFlow(); projUseFlow.setProjUseId(sysProjUse.getId()); projUseFlow.setOptionType("人工修改"); projUseFlow.setProjName(oldProjUse.getProjName()); projUseFlow.setCreateBy(user.getSuName()); projUseFlow.setUpdateBy(user.getSuName()); projUseFlow.setPrice(sysProjUse.getPrice()); projUseFlow.setStatus(sysProjUse.getStatus()); projUseFlow.setBalance(sysProjUse.getBalance()); projUseFlow.setFailTime(sysProjUse.getFailTime()); projUseFlow.setIsOver(sysProjUse.getIsOver()); projUseFlow.setRemark(sysProjUse.getUpdateRemark()); projUseFlow.setSurplusCount(sysProjUse.getSurplusCount()); projUseDao.insertFlow(projUseFlow); int modifyResult = sysProjUseService.modify(sysProjUse); List modifyUse = sysProjUse.getTaocanProjUse(); if (modifyResult > 0) { if (CollectionUtils.isNotEmpty(modifyUse)) { for (SysProjUse use : modifyUse) { //插入修改记录 SysProjUse oldProjUse2 = sysProjUseService.findById(use.getId()); SysProjUseFlow projUseFlow2=new SysProjUseFlow(); //套餐中的项目需要记录套餐id projUseFlow2.setProjUseId(oldProjUse.getId()); projUseFlow2.setOptionType("人工修改"); projUseFlow2.setProjName(oldProjUse2.getProjName()); projUseFlow2.setCreateBy(user.getSuName()); projUseFlow2.setUpdateBy(user.getSuName()); projUseFlow2.setPrice(use.getPrice()); projUseFlow2.setStatus(use.getStatus()); projUseFlow2.setBalance(use.getBalance()); projUseFlow2.setFailTime(use.getFailTime()); projUseFlow2.setIsOver(use.getIsOver()); projUseFlow2.setRemark(sysProjUse.getUpdateRemark()); projUseFlow2.setSurplusCount(use.getSurplusCount()); projUseDao.insertFlow(projUseFlow2); sysProjUseService.modify(use); } } return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); } else { return new AjaxResult(AjaxResult.STATUS_FAIL, "修改失败"); } } else { return add(sysProjUseService, sysProjUse, "套餐"); } } }