|
@@ -1,13 +1,23 @@
|
|
package com.ruoyi.hotel.service.impl;
|
|
package com.ruoyi.hotel.service.impl;
|
|
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
+import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
|
+import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
|
+import com.ruoyi.hotel.domain.Sellbills;
|
|
|
|
+import com.ruoyi.hotel.domain.SvipIccards;
|
|
|
|
+import com.ruoyi.hotel.mapper.SellbillsMapper;
|
|
|
|
+import com.ruoyi.hotel.mapper.SvipIccardsMapper;
|
|
|
|
+import com.ruoyi.system.mapper.SysDeptMapper;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import com.ruoyi.hotel.mapper.SvipItemsMapper;
|
|
import com.ruoyi.hotel.mapper.SvipItemsMapper;
|
|
import com.ruoyi.hotel.domain.SvipItems;
|
|
import com.ruoyi.hotel.domain.SvipItems;
|
|
import com.ruoyi.hotel.service.ISvipItemsService;
|
|
import com.ruoyi.hotel.service.ISvipItemsService;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 会员卡类型Service业务层处理
|
|
* 会员卡类型Service业务层处理
|
|
@@ -18,8 +28,17 @@ import com.ruoyi.hotel.service.ISvipItemsService;
|
|
@Service
|
|
@Service
|
|
public class SvipItemsServiceImpl implements ISvipItemsService {
|
|
public class SvipItemsServiceImpl implements ISvipItemsService {
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private SvipIccardsMapper svipIccardsMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
private SvipItemsMapper svipItemsMapper;
|
|
private SvipItemsMapper svipItemsMapper;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private SellbillsMapper sellbillsMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysDeptMapper sysDeptMapper;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 查询会员卡类型
|
|
* 查询会员卡类型
|
|
*
|
|
*
|
|
@@ -90,4 +109,64 @@ public class SvipItemsServiceImpl implements ISvipItemsService {
|
|
public List<SvipItems> selectSvipItemsMapList(SvipItems svipItems) {
|
|
public List<SvipItems> selectSvipItemsMapList(SvipItems svipItems) {
|
|
return svipItemsMapper.selectSvipItemsList(svipItems);
|
|
return svipItemsMapper.selectSvipItemsList(svipItems);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 消费保存
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional
|
|
|
|
+ public AjaxResult bookkeepingSales(String tdSalesDto, String svipIccardsDto, SysUser user) {
|
|
|
|
+ //获取当前年月
|
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
|
+ long year = cal.get(Calendar.YEAR);
|
|
|
|
+ int month = cal.get(Calendar.MONTH) + 1;
|
|
|
|
+ SvipIccards svipIccards = JSONArray.parseObject(svipIccardsDto, SvipIccards.class);
|
|
|
|
+ SvipIccards iccard = new SvipIccards();
|
|
|
|
+ iccard.setCardId(svipIccards.getCardId());
|
|
|
|
+ iccard.setCardNo(svipIccards.getCardNo());
|
|
|
|
+ List<SvipIccards> iccardList = svipIccardsMapper.selectSvipIccardsList(iccard);
|
|
|
|
+ if (Objects.equals(iccardList.size(), 0) || iccardList.size() > 1) {
|
|
|
|
+ return AjaxResult.error("会员卡信息有误,请联系管理员");
|
|
|
|
+ }
|
|
|
|
+ SvipIccards iccards = iccardList.get(0);
|
|
|
|
+ if ("S".equals(iccards.getStatus())) {
|
|
|
|
+ return AjaxResult.error("未找到会员卡或会员卡无效");
|
|
|
|
+ }
|
|
|
|
+ if (iccards.getVipBlc() < svipIccards.getVipCr()) {
|
|
|
|
+ return AjaxResult.error("会员卡余额不足");
|
|
|
|
+ }
|
|
|
|
+ svipIccards.setRemarks(iccards.getRemarks());
|
|
|
|
+ svipIccards.setVipCr(svipIccards.getVipCr() + iccards.getVipCr());
|
|
|
|
+ int iccardUpdate = svipIccardsMapper.updateSvipIccards(svipIccards);
|
|
|
|
+ svipIccards.setId(iccards.getId());
|
|
|
|
+ Sellbills sellbills = JSONArray.parseObject(tdSalesDto, Sellbills.class);
|
|
|
|
+ sellbills.setAccYear(year);
|
|
|
|
+ sellbills.setAccMonth(month);
|
|
|
|
+ sellbills.setCreateDate(new Date());
|
|
|
|
+ sellbills.setBillDate(new Date());
|
|
|
|
+ sellbills.setApplyDate(new Date());
|
|
|
|
+ sellbills.setAuditDate(new Date());
|
|
|
|
+ sellbills.setPostDate(new Date());
|
|
|
|
+ sellbills.setUserBane(user.getUserName());
|
|
|
|
+ sellbills.setActId(110L);
|
|
|
|
+ sellbills.setBillStatus(6L);
|
|
|
|
+ sellbills.setDeptId(user.getDeptId());
|
|
|
|
+ sellbills.setCardId(iccards.getId());
|
|
|
|
+ sellbills.setCardNo(iccards.getCardNo());
|
|
|
|
+ sellbills.setItemId(iccards.getItemId());
|
|
|
|
+ sellbills.setItemType(iccards.getItemType());
|
|
|
|
+ sellbills.setVipDr(svipIccards.getVipDr());
|
|
|
|
+ sellbills.setVipBlc(iccards.getVipBlc());
|
|
|
|
+ sellbills.setCorpName(iccards.getCorpName());
|
|
|
|
+ sellbills.setCorpTel(iccards.getCorpTel());
|
|
|
|
+ sellbills.setCorpAddr(iccards.getCorpAddr());
|
|
|
|
+ sellbills.setCorpidCardno(iccards.getCorpIdcardNo());
|
|
|
|
+ sellbills.setRemarks(svipIccards.getRemarks());
|
|
|
|
+ int sellInsert = sellbillsMapper.insertSellbills(sellbills);
|
|
|
|
+ if (iccardUpdate <= 0 || sellInsert <= 0) {
|
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
+ return AjaxResult.error("更新数据失败,请联系管理员");
|
|
|
|
+ }
|
|
|
|
+ return AjaxResult.success();
|
|
|
|
+ }
|
|
}
|
|
}
|