zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
@@ -1,5 +1,10 @@ package com.matrix.system.app.authority; import cn.hutool.crypto.SecureUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.matrix.component.redis.RedisClient; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.StringUtils; @@ -31,7 +36,12 @@ private static final int DEFAULT_2 = 2; @Autowired RedisClient redisClient; @Autowired SysFunctionService sysFunctionService; public static final String USER_POWER_REDISKEY = "USER_POWER_"; public static final String USERFUNCTION = "userFunction"; /** 用户所有路径权限的记录 **/ @@ -91,9 +101,33 @@ List<String> userUrlMapping = new ArrayList<>(); String redisKey = USER_POWER_REDISKEY + SecureUtil.md5(user.getSuId()+""); String cachedValue = redisClient.getCachedValue(redisKey); if (StringUtils.isNotBlank(cachedValue)) { //从缓存中获取用户权限 JSONObject powerMap = JSONUtil.parseObj(cachedValue); String userFunctionMapStr = powerMap.get(USERFUNCTION).toString(); JSONObject userFunctionMap = JSONUtil.parseObj(userFunctionMapStr); Set<String> userFunctionMapKeys = userFunctionMap.keySet(); userFunctionMapKeys.forEach(key -> { userFunction.put(key, userFunctionMap.get(key, SysFunction.class)); }); String userUrlMappingListStr = powerMap.get(USER_URL_MAPPING).toString(); JSONArray userUrlMappingArray = JSONUtil.parseArray(userUrlMappingListStr); for (int i = 0; i < userUrlMappingArray.size(); i++) { userUrlMapping.add(userUrlMappingArray.get(i, String.class)); } } else { // 获取用户所有权限 getUserFunction(user,userFunction, userUrlMapping); Map<String ,Object> powerMap=new HashMap<>(); powerMap.put(USERFUNCTION, userFunction); powerMap.put(USER_URL_MAPPING, userUrlMapping); redisClient.saveValue(redisKey,JSONUtil.parseObj(powerMap,true)); } // TODO 这里的用户权限应该放到redis缓存中,在拦截器中做权限拦截 WebUtil.setSessionAttribute(USERFUNCTION, userFunction); zq-erp/src/main/java/com/matrix/system/common/actions/AdminAction.java
@@ -25,9 +25,7 @@ import com.matrix.system.common.service.SysUsersService; import com.matrix.system.common.tools.PasswordUtil; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.constance.SystemConstance; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.SysVipInfo; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -45,11 +43,8 @@ import java.net.URLEncoder; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Objects; import static com.matrix.system.common.constance.AppConstance.SAFEPATH; /** * @author 姜ø友瑶 @@ -486,23 +481,6 @@ } /** * 查询历史搜索人数 * * @return * @author luoyuanhong */ @SuppressWarnings("unchecked") @RequestMapping(value = "/showHistoryUser") public @ResponseBody AjaxResult showHistoryUser() { if (WebUtil.getSession().getAttribute(SystemConstance.HISTORY_CUSTOMER) != null) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, (LinkedList<SysVipInfo>) WebUtil.getSession().getAttribute(SystemConstance.HISTORY_CUSTOMER), 0); } else { return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, 0); } } /** zq-erp/src/main/java/com/matrix/system/common/actions/SysRoleAction.java
@@ -1,5 +1,6 @@ package com.matrix.system.common.actions; import com.matrix.component.redis.RedisClient; import com.matrix.core.anotations.RemoveRequestToken; import com.matrix.core.anotations.SaveRequestToken; import com.matrix.core.constance.MatrixConstance; @@ -9,6 +10,7 @@ import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.core.web.BaseAction; import com.matrix.system.common.authority.DefaultAuthorityManager; import com.matrix.system.common.bean.SysFnBtnRel; import com.matrix.system.common.bean.SysFunction; import com.matrix.system.common.bean.SysRole; @@ -16,7 +18,6 @@ import com.matrix.system.common.constance.AppVocabularyCode; import com.matrix.system.common.service.SysFunctionService; import com.matrix.system.common.service.SysRoleService; import com.matrix.system.constance.Dictionary; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -49,7 +50,8 @@ private SysFunctionService sysFunctionService; public static final String BEV = "SYSROLE_BEV"; @Autowired RedisClient redisClient; /** * 列表显示 * @@ -230,9 +232,11 @@ } AjaxResult result = modify(sysRoleService, WebUtil.getSessionAttribute(BEV), sysRole, AppVocabularyCode.ROLE); WebUtil.removeSessionAttribute(BEV); redisClient.batchDel(DefaultAuthorityManager.USER_POWER_REDISKEY); return result; } /** * 进入修改界面 * zq-erp/src/main/java/com/matrix/system/common/authority/DefaultAuthorityManager.java
@@ -1,8 +1,12 @@ package com.matrix.system.common.authority; import cn.hutool.crypto.SecureUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.matrix.component.redis.RedisClient; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.authority.strategy.LoginStrategy; @@ -17,7 +21,6 @@ import java.util.*; import java.util.Map.Entry; import java.util.logging.Logger; /** * DefaultAuthorityManager 实现了权限控制接口 @@ -31,13 +34,20 @@ private static final int DEFAULT_2 = 2; public static final String USER_POWER_REDISKEY = "USER_POWER_"; @Autowired SysFunctionService sysFunctionService; public static final String USERFUNCTION = "userFunction"; public static final String MENUSFUNCTION = "menusFunction"; /** 用户所有路径权限的记录 **/ /** * 用户所有路径权限的记录 **/ public static final String USER_URL_MAPPING = "userUrlMapping"; @Autowired RedisClient redisClient; private DefaultAuthorityManager() { } @@ -90,6 +100,7 @@ /** * 判断用户是否具有功能权限 * * @return */ @Override @@ -108,10 +119,10 @@ /** * 初始化用户权限 * * @param result * @author JIANGYOUYAO * @email 935090232@qq.com * @date 2017年12月5日 * @param result */ public void initUserPower(AjaxResult result) { @@ -127,11 +138,43 @@ // 用户的所有功能权限用id记录,方便后面查询菜单树形结构 Map<String, SysFunction> menuFunctionMap = new TreeMap<>(); SysUsers sysUser = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); String redisKey = USER_POWER_REDISKEY + SecureUtil.md5(sysUser.getSuId()+""); String cachedValue = redisClient.getCachedValue(redisKey); if (StringUtils.isNotBlank(cachedValue)) { //从缓存中获取用户权限 JSONObject powerMap = JSONUtil.parseObj(cachedValue); String userFunctionMapStr = powerMap.get(USERFUNCTION).toString(); JSONObject userFunctionMap = JSONUtil.parseObj(userFunctionMapStr); Set<String> userFunctionMapKeys = userFunctionMap.keySet(); userFunctionMapKeys.forEach(key -> { userFunction.put(key, userFunctionMap.get(key, SysFunction.class)); }); String menusFunctionListStr = powerMap.get(MENUSFUNCTION).toString(); JSONArray menusFunctionArray = JSONUtil.parseArray(menusFunctionListStr); for (int i = 0; i < menusFunctionArray.size(); i++) { menuFunction.add(menusFunctionArray.get(i, SysFunction.class)); } String userUrlMappingListStr = powerMap.get(USER_URL_MAPPING).toString(); JSONArray userUrlMappingArray = JSONUtil.parseArray(userUrlMappingListStr); for (int i = 0; i < userUrlMappingArray.size(); i++) { userUrlMapping.add(userUrlMappingArray.get(i, String.class)); } } else { // 获取用户所有权限 getUserFunction(userFunction, menuFunctionMap, userUrlMapping); // 组装菜单 assembleMenu(menuFunction, menuFunctionMap); Map<String ,Object> powerMap=new HashMap<>(); powerMap.put(USERFUNCTION, userFunction); powerMap.put(MENUSFUNCTION, menuFunction); powerMap.put(USER_URL_MAPPING, userUrlMapping); redisClient.saveValue(redisKey,JSONUtil.parseObj(powerMap,true)); } // 把用户菜单和用户的功能都存在session中。 WebUtil.setSessionAttribute(USERFUNCTION, userFunction); @@ -145,12 +188,12 @@ /** * 获取用的功能,包括菜单功能和非菜单功能 * * @author JIANGYOUYAO * @email 935090232@qq.com * @date 2017年12月5日 * @param userFunctionMap * @param menuFunctionMap * @param userUrlMapping * @author JIANGYOUYAO * @email 935090232@qq.com * @date 2017年12月5日 */ private void getUserFunction(Map<String, SysFunction> userFunctionMap, Map<String, SysFunction> menuFunctionMap, List<String> userUrlMapping) { @@ -204,11 +247,11 @@ /** * 注册功能和按钮的访问路径 * * @param userUrlMapping * @param sysFunction * @author JIANGYOUYAO * @email 935090232@qq.com * @date 2017年12月8日 * @param userUrlMapping * @param sysFunction */ private void registerUrlMapping(List<String> userUrlMapping, SysFunction sysFunction, boolean isAdmin) { String path = sysFunction.getFnPath(); @@ -233,11 +276,11 @@ /** * 把菜单组装成树形结构 * * @param menuFunction * @param menuFunctionMap * @author JIANGYOUYAO * @email 935090232@qq.com * @date 2017年12月5日 * @param menuFunction * @param menuFunctionMap */ private void assembleMenu(List<SysFunction> menuFunction, Map<String, SysFunction> menuFunctionMap) { // 将map.entrySet()转换成list,并按照功能的FnSequence倒序 zq-erp/src/main/java/com/matrix/system/common/bean/SysFnBtnRel.java
@@ -1,7 +1,9 @@ package com.matrix.system.common.bean; import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.anotations.Extend; import com.matrix.core.pojo.EntityDTO; import java.util.Date; /** * 功能按钮关系表 @@ -9,10 +11,20 @@ * @email 935090232@qq.com * @date 2017年12月3日 */ public class SysFnBtnRel extends EntityDTO { public class SysFnBtnRel { @Extend private static final long serialVersionUID = 1L; private String createBy; @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone="GMT+8") private Date createTime; private String updateBy; private Date updateTime; /** 主键:这个关系表物理主键在修改比较中不参与比较 **/ @Extend @@ -80,4 +92,36 @@ public void setBtnKey(String btnKey) { this.btnKey = btnKey; } public String getCreateBy() { return createBy; } public void setCreateBy(String createBy) { this.createBy = createBy; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getUpdateBy() { return updateBy; } public void setUpdateBy(String updateBy) { this.updateBy = updateBy; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } } zq-erp/src/main/java/com/matrix/system/common/bean/SysFunction.java
@@ -1,9 +1,9 @@ package com.matrix.system.common.bean; import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.anotations.Extend; import com.matrix.core.pojo.EntityDTO; import java.util.ArrayList; import java.util.Date; import java.util.List; /** @@ -12,10 +12,19 @@ * @email 935090232@qq.com * @date 2017年12月3日 */ public class SysFunction extends EntityDTO { public class SysFunction { @Extend private static final long serialVersionUID = 1L; private String createBy; @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone="GMT+8") private Date createTime; private String updateBy; private Date updateTime; private Long fnId; @@ -203,4 +212,39 @@ this.fnCode = fnCode; } public String getCreateBy() { return createBy; } public void setCreateBy(String createBy) { this.createBy = createBy; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getUpdateBy() { return updateBy; } public void setUpdateBy(String updateBy) { this.updateBy = updateBy; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public boolean isHasThisFn() { return hasThisFn; } } zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java
@@ -19,8 +19,11 @@ private static final long serialVersionUID = 1L; /** 有效*/ @Extend public static final String VALID_Y="Y"; /** 无效*/ @Extend public static final String VALID_N="N"; private Long suId; zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
@@ -1,12 +1,16 @@ package com.matrix.system.common.service.impl; import cn.hutool.crypto.SecureUtil; import com.matrix.component.redis.RedisClient; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.constance.SystemErrorCode; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.ModelUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.authority.DefaultAuthorityManager; import com.matrix.system.common.bean.SysUserLoginRecord; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; @@ -20,8 +24,6 @@ import com.matrix.system.hive.bean.SysProjServices; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.dao.SysShopInfoDao; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.core.tools.DateUtil; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -45,7 +47,8 @@ private static final String SU_ID = "su_id"; private static final String SU_ACCOUNT = "su_account"; @Autowired RedisClient redisClient; @Autowired private SysUsersDao sysUsersDao; @@ -128,8 +131,12 @@ } if (modifyMap.size() > 0) { modifyMap.put("suId", oldSysUsers.getSuId()); return sysUsersDao.updateByMap(modifyMap); sysUsersDao.updateByMap(modifyMap); } //删除用户权限缓存 String redisKey=DefaultAuthorityManager.USER_POWER_REDISKEY+ SecureUtil.md5(oldSysUsers.getSuId()+""); redisClient.removeObject(redisKey); return MatrixConstance.DML_SUCCESSS; } zq-erp/src/main/java/com/matrix/system/constance/SystemConstance.java
@@ -3,10 +3,6 @@ public class SystemConstance { /** * 当前进行操作的用户 */ public static final String CURRENT_CUSTOMER = "CURRENT_CUSTOMER"; /** @@ -14,10 +10,7 @@ */ public static final String SYSTEM_USER = "SYSTEM"; /** * 查询历史记录 */ public static final String HISTORY_CUSTOMER = "HISTORY_CUSTOMER"; /** * 登陆前要访问的地址 */ zq-erp/src/main/java/com/matrix/system/hive/action/BaseController.java
@@ -6,8 +6,6 @@ import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.constance.SystemConstance; import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.system.hive.plugin.util.BaseServices; import java.util.List; @@ -75,14 +73,7 @@ } /** * 获取当前操作的会员对象 * @author 姜友瑶 * @date 2016/7/5 */ public SysVipInfo getCurrentVioInfo() { return (SysVipInfo) (WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER)); } } zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -15,12 +15,9 @@ import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.constance.Dictionary; import com.matrix.system.constance.SystemConstance; 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.pojo.ShoppingCarItem; import com.matrix.system.hive.pojo.ShoppingCarItemsVo; import com.matrix.system.hive.service.*; import com.matrix.system.shopXcx.mqTask.MQTaskRouting; import com.matrix.system.wechart.templateMsg.UniformMsgParam; @@ -190,49 +187,6 @@ return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单保存成功"); } /** * 新建订单 * * @author jiangyouyao */ @RequestMapping(value = "/addOrder") public @ResponseBody AjaxResult addOrder(ShoppingCarItemsVo car) { List<ShoppingCarItem> sessionCarItems = (List<ShoppingCarItem>) WebUtil.getSession().getAttribute( SystemConstance.SHOPPING_CAR); List<ShoppingCarItem> carItems = new ArrayList<>(); // 设置购车中的具体类型信息,过滤没有被选中的商品 for (ShoppingCarItem carItem : car.getCarItems()) { for (ShoppingCarItem sessionCar : sessionCarItems) { if (carItem.getId().equals(sessionCar.getId())) { //已最后提交的数量为准 sessionCar.setCount(carItem.getCount()); carItems.add(sessionCar); break; } } } //设置过滤后的购物车条目 car.setCarItems(carItems); SysVipInfo info = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER); car.setVipId(info.getId()); // 添加新订单 int i = orderService.createOrder(WebUtil.getSession(), car); if (i > 0) { WebUtil.getSession().removeAttribute(SystemConstance.SHOPPING_CAR); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "下单成功"); } else { return new AjaxResult(AjaxResult.STATUS_FAIL, "下单添加失败"); } } /** zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -489,8 +489,7 @@ @RequestMapping(value = "/addService") public @ResponseBody AjaxResult servicceAdd(@RequestBody SysProjServices sysProjServices) { SysVipInfo vipInfo = getCurrentVioInfo(); sysProjServices.setVipId(vipInfo.getId()); if (CollectionUtils.isEmpty(sysProjServices.getServiceItems())) { return new AjaxResult(AjaxResult.STATUS_FAIL, "没有选中可消耗的项目"); @@ -520,8 +519,8 @@ @RequestMapping(value = "/addServiceForForm") public @ResponseBody AjaxResult servicceAddForForm(SysProjServices sysProjServices) { SysVipInfo vipInfo = getCurrentVioInfo(); sysProjServices.setVipId(vipInfo.getId()); if (CollectionUtils.isEmpty(sysProjServices.getServiceItems())) { return new AjaxResult(AjaxResult.STATUS_FAIL, "没有选中可消耗的项目"); zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java
@@ -17,7 +17,6 @@ import com.matrix.system.common.service.SystemDictionaryService; 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; @@ -48,7 +47,10 @@ 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; /** @@ -403,33 +405,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); } zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java
@@ -64,9 +64,7 @@ * 床位 */ private Long bedId; /** * 床位 */ private Long companyId; /** zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -5,6 +5,7 @@ import com.matrix.core.exception.GlobleException; 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.system.app.dto.OrderListDto; @@ -15,6 +16,7 @@ import com.matrix.system.app.vo.RankingVo; import com.matrix.system.common.bean.BusParameterSettings; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.constance.Dictionary; @@ -119,6 +121,8 @@ @Autowired private SysInstoreInfoService sysInstoreInfoService; @Autowired BusParameterSettingsDao parameterSettingsDao; @Value("${evn}") private String evn; @@ -984,8 +988,6 @@ } @Autowired BusParameterSettingsDao parameterSettingsDao; /** * @param order 新增出库单并更新本店库存 @@ -994,6 +996,9 @@ */ @Override public void addOutStore(SysOrder order) { BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, order.getCompanyId()); if(AppConstance.IS_Y.equals(manageStockSetting.getParamValue())){ List<SysOutStoreItem> storeItemList = new ArrayList<>(); @@ -1092,6 +1097,10 @@ } }); sysOutStoreItemDao.batchInsert(realOutStoreItemList); } }else{ LogUtil.debug("不管理库存"); } @@ -1636,12 +1645,16 @@ shoppingGoodsDao.update(goods); } BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, sysOrder.getCompanyId()); if(AppConstance.IS_Y.equals(manageStockSetting.getParamValue())){ // 家居产品退库存 if (CollectionUtils.isNotEmpty(returnGoodsList)) { refundInstore(returnGoodsList); } } } /** * 退款入库 */ zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
@@ -14,6 +14,7 @@ import com.matrix.system.app.vo.ServiceOrderListVo; import com.matrix.system.common.bean.BusParameterSettings; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.constance.Dictionary; @@ -776,6 +777,7 @@ if (!projServices.getState().equals(Dictionary.SERVICE_STATU_XPL)) { throw new GlobleException("该服务单状态为" + projServices.getState() + ",不可以进行当前操作!"); } projServicesVo.setCompanyId(projServices.getCompanyId()); if (isNeedOutStore(projServicesVo)) { // 生成出库单 @@ -879,13 +881,17 @@ * @return */ private boolean isNeedOutStore(SysProjServices projServicesVo) { if (CollectionUtils.isNotEmpty(projServicesVo.getOutStoreItem())) { BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, projServicesVo.getCompanyId()); if(AppConstance.IS_Y.equals(manageStockSetting.getParamValue())){ for (SysOutStoreItem item : projServicesVo.getOutStoreItem()) { if (item.getAmount() != null && item.getAmount() > 0) { return true; } } } } return false; } zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysWorktimeServiceImpl.java
@@ -97,6 +97,7 @@ @Override public boolean isInWorkTime(Long shopId, Date beginTime, Date endTime) { if(beginTime==null){ Date minTime = findMinTime(shopId); Date maxTime = findMaxTime(shopId); minTime.setYear(beginTime.getYear()); @@ -108,5 +109,8 @@ return ( (DateUtil.isDuringDate(minTime, maxTime, beginTime) || minTime.getTime()==beginTime.getTime() ) && DateUtil.isDuringDate(minTime, maxTime, endTime) || maxTime.getTime()==endTime.getTime() ); }else{ return false; } } } zq-erp/src/main/java/com/matrix/system/hiveErp/action/ErpVipInfoController.java
@@ -11,21 +11,25 @@ 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.SystemDictionary; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.service.SystemDictionaryService; import com.matrix.system.common.bean.SystemDictionary; import com.matrix.system.common.service.SysUsersService; import com.matrix.system.common.service.SystemDictionaryService; 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.BaseController; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.*; 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.dao.MoneyCardUseDao; import com.matrix.system.hive.dao.VipAnswerDao; import com.matrix.core.tools.DateUtil; import com.matrix.system.hive.pojo.RegisterInfo; import com.matrix.system.hive.service.*; import com.matrix.system.hive.service.MoneyCardUseService; import com.matrix.system.hive.service.QuestionSerivce; import com.matrix.system.hive.service.SysVipInfoService; import com.matrix.system.hive.service.SysVipLevelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -42,7 +46,10 @@ 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; /** @@ -104,39 +111,7 @@ @RequestMapping(value = "/showVipInfo") public @ResponseBody AjaxResult findByModel(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存放当前查询的客户 MoneyCardUse cardUseInfo = cardUseService.findByVipId(vips.get(0).getId()); if (cardUseInfo == null) { cardUseInfo=vipInfoService.addVipDefaultCard(vips.get(0).getId()); } vips.get(0).setLevelCard(cardUseInfo); 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); } @@ -397,35 +372,8 @@ @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); } @RequestMapping(value = "/getBirthday") zq-erp/src/main/resources/static/js/function/vip.js
@@ -73,7 +73,6 @@ $("#levelName").html(loj.getString(0, "vipLevel.levelName")); vipId = loj.getString(0, "id"); updateHistory(); if (isActive) { $(".isActive").removeAttr("disabled"); isActive = false; @@ -83,25 +82,7 @@ } } /** * 更新最近查询客户 */ function updateHistory() { $ .AjaxProxy() .invoke( basePath + "/admin/showHistoryUser", function (loj) { var html = ""; for (var i = 0; i < loj.getRowCount(); i++) { html += "<li class='list-group-item'onclick='selectHistory(\"" + loj.getString(i, "phone") + "\")' >" + loj.getString(i, "vipName") + "</li>"; } $("#historyList").html(html); }); } /* * 点击切换最近查询用户 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip_bak.html
@@ -268,7 +268,6 @@ $("#userList").hide(); } }); updateHistory(); $("#userList").mouseleave(function () { $(this).hide(); }) zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-card.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-choice.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-detail.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-follow-add.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-follow.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-mealuse.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-msg.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-my.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-potential.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-service.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account-turn.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-account.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-card-user.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-search.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-vip.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-vipInfo-search.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-visit-info.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-visit-list.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM-visit.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/CRM.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/_foot.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/_pageNav.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/cwqk-list.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/mls-list.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/mobileLogin.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-car.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-history-msg.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-history.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-list.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-msg.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-msg2.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-msg3.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-msg4.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-msg5.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-search.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-service.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-use-completed.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-use-end-service.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-use-look-endService.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-use-new.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-use-start-service.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order-use-time.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/order.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-msg.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-resetPassWord.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-shop-list.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-staff-list.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-trainingMaterials-data.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-trainingMaterials-info.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-trainingMaterials1.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal-trainingMaterials2.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/personal.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/store-check-detail.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/store-check.html
File was deleted zq-erp/src/main/resources/templates/views/admin/hive/mobile/vip-archives.html
File was deleted zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java
@@ -47,7 +47,7 @@ ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.CASH_CONSUMPTION_SHOP, companyId)); ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.RESERVATION_SERVICE_SHOP, companyId)); ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.EVALUATUIN_ORDER_SHOP, companyId)); ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.SIGN_SHOP, companyId)); //ruleSettings.add(addScoreRuleSetting(ScoreSettingConstant.SIGN_SHOP, companyId)); busParameterSettingsDao.batchInsert(ruleSettings); } zq-erp/src/test/java/com/matrix/JyyTests.java
@@ -1,13 +1,24 @@ package com.matrix; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.matrix.component.redis.RedisClient; import com.matrix.system.common.bean.SysFunction; import com.matrix.system.hive.service.imp.SysVipInfoServiceImpl; import com.matrix.system.score.dao.ScoreVipDetailDao; import com.matrix.system.score.service.ScoreVipDetailService; import com.matrix.system.shopXcx.dao.ShopOrderV2Dao; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 测试类示例 @@ -34,10 +45,40 @@ @Autowired SysVipInfoServiceImpl sysVipInfoService; @Autowired RedisClient redisClient; @Test public void testRedis() { List<SysFunction> fnList = new ArrayList<>(); fnList.add(new SysFunction()); Map map = new HashMap(); map.put("a", fnList); redisClient.saveMapValue("map", map); } @Test public void testRedis2() { String map = redisClient.getCachedValue("map"); JSONObject json = JSONUtil.parseObj(map); String a = json.get("a").toString(); JSONArray jsonArray = JSONUtil.parseArray(a); for (int i=0;i<jsonArray.size();i++){ SysFunction sysFunction = jsonArray.get(i, SysFunction.class); System.out.println(sysFunction.getHasThisFn()); } } }