| | |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.service.SysProjUseService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.xml.crypto.Data; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | |
| | | @Override |
| | | public int modify(SysProjUse sysProjUse) { |
| | | //插入套餐项目操作记录 |
| | | |
| | | |
| | | |
| | | return sysProjUseDao.update(sysProjUse); |
| | | |
| | |
| | | contentZr.append("获取会员" + vipInfo.getVipName() + "的") |
| | | .append(",余额:" + projuse.getBalance()) |
| | | .append(",余次:") |
| | | .append(",有效期:" + DateUtils.dateToString(projuse.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(projuse.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:"); |
| | | |
| | | |
| | |
| | | |
| | | @Override |
| | | public AjaxResult activeTc(SysProjUse proj) { |
| | | |
| | | Date newDate = proj.getFailTime(); |
| | | Date today = new Date(); |
| | | SysProjUse taocan = sysProjUseDao.selectById(proj.getId()); |
| | | switch (taocan.getStatus()) { |
| | | case Dictionary.TAOCAN_STATUS_WX: |
| | | // 如果到期,需要重新设置有效期 |
| | | if (taocan.getFailTime().before(new Date())) { |
| | | taocan.setFailTime(DateUtil.getDateAfterMonth(new Date(),12)); |
| | | if (newDate != null && !newDate.equals("")) { |
| | | taocan.setFailTime(newDate); |
| | | if (newDate.before(today)) { |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "有效期要大于当前日期"); |
| | | } |
| | | } |
| | | |
| | | if (newDate == null && (taocan.getFailTime() == null || taocan.getFailTime().before(today))) { |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "已过期"); |
| | | } |
| | | break; |
| | | //TODO 如果是冻结状态则要算出冻结的天数,延长有效期 |
| | | case Dictionary.TAOCAN_STATUS_DJ: |
| | | SysProjuseFreeze freeze = new SysProjuseFreeze(); |
| | | freeze.setOrderItemId(taocan.getId().toString()); |
| | | freeze.setVipId(taocan.getVipId()); |
| | | SysProjuseFreeze freezeProj = sysProjuseFreezeDao.selectByOrderItemId(freeze); |
| | | Date dateAfter = DateUtil.nextNDate(taocan.getFailTime(), freezeProj.getGapDays()); |
| | | |
| | | taocan.setFailTime(dateAfter); |
| | | break; |
| | | default: |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择无效或者冻结的套餐"); |
| | | } |
| | | taocan.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | sysProjUseDao.updateTcStatus(taocan.getId(),"有效"); |
| | | sysProjUseDao.updateProjStatus(taocan); |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功"); |
| | | |
| | | } |
| | |
| | | .append(",余次:" + cardUse.getLastCountName()) |
| | | .append(",本金余额:" + MoneyUtil.add(cardUse.getRealMoney(), money)) |
| | | .append(",赠送余额:" + cardUse.getGiftMoney()) |
| | | .append(",有效期:" + DateUtils.dateToString(cardUse.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(cardUse.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:" + cardUse.getSourceName()); |
| | | content += contentBuild.toString(); |
| | | |
| | |
| | | return i; |
| | | } |
| | | |
| | | /** |
| | | * cardUser暂时没有用到 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int returnMoneyTc(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId) { |
| | | //充值记录 |
| | | //SysRechargeFlow flow=new SysRechargeFlow(); |
| | | |
| | | // 计算出套餐所有项目的剩余次数的钱 |
| | | getTotalMoney(sysProjUse, cardUse, moneyCardUseId); |
| | | //3、套餐下的项目状态改为退款 |
| | | sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_TK); |
| | | int j = sysProjUseDao.updateProjStatus(sysProjUse); |
| | | |
| | | return j; |
| | | } |
| | | |
| | | |
| | | /*********************以下为项目使用情况操作***********************/ |
| | |
| | | contentZr.append("获取会员" + vipInfo.getVipName() + "的" + shoppingGoods.getName()) |
| | | .append(",余额:" + sysProjUse.getBalance()) |
| | | .append(",余次:" + sysProjUse.getSurplusCount()) |
| | | .append(",有效期:" + DateUtils.dateToString(sysProjUse.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(sysProjUse.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:"); |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 退款 |
| | | * |
| | | * @param sysProjUse |
| | | * @return |
| | | */ |
| | | public int returnMoneyProj(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId) { |
| | | int i = 0; |
| | | sysProjUse = sysProjUseDao.selectById(sysProjUse.getId()); |
| | | //判断套餐是否存在欠款 |
| | | checkOrderStatu(sysProjUse); |
| | | if (!(sysProjUse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX))) { |
| | | throw new GlobleException("不是有效项目"); |
| | | } |
| | | if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZR)) { |
| | | throw new GlobleException("转让的项目不能退款"); |
| | | } |
| | | if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZS)) { |
| | | throw new GlobleException("赠送的项目不能退款"); |
| | | } |
| | | StringBuilder content = new StringBuilder(); |
| | | ShoppingGoodsAssemble shoppingGoodsAssemble = shoppingGoodsAssembleDao.selectById(sysProjUse.getAssembleId()); |
| | | ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(shoppingGoodsAssemble.getShoppingGoodsId()); |
| | | content.append(shoppingGoods + "退款"); |
| | | if (cardUse != null) { |
| | | // 1、金额退到该用户的有效会籍卡中 |
| | | MoneyCardUse upCard = moneyCardUseDao.selectById(cardUse.getId()); |
| | | upCard.setRealMoney(upCard.getRealMoney() + sysProjUse.getBalance()); |
| | | ; |
| | | moneyCardUseDao.update(upCard); |
| | | |
| | | content.append("到会籍卡(" + upCard.getCardName() + ")" + sysProjUse.getBalance() + "元") |
| | | .append(",余次:" + upCard.getLastCountName()) |
| | | .append(",本金余额:" + upCard.getRealMoney()) |
| | | .append(",有效期:" + DateUtils.dateToString(upCard.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:" + upCard.getSourceName()); |
| | | } else { |
| | | content.append("现金" + sysProjUse.getBalance() + "元"); |
| | | } |
| | | |
| | | sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_TK); |
| | | return sysProjUseDao.update(sysProjUse); |
| | | } |
| | | |
| | | /** |
| | | * 设置为有效套餐 |
| | |
| | | public AjaxResult activeProj(SysProjUse proj) { |
| | | Date today = new Date(); |
| | | Date newDate = proj.getFailTime(); |
| | | |
| | | proj = sysProjUseDao.selectById(proj.getId()); |
| | | switch (proj.getStatus()) { |
| | | case Dictionary.TAOCAN_STATUS_WX: |
| | |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "有效期要大于当前日期"); |
| | | } |
| | | } |
| | | if (newDate == null && proj.getFailTime().before(today)) { |
| | | if (newDate == null && (proj.getFailTime() == null || proj.getFailTime().before(today))) { |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "已过期"); |
| | | } |
| | | break; |
| | | //如果是冻结状态则要算出冻结的天数,延长有效期 |
| | | case Dictionary.TAOCAN_STATUS_DJ: |
| | | SysProjuseFreeze freeze = new SysProjuseFreeze(); |
| | | freeze.setOrderItemId(proj.getId().toString()); |
| | | freeze.setVipId(proj.getVipId()); |
| | | SysProjuseFreeze freezeProj = sysProjuseFreezeDao.selectByOrderItemId(freeze); |
| | | Date dateAfter = DateUtil.nextNDate(proj.getFailTime(), freezeProj.getGapDays()); |
| | | |
| | | proj.setFailTime(dateAfter); |
| | | break; |
| | | default: |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择无效或者冻结的套餐"); |
| | |
| | | StringBuilder content = new StringBuilder(); |
| | | ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(proj.getProjId()); |
| | | content.append(shoppingGoods.getName() + "设置为有效") |
| | | .append(",有效期:" + DateUtils.dateToString(proj.getFailTime(), DateUtils.DATE_FORMAT_MM)); |
| | | .append(",有效期:" + DateUtil.dateToString(proj.getFailTime(), DateUtil.DATE_FORMAT_MM)); |
| | | |
| | | |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功"); |
| | | } |
| | | |
| | | /** |
| | | * 退款项目 |
| | | */ |
| | | @Override |
| | | public double getTotalMoneyProj(SysProjUse sysProjUse) { |
| | | sysProjUse = sysProjUseDao.selectById(sysProjUse.getId()); |
| | | //判断套餐是否存在欠款 |
| | | checkOrderStatu(sysProjUse); |
| | | if (!(sysProjUse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX))) { |
| | | throw new GlobleException("不是有效项目"); |
| | | } |
| | | if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZR)) { |
| | | throw new GlobleException("转让的项目不能退款"); |
| | | } |
| | | if (sysProjUse.getSource().contains(Dictionary.TAOCAN_SOURCE_ZS)) { |
| | | throw new GlobleException("赠送的项目不能退款"); |
| | | } |
| | | return sysProjUse.getBalance(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<SysProjUse> selectTaocanProjUse(Long taocanId) { |
| | | public List<SysProjUse> selectTaocanProjUse(Long taocanId, String status) { |
| | | SysProjUse projUse = new SysProjUse(); |
| | | projUse.setTaocanId(taocanId); |
| | | projUse.setStatus(status); |
| | | return sysProjUseDao.selectByModel(projUse); |
| | | } |
| | | } |