From 4351e71d782741143a98f86f6648acd16689165f Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 27 May 2022 19:48:02 +0800 Subject: [PATCH] Merge branch 'developer' into hive2.0 --- zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java | 282 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 198 insertions(+), 84 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java index 4eb94d9..1bc056e 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java @@ -5,37 +5,34 @@ import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; -import com.matrix.core.tools.*; +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.excl.ExcelSheetPO; import com.matrix.core.tools.excl.ExcelUtil; import com.matrix.core.tools.excl.ExcelVersion; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.bean.SystemDictionary; -import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.CustomerDataDictionaryDao; import com.matrix.system.common.service.SysUsersService; import com.matrix.system.common.service.SystemDictionaryService; +import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.constance.Dictionary; -import com.matrix.system.constance.SystemConstance; import com.matrix.system.hive.action.util.QueryUtil; -import com.matrix.system.hive.bean.Question; -import com.matrix.system.hive.bean.SysVipInfo; -import com.matrix.system.hive.bean.SysVipLevel; -import com.matrix.system.hive.bean.VipAnswer; +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.SysVipLabelDao; import com.matrix.system.hive.dao.VipAnswerDao; import com.matrix.system.hive.pojo.RegisterInfo; import com.matrix.system.hive.service.*; import com.matrix.system.score.dao.ScoreVipDetailDao; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -44,11 +41,11 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.net.URLEncoder; -import java.security.NoSuchAlgorithmException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; /** @@ -59,6 +56,11 @@ @Controller @RequestMapping(value = "admin/vipInfo") public class VipInfoController extends BaseController { + + + @Value("${file_storage_path}") + private String fileStoragePath; + @Resource private SysVipInfoService vipInfoService; @@ -88,9 +90,140 @@ private CustomerDataDictionaryDao customerDataDictionaryDao; @Resource private SysOrderService sysOrderService; - + @Autowired + ShoppingGoodsDao shoppingGoodsDao; @Autowired private ScoreVipDetailDao scoreVipDetailDao; + @Resource + private SysProjUseService projUseService; + @Resource + HttpServletResponse response; + + @RequestMapping(value = "/exportExcel/{vipId}") + public void getVipAllProjInfo(@PathVariable Long vipId) throws IOException { + + List<ExcelSheetPO> res = new ArrayList<>(); + ExcelSheetPO orderSheet = new ExcelSheetPO(); + + SysVipInfo vipInfo = vipInfoService.findById(vipId); + + String title = vipInfo.getVipName()+"("+vipInfo.getVipNo()+")会员资料"; + orderSheet.setSheetName(title); + orderSheet.setTitle(title); + String[] header = {"产品类型", "产品名称","来源", "状态", "余额", "余次", "到期时间", "本金", "赠金"}; + orderSheet.setHeaders(header); + + + SysProjUse queryUse = new SysProjUse(); + queryUse.setVipId(vipId); + queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_XM); + queryUse.setTaocanId(-1L); + queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX); + List<SysProjUse> projList = projUseService.findInPage(queryUse, null); + + List<List<Object>> list = new ArrayList<>(); + if (projList.size() > 0) { + for (SysProjUse item : projList) { + List<Object> temp = new ArrayList<>(); + temp.add("项目"); + temp.add(item.getProjName()); + temp.add(item.getSource()); + temp.add("有效"); + temp.add(item.getBalance()); + temp.add(item.getSurplusCount()); + temp.add(DateUtil.dateToString(item.getFailTimeStr(),DateUtil.DATE_FORMAT_DD)); + temp.add(""); + temp.add(""); + list.add(temp); + } + } + //套餐 + //切换到套餐查询条件 + SysProjUse queryTaocan = new SysProjUse(); + queryTaocan.setType(Dictionary.SHOPPING_GOODS_TYPE_TC); + queryTaocan.setStatus(Dictionary.TAOCAN_STATUS_YX); + queryTaocan.setVipId(vipId); + List<SysProjUse> taoCanList = projUseService.findInPage(queryTaocan, null); + taoCanList.forEach(item->{ + item.setTaocanProjUse(projUseService.selectTaocanProjUse(item.getId(), queryUse.getStatus())); + item.setProjInfo(shoppingGoodsDao.selectById(item.getProjId())); + }); + if (taoCanList.size() > 0) { + for (SysProjUse item : taoCanList) { + List<Object> temp = new ArrayList<>(); + + if(Dictionary.FLAG_YES_Y.equals(item.getIsCourse())){ + temp.add("任选套餐"); + }else{ + temp.add("固定套餐"); + } + temp.add(item.getProjName()); + temp.add(item.getSource()); + temp.add("有效"); + temp.add(item.getBalance()); + temp.add(item.getSurplusCount()); + temp.add(DateUtil.dateToString(item.getFailTimeStr(),DateUtil.DATE_FORMAT_DD)); + temp.add(""); + temp.add(""); + list.add(temp); + + //套餐下项目 + List<SysProjUse> taocanProjUse = item.getTaocanProjUse(); + if (taocanProjUse.size() > 0) { + for (SysProjUse proj_item : taocanProjUse) { + List<Object> temp2 = new ArrayList<>(); + temp2.add(" |————"); + temp2.add(proj_item.getProjName()); + temp2.add(proj_item.getSource()); + temp2.add("有效"); + temp2.add(proj_item.getBalance()); + temp2.add(proj_item.getSurplusCount()); + temp2.add(DateUtil.dateToString(proj_item.getFailTimeStr(),DateUtil.DATE_FORMAT_DD)); + temp2.add(""); + temp2.add(""); + list.add(temp2); + } + } + + + } + } + + + //储值卡 + MoneyCardUse moneyCardUse = new MoneyCardUse(); + moneyCardUse.setVipId(vipId); + moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); + List<MoneyCardUse> cards = cardUseService.findByModel(moneyCardUse); + + if (cards.size() > 0) { + for (MoneyCardUse item : cards) { + List<Object> temp = new ArrayList<>(); + temp.add("储值卡"); + temp.add(item.getCardName()); + temp.add(item.getSource()); + temp.add("有效"); + temp.add(""); + temp.add(item.getLastCount()); + temp.add(DateUtil.dateToString(item.getFailTime(),DateUtil.DATE_FORMAT_DD)); + temp.add(item.getRealMoney()); + temp.add(item.getGiftMoney()); + list.add(temp); + } + } + + + + + orderSheet.setDataList(list); + res.add(orderSheet); + response = ResponseHeadUtil.setExcelHead(response); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); + OutputStream os = response.getOutputStream(); + ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); + } + @RequestMapping(value = "/showVipLevel") @@ -108,9 +241,9 @@ public @ResponseBody AjaxResult showList(PaginationVO pageVo, SysVipInfo vipInfo) { -// if (!getMe().getShopRole().equals(Dictionary.FLAG_YES_Y)) { - vipInfo.setShopId(getMe().getShopId()); -// } + + QueryUtil.setQueryLimit(vipInfo); + return showList(vipInfoService, vipInfo, pageVo); } @@ -133,9 +266,10 @@ vips.get(0).setLabels(sysVipLabelDao.selectByVipId(vips.get(0).getId())); vips.get(0).setAge(DateUtil.getAgeForBirthDay(vips.get(0).getBirthday1())); vips.get(0).setBalance(moneyCardUseDao.selectVipCardTotalMoney(vips.get(0).getId())); - AjaxResult result= new AjaxResult(AjaxResult.STATUS_SUCCESS, vips, 0); + vips.get(0).setArrears(sysOrderService.findVipArrearsByVipId(vips.get(0).getId())); + AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, vips, 0); return result; - }else{ + } else { return AjaxResult.buildFailInstance("未查到询客户信息"); } @@ -160,27 +294,13 @@ public @ResponseBody AjaxResult addOrModify(SysVipInfo vipInfo) { if (vipInfo.getId() != null) { - - try { - if (vipInfo.getPassWord() != null) { - vipInfo.setPassWord(EncrypUtil.getMD5(vipInfo.getPassWord())); - } - } catch (UnsupportedEncodingException | NoSuchAlgorithmException e) { - e.printStackTrace(); - } return modify(vipInfoService, vipInfo, "会员信息"); } else { - - try { - if (StringUtils.isNotBlank(vipInfo.getPassWord())) { - vipInfo.setPassWord(EncrypUtil.getMD5(vipInfo.getPassWord())); - } - vipInfo.setVipState(Dictionary.VIP_STATE_HY); - } catch (UnsupportedEncodingException | NoSuchAlgorithmException e) { - e.printStackTrace(); - } + vipInfo.setVipState(Dictionary.VIP_STATE_HY); SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); - vipInfo.setShopId(users.getShopId()); + if(vipInfo.getShopId()==null){ + vipInfo.setShopId(users.getShopId()); + } return add(vipInfoService, vipInfo, "会员信息"); } } @@ -214,8 +334,14 @@ @RequestMapping(value = "/del") public @ResponseBody AjaxResult del(String keys) { - - return remove(vipInfoService, keys); + List<Long> ids = StringUtils.strToCollToLong(keys, ","); + int i = vipInfoService.removeLogic(ids); + if (i > 0) { + return new AjaxResult(AjaxResult.STATUS_SUCCESS, "成功删除" + i + "条数据"); + } else { + return new AjaxResult(AjaxResult.STATUS_FAIL, "删除失败"); + } +// return remove(vipInfoService, keys); } /** @@ -251,7 +377,8 @@ public @ResponseBody AjaxResult getVipQuestions(Long id, HttpServletRequest request) { // 获取会员所有的答案,分类型 - List<Question> questions = questionSerivce.findByVipId(id); + SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + List<Question> questions = questionSerivce.findByVipId(id, user.getCompanyId()); request.setAttribute("questions", questions); AjaxResult result = new AjaxResult(); result.putInMap("questions", questions); @@ -315,7 +442,7 @@ SystemDictionary dataDictionary = new SystemDictionary(); // 获取到店途径 dataDictionary.setType("到店途径"); - WebUtil.getRequest().setAttribute("ddtj", customerDataDictionaryDao.selectByParentCode("DDTJ",getMe().getCompanyId())); + WebUtil.getRequest().setAttribute("ddtj", customerDataDictionaryDao.selectByParentCode("DDTJ", getMe().getCompanyId())); // 获取生肖 dataDictionary.setType("生肖"); WebUtil.getRequest().setAttribute("sx", dataDictionaryService.findByModel(dataDictionary)); @@ -403,33 +530,7 @@ @RequestMapping(value = "/findUserByPhoneOrNo") public @ResponseBody AjaxResult findUserByPhoneOrNo(String keyWord) { - LinkedList<SysVipInfo> userList = null; - // 获取最近查询客户 - if (WebUtil.getSession().getAttribute(SystemConstance.HISTORY_CUSTOMER) == null) { - userList = new LinkedList<SysVipInfo>(); - WebUtil.getSession().setAttribute(SystemConstance.HISTORY_CUSTOMER, userList); - } else { - userList = (LinkedList<SysVipInfo>) WebUtil.getSession().getAttribute(SystemConstance.HISTORY_CUSTOMER); - } List<SysVipInfo> vips = vipInfoService.findByVipNoOrTel(keyWord); - if (vips.size() > 0) { - // 在session存放当前查询的客户 - WebUtil.getSession().setAttribute(SystemConstance.CURRENT_CUSTOMER, vips.get(0)); - // 满20后删除一个 - if (userList.size() == 20) { - userList.poll(); - } - // 去重标志 - boolean isNoRepeat = true; - for (SysVipInfo sysVipInfo : userList) { - if (vips.get(0).getPhone().equals(sysVipInfo.getPhone())) { - isNoRepeat = false; - } - } - if (isNoRepeat) { - userList.add(vips.get(0)); - } - } return new AjaxResult(AjaxResult.STATUS_SUCCESS, vips, 0); } @@ -458,25 +559,17 @@ } @RequestMapping(value = "/exportExcel") - public void report(ModelMap model, HttpServletRequest request, HttpServletResponse response, + public void report( HttpServletResponse response, SysVipInfo vipInfo) throws IOException { - if (vipInfo.getVipType() != null && !(vipInfo.getVipType().equals(""))) { - vipInfo.setVipType(URLDecoder.decode(vipInfo.getVipType(), "UTF-8")); - } - if (vipInfo.getVipName() != null && !"".equals(vipInfo.getVipName())) { - vipInfo.setVipName(URLDecoder.decode(vipInfo.getVipName(), "UTF-8")); - } - if (vipInfo.getArrivalWay() != null && !"".equals(vipInfo.getArrivalWay())) { - vipInfo.setArrivalWay(URLDecoder.decode(vipInfo.getArrivalWay(), "UTF-8")); - } - if (vipInfo.getVipState() != null && !"".equals(vipInfo.getVipState())) { - vipInfo.setVipState(URLDecoder.decode(vipInfo.getVipState(), "UTF-8")); + SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + if(!DataAuthUtil.hasAllShopAuth()){ + vipInfo.setShopId(sysUsers.getShopId()); } List<ExcelSheetPO> res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); - String title = "每日单据明细"; + String title = "会员资料"; orderSheet.setSheetName(title); orderSheet.setTitle(title); String[] header = {"会员编号", "姓名", "性别", "手机号码", "会员类型", "会员活跃度", "到店途径", "健康顾问", "所属门店"}; @@ -523,12 +616,14 @@ return showList(vipInfoService, info, null); } + + @RequestMapping(value = "/importVipInfo") @ResponseBody public AjaxResult importVipInfo(HttpServletResponse response, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException { String fileName = file.getOriginalFilename(); - String dirPath = PropertiesUtil.getString(AppConstance.FILES_TORAGE_PATH); + String dirPath = fileStoragePath; // String dirPath = "C:/Users/wzy19/Desktop/zq"; File fileDir = new File(dirPath); LogUtil.info("#----->{}#", fileDir.exists()); @@ -551,4 +646,23 @@ public String toImportForm() { return "admin/hive/vip/vipImport-form"; } + + @RequestMapping(value = "/validFlagChange") + @ResponseBody + public AjaxResult validFlagChange(Long id) { + SysVipInfo sysVipInfo = vipInfoService.findById(id); + + if (sysVipInfo == null) { + return AjaxResult.buildFailInstance("用户不存在"); + } + + if (SysVipInfo.VALID_FLAG_Y == sysVipInfo.getValidFlag()) { + sysVipInfo.setValidFlag(SysVipInfo.VALID_FLAG_N); + } else { + sysVipInfo.setValidFlag(SysVipInfo.VALID_FLAG_Y); + } + + vipInfoService.modify(sysVipInfo); + return AjaxResult.buildSuccessInstance("设置成功"); + } } -- Gitblit v1.9.1