zq-erp/src/main/java/com/matrix/system/hive/action/ProjUseController.java
@@ -4,28 +4,23 @@
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.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.core.tools.*;
import com.matrix.core.tools.excl.ExcelSheetPO;
import com.matrix.core.tools.excl.ExcelUtil;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.MoneyCardUse;
import com.matrix.system.hive.bean.ShoppingGoods;
import com.matrix.system.hive.bean.SysProjUse;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.MoneyCardUseDao;
import com.matrix.system.hive.dao.ShoppingGoodsDao;
import com.matrix.system.hive.dao.SysProjUseDao;
import com.matrix.system.hive.dao.SysVipInfoDao;
import com.matrix.system.hive.plugin.message.StringUtil;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.service.MoneyCardUseService;
import com.matrix.system.hive.service.SysProjUseService;
import com.matrix.system.hive.service.SysProjuseFreezeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -60,6 +55,25 @@
    @Resource
    private MoneyCardUseService moneyCardUseService;
    @Resource
    private  SysProjUseDao projUseDao;
    @Autowired
    SysVipInfoDao vipInfoDao;
    @Autowired
    ShoppingGoodsDao shoppingGoodsDao;
    @Autowired
    MoneyCardUseDao moneyCardUseDao;
    @Value("${default.vip.photo.woman}")
    String defaultWoman;
    @Value("${default.vip.photo.man}")
    String defaultman;
    public static final String fnCode = "projUse";
    public static final String search = fnCode + ":search";
@@ -85,6 +99,18 @@
                projUseService.findInPage(sysProjUse, pageVo), projUseService.findTotal(sysProjUse));
    }
    /**
     * 查看会员项目使用情况
     *
     * @author jiangyouyao
     * @date 2016-09-03
     */
    @RequestMapping(value = "/findProjUseFlow")
    public @ResponseBody
    AjaxResult findProjUseFlow(PaginationVO pageVo, SysProjUseFlow projUseFlow) {
        return new AjaxResult(AjaxResult.STATUS_SUCCESS,
                projUseDao.selectProjUseFlow(projUseFlow, pageVo), projUseDao.selectProjUseFlowTotal(projUseFlow));
    }
    /**
     * 将项目设置为有效
@@ -139,21 +165,7 @@
        return new AjaxResult(AjaxResult.STATUS_FAIL, "项目转让失败");
    }
    @RequestMapping(value = "/returnProj")
    public @ResponseBody
    AjaxResult returnTc(SysProjUse sysProjUse, Long moneyCardUseId, String tcRemark, Long shopId, Double money, String tcName) {
        MoneyCardUse card = null;
        if (moneyCardUseId != null) {
            card = moneyCardUseService.findById(moneyCardUseId);
        }
        int i = projUseService.returnMoneyProj(sysProjUse, card, moneyCardUseId);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "退款成功");
        }
        return new AjaxResult(AjaxResult.STATUS_FAIL, "退款失败");
    }
    /**
@@ -174,31 +186,6 @@
    }
    /**
     * 退款
     *
     * @return
     */
    @RequestMapping(value = "/getEffectCard")
    public @ResponseBody
    AjaxResult getEffectCard(SysProjUse sysProjUse) {
        MoneyCardUse cardUse = moneyCardUseService.findByVipId(sysProjUse.getVipId());
        double money = projUseService.getTotalMoneyProj(sysProjUse);
        if (cardUse != null) {
            cardUse.setRealMoney(money);
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>();
            list.add(cardUse);
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "有有效会籍卡", list, null);
        } else {
            //无会员卡则new一个,为了把钱传递到前台
            cardUse = new MoneyCardUse();
            cardUse.setRealMoney(money);
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>();
            list.add(cardUse);
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "无有效会籍卡", list, null);
        }
    }
    /**
     * 冻结会员项目
@@ -217,10 +204,29 @@
    /**
     * 添加或修改会员項目信息
     */
    @Transactional
    @RequestMapping(value = "/addOrModify")
    public @ResponseBody
    AjaxResult addOrModify(SysProjUse sysProjUse) {
        if (sysProjUse.getId() != null) {
            SysUsers user=getMe();
            //插入修改记录
            SysProjUse oldProjUse = projUseService.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);
            return modify(projUseService, sysProjUse, "项目");
        } else {
            return add(projUseService, sysProjUse, "项目");
@@ -228,17 +234,7 @@
    }
    @Autowired
    SysVipInfoDao vipInfoDao;
    @Autowired
    ShoppingGoodsDao shoppingGoodsDao;
    @Autowired
    SysProjUseDao projUseDao;
    @Autowired
    MoneyCardUseDao moneyCardUseDao;
    @RequestMapping(value = "/importProjUse")
@@ -247,8 +243,8 @@
    public AjaxResult importVipInfo(HttpServletResponse response, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
        String fileName = file.getOriginalFilename();
        String dirPath = "E:";
        //PropertiesUtil.getString(AppConstance.FILES_TORAGE_PATH);
//        String dirPath = "E:";
        String dirPath =  PropertiesUtil.getString(AppConstance.FILES_TORAGE_PATH);
        File saveFile = new File(dirPath + "/" + fileName);
        file.transferTo(saveFile);
@@ -257,7 +253,7 @@
        List<ExcelSheetPO> excelSheetPOList = ExcelUtil.readExcel(saveFile, null, null);
/*
        //项目资料导入
        List<List<Object>> dataList = excelSheetPOList.get(0).getDataList();
        List<SysProjUse> projUseList = new ArrayList<>();
@@ -301,7 +297,6 @@
        //套餐资料导入=======end===
*/
        //充值卡资料导入
        List<List<Object>> cardList = excelSheetPOList.get(2).getDataList();
        List<MoneyCardUse> cardUseArrayList = new ArrayList<>();
@@ -324,11 +319,12 @@
        Object tel = objects.get(1);
        if (tel != null) {
            String telStr = tel.toString();
            SysVipInfo vipInfo = vipInfoDao.selectByPhone(telStr);
            SysVipInfo vipInfo = vipInfoDao.selectByPhone(telStr,sysUsers.getCompanyId());
            if (vipInfo == null) {
                vipInfo = new SysVipInfo();
                vipInfo.setShopId(sysUsers.getShopId());
                vipInfo.setPhone(telStr);
                vipInfo.setPhoto(defaultWoman);
                vipInfo.setName(objects.get(0).toString());
                vipInfoDao.insert(vipInfo);
            }
@@ -380,19 +376,24 @@
        Object tel = objects.get(1);
        if (tel != null) {
            String telStr = tel.toString();
            SysVipInfo vipInfo = vipInfoDao.selectByPhone(telStr);
            SysVipInfo vipInfo = vipInfoDao.selectByPhone(telStr,sysUsers.getCompanyId());
            if (vipInfo == null) {
                vipInfo = new SysVipInfo();
                vipInfo.setShopId(sysUsers.getShopId());
                vipInfo.setPhone(telStr);
                vipInfo.setPhoto(defaultWoman);
                vipInfo.setName(objects.get(0).toString());
                vipInfoDao.insert(vipInfo);
            }
            String goodNo = String.valueOf(objects.get(3));
            String goodName = String.valueOf(objects.get(2)).trim();
            ShoppingGoods goods = shoppingGoodsDao.findByCode(goodNo);
            String goodName = String.valueOf(objects.get(2)).trim();
            if("储值卡".equals(goodName)){
                goods= shoppingGoodsDao.selectVipCzGoods();
            }
            if (goods != null || "储值卡".equals(goodName)) {
                moneyCardUse.setVipId(vipInfo.getId());