8 files modified
19 files added
New file |
| | |
| | | package com.matrix.core.enums; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 通过统一获取key,value的能力 |
| | | */ |
| | | public interface EnumApiShowAble { |
| | | |
| | | |
| | | /** |
| | | * 获取枚举的唯一编码 |
| | | * @return |
| | | */ |
| | | String getEnumCode(); |
| | | |
| | | /** |
| | | * 获取枚举对外展示对象列表 |
| | | * @return |
| | | */ |
| | | List<EnumsShowVo> getEnumsShowVos(); |
| | | |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.core.enums; |
| | | |
| | | |
| | | import com.matrix.core.tools.LogUtil; |
| | | import org.springframework.boot.ApplicationArguments; |
| | | import org.springframework.boot.ApplicationRunner; |
| | | import org.springframework.core.Ordered; |
| | | import org.springframework.core.annotation.Order; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.net.JarURLConnection; |
| | | import java.net.URL; |
| | | import java.net.URLConnection; |
| | | import java.util.*; |
| | | import java.util.jar.JarEntry; |
| | | import java.util.jar.JarFile; |
| | | |
| | | |
| | | @Component |
| | | @Order(Ordered.HIGHEST_PRECEDENCE) |
| | | public class EnumsManager implements ApplicationRunner { |
| | | private final List<String> CLASS_NAME = new ArrayList<>(); |
| | | private ClassLoader classLoader; |
| | | private static final String SUFFIX = ".class"; |
| | | |
| | | private Map<String, List<EnumsShowVo>> showAbleMap = new HashMap<>(); |
| | | |
| | | @Override |
| | | public void run(ApplicationArguments args) throws Exception { |
| | | LogUtil.info("扫描自定义枚举------------------"); |
| | | initEnum("com.matrix"); |
| | | LogUtil.info("扫描自定义枚举结束==============="); |
| | | } |
| | | |
| | | public List<EnumsShowVo> getShowEnum(String emumCode) { |
| | | return showAbleMap.get(emumCode); |
| | | } |
| | | |
| | | |
| | | private void initEnum(String... packages) { |
| | | classLoader = Thread.currentThread().getContextClassLoader(); |
| | | |
| | | for (String basePackage : packages) { |
| | | Enumeration<URL> resources = null; |
| | | try { |
| | | resources = classLoader.getResources(basePackage.replaceAll("\\.", "/")); |
| | | } catch (IOException e) { |
| | | return; |
| | | } |
| | | |
| | | // 扫描当前工程和jar包 |
| | | while (resources.hasMoreElements()) { |
| | | URL url = resources.nextElement(); |
| | | if ("file".equals(url.getProtocol())) { |
| | | doFileScan(url.getPath()); |
| | | } else if ("jar".equals(url.getProtocol())) { |
| | | doJarScan(basePackage, url); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 初始化枚举数据 |
| | | enumValue(); |
| | | } |
| | | |
| | | /** |
| | | * 扫描当前工程对应包下的所有类 |
| | | * |
| | | * @param path |
| | | */ |
| | | private void doFileScan(String path) { |
| | | String rootPath = classLoader.getResource("").getPath(); |
| | | File pathFile = new File(path); |
| | | |
| | | File[] files = pathFile.listFiles(); |
| | | if (files == null || files.length == 0) { |
| | | return; |
| | | } |
| | | |
| | | for (File file : files) { |
| | | if (file.isDirectory()) { |
| | | String nextPath = path + "/" + file.getName(); |
| | | doFileScan(nextPath); |
| | | } else if (file.getName().endsWith(SUFFIX)) { |
| | | if (!path.contains(rootPath)) { |
| | | return; |
| | | } |
| | | String subStr = path.substring(rootPath.length()); |
| | | String className = (subStr + "/" + file.getName().replaceAll(SUFFIX, "")).replaceAll("/", "\\."); |
| | | CLASS_NAME.add(className); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 扫描jar包下对应包下所有类 |
| | | * |
| | | * @param basePackage |
| | | * @param baseURL |
| | | */ |
| | | public void doJarScan(String basePackage, URL baseURL) { |
| | | basePackage = basePackage.replaceAll("\\.", "/"); |
| | | JarFile jarFile; |
| | | try { |
| | | URLConnection urlConnection = baseURL.openConnection(); |
| | | JarURLConnection jarUrl = (JarURLConnection) urlConnection; |
| | | jarFile = jarUrl.getJarFile(); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException("未找到资源"); |
| | | } |
| | | |
| | | Enumeration<JarEntry> entries = jarFile.entries(); |
| | | while (entries.hasMoreElements()) { |
| | | JarEntry entry = entries.nextElement(); |
| | | |
| | | String name = entry.getName(); |
| | | if (name.startsWith(basePackage)) { |
| | | if (name.endsWith(SUFFIX)) { |
| | | String className = name.replaceAll(SUFFIX, "").replaceAll("/", "\\."); |
| | | CLASS_NAME.add(className); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void enumValue() { |
| | | for (String className : CLASS_NAME) { |
| | | Class<?> clazz = null; |
| | | try { |
| | | clazz = classLoader.loadClass(className); |
| | | } catch (ClassNotFoundException e) { |
| | | continue; |
| | | } |
| | | |
| | | // 判断类是否为枚举类型 |
| | | if (!clazz.isEnum()) { |
| | | continue; |
| | | } |
| | | |
| | | // 判断ApiShowAble是否为类的父类 |
| | | if (!EnumApiShowAble.class.isAssignableFrom(clazz)) { |
| | | continue; |
| | | } |
| | | |
| | | Object[] constants = clazz.getEnumConstants(); |
| | | EnumApiShowAble enumApiShowAble = (EnumApiShowAble) constants[0]; |
| | | |
| | | showAbleMap.put(enumApiShowAble.getEnumCode(), enumApiShowAble.getEnumsShowVos()); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.core.enums; |
| | | |
| | | import lombok.Builder; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 枚举值展示对象 |
| | | */ |
| | | @Builder |
| | | @Data |
| | | public class EnumsShowVo { |
| | | |
| | | /** |
| | | * 展示名称 |
| | | */ |
| | | private String displayName; |
| | | |
| | | /** |
| | | * 提交值 |
| | | */ |
| | | private Integer value; |
| | | |
| | | |
| | | } |
| | |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.bean.ShoppingGoodsCategory; |
| | | import com.matrix.system.hive.bean.SysOrder; |
| | | 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.system.hive.pojo.ShoppingCarItem; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | if (order == null) { |
| | | throw new GlobleException("订单不存在"); |
| | | } |
| | | sysOrderService.cancelOrder(orderId); |
| | | |
| | | return AjaxResult.buildSuccessInstance("取消成功"); |
| | | |
| | | int i = sysOrderService.cancelOrder(orderId); |
| | | if (i > 0) { |
| | | return AjaxResult.buildSuccessInstance("取消成功"); |
| | | } |
| | | return AjaxResult.buildFailInstance("取消失败"); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 查询所有员工 |
| | | */ |
| | | @RequestMapping(value = "/allUser") |
| | | public @ResponseBody |
| | | AjaxResult allUser() { |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, sysUsersService.findByRoleName(false, null)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据角色名称查询店铺的员工 |
| | | */ |
| | | @RequestMapping(value = "/getShopStaffByRoleName") |
New file |
| | |
| | | package com.matrix.system.common.actions; |
| | | |
| | | import com.matrix.core.enums.EnumsManager; |
| | | import com.matrix.core.enums.EnumsShowVo; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.system.common.bean.reqVO.EnumCodeReqVo; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author 姜友瑶 |
| | | * @description 管理员总action |
| | | * @email 935090232@qq.com |
| | | * @date 2016-06-26 |
| | | */ |
| | | @RestController |
| | | @RequestMapping(value = "common/data") |
| | | public class CommonDataAction { |
| | | |
| | | @Autowired |
| | | private EnumsManager enumsManager; |
| | | |
| | | @RequestMapping("/getEnum/{enumCode}") |
| | | public AjaxResult getEnums(@PathVariable String enumCode) throws ClassNotFoundException { |
| | | return AjaxResult.buildSuccessInstance(enumsManager.getShowEnum(enumCode)); |
| | | } |
| | | |
| | | @RequestMapping("/getEnums") |
| | | public AjaxResult getEnums(@RequestBody @Validated EnumCodeReqVo reqVo) throws ClassNotFoundException { |
| | | |
| | | Map<String,List<EnumsShowVo>> enumsMap=new HashMap<>(); |
| | | for (String enumCode : reqVo.getEnumCodes()) { |
| | | List<EnumsShowVo> showEnum = enumsManager.getShowEnum(enumCode); |
| | | enumsMap.put(enumCode,showEnum); |
| | | } |
| | | return AjaxResult.buildSuccessInstance(enumsMap); |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.common.bean; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Builder; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 单据操作日志 |
| | | */ |
| | | @Data |
| | | @TableName("sys_operation_log") |
| | | @Builder |
| | | public class OperationLog { |
| | | |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id",type = IdType.AUTO) |
| | | private Long id; |
| | | |
| | | /** |
| | | *公司id |
| | | */ |
| | | private Long companyId; |
| | | |
| | | /** |
| | | *门店id |
| | | */ |
| | | private Long shopId; |
| | | |
| | | /** |
| | | *操作用户id |
| | | */ |
| | | private Long opeUserId; |
| | | |
| | | /** |
| | | * 会员id |
| | | */ |
| | | private Long vipId; |
| | | |
| | | /** |
| | | * 操作功能 |
| | | */ |
| | | private Integer opeFunction; |
| | | |
| | | /** |
| | | * 单据按钮 |
| | | */ |
| | | private Integer opeBut; |
| | | |
| | | /** |
| | | * 单据id |
| | | */ |
| | | private Long billId; |
| | | |
| | | /** |
| | | * 单据号 |
| | | */ |
| | | private String billNo; |
| | | |
| | | /** |
| | | * 操作人ip |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 操作备注 |
| | | */ |
| | | private String note; |
| | | |
| | | /** |
| | | * 操作时间 |
| | | */ |
| | | private String createTime; |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.common.bean.reqVO; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class EnumCodeReqVo { |
| | | /** |
| | | * 枚举编码 |
| | | */ |
| | | @NotEmpty |
| | | List<String> enumCodes; |
| | | } |
New file |
| | |
| | | package com.matrix.system.common.bean.reqVO; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class OperationLogReqVo { |
| | | |
| | | /** |
| | | *公司id |
| | | */ |
| | | private Long companyId; |
| | | |
| | | /** |
| | | *门店id |
| | | */ |
| | | private Long shopId; |
| | | |
| | | /** |
| | | *操作用户id |
| | | */ |
| | | private Long opeUserId; |
| | | |
| | | /** |
| | | * 会员id |
| | | */ |
| | | private String vipQueryKey; |
| | | |
| | | /** |
| | | * 操作功能 |
| | | */ |
| | | private Integer opeFunction; |
| | | |
| | | /** |
| | | * 单据按钮 |
| | | */ |
| | | private Integer opeBut; |
| | | |
| | | /** |
| | | * 单据号 |
| | | */ |
| | | private String billNo; |
| | | |
| | | /** |
| | | * 操作人ip |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 操作备注 |
| | | */ |
| | | private String note; |
| | | |
| | | /** |
| | | * 操作时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd hh:mm", timezone="GMT+8") |
| | | private Date startTime; |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd hh:mm", timezone="GMT+8") |
| | | private Date endTime; |
| | | |
| | | private Integer pageNum = 0; |
| | | |
| | | private Integer pageSize = 20; |
| | | |
| | | private String order = "desc"; |
| | | |
| | | /** |
| | | * 排序-根据哪些字段排序 默认'create_time |
| | | */ |
| | | private String sort = "create_time"; |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.common.bean.respVO; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class OperationLogRespVo { |
| | | |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | private Long id; |
| | | |
| | | /** |
| | | *门店名称 |
| | | */ |
| | | private String shopName; |
| | | |
| | | /** |
| | | *操作用户 |
| | | */ |
| | | private String opeUser; |
| | | |
| | | |
| | | /** |
| | | * 会员 |
| | | */ |
| | | private String vipName; |
| | | |
| | | /** |
| | | * 操作功能 |
| | | */ |
| | | private Integer opeFunction; |
| | | private String opeFunctionLabel; |
| | | |
| | | /** |
| | | * 单据按钮 |
| | | */ |
| | | private Integer opeBut; |
| | | private String opeButLabel; |
| | | |
| | | /** |
| | | * 单据号 |
| | | */ |
| | | private String billNo; |
| | | |
| | | /** |
| | | * 操作人ip |
| | | */ |
| | | private String ip; |
| | | |
| | | /** |
| | | * 操作备注 |
| | | */ |
| | | private String note; |
| | | |
| | | /** |
| | | * 操作时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") |
| | | private Date createTime; |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.common.dao; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.matrix.system.common.bean.OperationLog; |
| | | import com.matrix.system.common.bean.reqVO.OperationLogReqVo; |
| | | import com.matrix.system.common.bean.respVO.OperationLogRespVo; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | /** |
| | | * @description 单据操作记录 |
| | | * @author jyy |
| | | * @date 2021-03-10 15:22 |
| | | */ |
| | | public interface OperationLogDao extends BaseMapper<OperationLog> { |
| | | |
| | | |
| | | Page<OperationLogRespVo> selectPageList(Page<OperationLogReqVo> page,@Param("param") OperationLogReqVo operationLogReqVo); |
| | | } |
New file |
| | |
| | | package com.matrix.system.common.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.matrix.system.common.bean.OperationLog; |
| | | import com.matrix.system.common.bean.reqVO.OperationLogReqVo; |
| | | import com.matrix.system.common.bean.respVO.OperationLogRespVo; |
| | | import com.matrix.system.enums.OperationButtonEnum; |
| | | import com.matrix.system.enums.OperationFunctionEnum; |
| | | |
| | | /** |
| | | * 单据操作日志 |
| | | */ |
| | | public interface OperationLogService extends IService<OperationLog> { |
| | | |
| | | |
| | | |
| | | void saveOperation(Long companyId, Long shopId, Long userId, OperationFunctionEnum operationFunctionEnum, OperationButtonEnum operationButtonEnum, |
| | | Long billId, String billNo, Long vipId,String note); |
| | | |
| | | void saveOperation(Long companyId, Long shopId, Long userId, OperationFunctionEnum operationFunctionEnum, OperationButtonEnum operationButtonEnum, |
| | | Long billId, String billNo, Long vipId); |
| | | |
| | | void saveOperation(Long companyId, Long shopId, Long suId, OperationFunctionEnum operationFunctionEnum, OperationButtonEnum operationButtonEnum,String note); |
| | | |
| | | Page<OperationLogRespVo> selectPage(Page<OperationLogReqVo> page, OperationLogReqVo operationLogReqVo); |
| | | } |
New file |
| | |
| | | package com.matrix.system.common.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.common.bean.OperationLog; |
| | | import com.matrix.system.common.bean.reqVO.OperationLogReqVo; |
| | | import com.matrix.system.common.bean.respVO.OperationLogRespVo; |
| | | import com.matrix.system.common.dao.OperationLogDao; |
| | | import com.matrix.system.common.service.OperationLogService; |
| | | import com.matrix.system.enums.OperationButtonEnum; |
| | | import com.matrix.system.enums.OperationFunctionEnum; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * 单据操作日志 |
| | | */ |
| | | @Service |
| | | public class OperationLogServiceImpl extends ServiceImpl<OperationLogDao, OperationLog> implements OperationLogService { |
| | | |
| | | @Autowired |
| | | OperationLogDao operationLogDao; |
| | | |
| | | @Override |
| | | public void saveOperation(Long companyId, Long shopId, Long userId, OperationFunctionEnum operationFunctionEnum, OperationButtonEnum operationButtonEnum, |
| | | Long billId, String billNo, Long vipId, String note) { |
| | | save(OperationLog.builder() |
| | | .companyId(companyId) |
| | | .shopId(shopId) |
| | | .opeUserId(userId) |
| | | .opeFunction(operationFunctionEnum.getValue()) |
| | | .opeBut(operationButtonEnum.getValue()) |
| | | .billId(billId) |
| | | .billNo(billNo) |
| | | .vipId(vipId) |
| | | .note(note) |
| | | .ip(WebUtil.getCustomerIp()).build()); |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void saveOperation(Long companyId, Long shopId, Long userId, OperationFunctionEnum operationFunctionEnum, OperationButtonEnum operationButtonEnum, |
| | | Long billId, String billNo, Long vipId) { |
| | | save(OperationLog.builder() |
| | | .companyId(companyId) |
| | | .shopId(shopId) |
| | | .opeUserId(userId) |
| | | .opeFunction(operationFunctionEnum.getValue()) |
| | | .opeBut(operationButtonEnum.getValue()) |
| | | .billId(billId) |
| | | .billNo(billNo) |
| | | .vipId(vipId) |
| | | .ip(WebUtil.getCustomerIp()).build()); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void saveOperation(Long companyId, Long shopId, Long userId, OperationFunctionEnum operationFunctionEnum, OperationButtonEnum operationButtonEnum |
| | | , String note) { |
| | | save(OperationLog.builder() |
| | | .companyId(companyId) |
| | | .shopId(shopId) |
| | | .opeUserId(userId) |
| | | .opeFunction(operationFunctionEnum.getValue()) |
| | | .opeBut(operationButtonEnum.getValue()) |
| | | .note(note) |
| | | .ip(WebUtil.getCustomerIp()).build()); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public Page<OperationLogRespVo> selectPage(Page<OperationLogReqVo> page, OperationLogReqVo operationLogReqVo) { |
| | | |
| | | Page<OperationLogRespVo> voPage=operationLogDao.selectPageList(page, operationLogReqVo); |
| | | voPage.getRecords().stream().forEach(e->{ |
| | | e.setOpeFunctionLabel(OperationFunctionEnum.getByValue(e.getOpeFunction())); |
| | | e.setOpeButLabel(OperationButtonEnum.getByValue(e.getOpeBut())); |
| | | }); |
| | | |
| | | return voPage; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.enums; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import com.matrix.core.enums.EnumApiShowAble; |
| | | import com.matrix.core.enums.EnumsShowVo; |
| | | import com.matrix.core.exception.GlobleException; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 操作按钮枚举 |
| | | * @author jyy |
| | | */ |
| | | public enum OperationButtonEnum implements EnumApiShowAble { |
| | | |
| | | CREATE(1, "新增"), |
| | | UPDATE(2, "修改"), |
| | | DELETE(3, "删除"), |
| | | CANCEL(4, "取消"), |
| | | INVALID(5, "设置为无效"), |
| | | EFFECTIVE(6, "设置为有效"), |
| | | ORDER_SK(7, "订单收款"), |
| | | ORDER_TK(8, "订单退款"), |
| | | ORDER_UPDATE_TIME(9, "更新订单时间"), |
| | | EXPORT(10, "导出"), |
| | | SERVICE_ORDER_BEGIN(11, "开始服务单"), |
| | | SERVICE_ORDER_END(12, "完成服务单"), |
| | | SERVICE_ORDER_PL(13, "服务单配料"), |
| | | SERVICE_ORDER_HK(14, "划扣"), |
| | | SERVICE_ORDER_PB(15, "排班"), |
| | | SERVICE_ORDER_QRYY(16, "确认预约"), |
| | | |
| | | ; |
| | | |
| | | private Integer value; |
| | | |
| | | private String displayName; |
| | | |
| | | OperationButtonEnum(Integer value, String displayName) { |
| | | this.value = value; |
| | | this.displayName = displayName; |
| | | } |
| | | |
| | | public static String getByValue(Integer value) { |
| | | for (int i = 0; i < values().length; i++) { |
| | | if (value.equals(values()[i].getValue())) { |
| | | return values()[i].displayName; |
| | | } |
| | | } |
| | | throw new GlobleException("无效枚举值"); |
| | | } |
| | | |
| | | @Override |
| | | public String getEnumCode() { |
| | | return "operationButton"; |
| | | } |
| | | |
| | | @Override |
| | | public List<EnumsShowVo> getEnumsShowVos() { |
| | | return Lists.newArrayList(values()).stream().map(item -> |
| | | EnumsShowVo.builder() |
| | | .displayName(item.getDisplayName()) |
| | | .value(item.value) |
| | | .build() |
| | | ).collect(Collectors.toList()); |
| | | } |
| | | |
| | | public Integer getValue() { |
| | | return value; |
| | | } |
| | | |
| | | public String getDisplayName() { |
| | | return displayName; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.enums; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import com.matrix.core.enums.EnumApiShowAble; |
| | | import com.matrix.core.enums.EnumsShowVo; |
| | | import com.matrix.core.exception.GlobleException; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 操作功能枚举 |
| | | * |
| | | * @author jyy |
| | | */ |
| | | public enum OperationFunctionEnum implements EnumApiShowAble { |
| | | |
| | | ORDER(1, "订单"), |
| | | SERVICE_ORDER(2, "服务单"), |
| | | ; |
| | | |
| | | private Integer value; |
| | | |
| | | private String displayName; |
| | | |
| | | OperationFunctionEnum(Integer value, String displayName) { |
| | | this.value = value; |
| | | this.displayName = displayName; |
| | | } |
| | | |
| | | @Override |
| | | public String getEnumCode() { |
| | | return "operationFunction"; |
| | | } |
| | | |
| | | @Override |
| | | public List<EnumsShowVo> getEnumsShowVos() { |
| | | return Lists.newArrayList(values()).stream().map(item -> |
| | | EnumsShowVo.builder() |
| | | .displayName(item.getDisplayName()) |
| | | .value(item.value) |
| | | .build() |
| | | ).collect(Collectors.toList()); |
| | | } |
| | | |
| | | public static String getByValue(Integer value) { |
| | | for (int i = 0; i < values().length; i++) { |
| | | if (value.equals(values()[i].getValue())) { |
| | | return values()[i].displayName; |
| | | } |
| | | } |
| | | throw new GlobleException("无效枚举值"); |
| | | } |
| | | |
| | | |
| | | public Integer getValue() { |
| | | return value; |
| | | } |
| | | |
| | | public String getDisplayName() { |
| | | return displayName; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.enums; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import com.matrix.core.enums.EnumApiShowAble; |
| | | import com.matrix.core.enums.EnumsShowVo; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 支付方式 |
| | | * @author jyy |
| | | */ |
| | | public enum PayMethodEnum implements EnumApiShowAble { |
| | | |
| | | CASH(1, "现金"), |
| | | WECHAT(2, "微信"), |
| | | ALIPAY(3, "支付宝"), |
| | | BANK_CARD(4, "银行卡"), |
| | | BANK_MT(5, "美团"), |
| | | VIP_CARD(6, "会员卡"); |
| | | |
| | | private Integer value; |
| | | |
| | | private String displayName; |
| | | |
| | | PayMethodEnum(Integer value, String displayName) { |
| | | this.value = value; |
| | | this.displayName = displayName; |
| | | } |
| | | |
| | | @Override |
| | | public String getEnumCode() { |
| | | return "payMethod"; |
| | | } |
| | | |
| | | @Override |
| | | public List<EnumsShowVo> getEnumsShowVos() { |
| | | return Lists.newArrayList(values()).stream().map(item -> |
| | | EnumsShowVo.builder() |
| | | .displayName(item.getDisplayName()) |
| | | .value(item.value) |
| | | .build() |
| | | ).collect(Collectors.toList()); |
| | | } |
| | | |
| | | public Integer getValue() { |
| | | return value; |
| | | } |
| | | |
| | | public String getDisplayName() { |
| | | return displayName; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.enums; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import com.matrix.core.enums.EnumApiShowAble; |
| | | import com.matrix.core.enums.EnumsShowVo; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | | public enum SmsPlatformEnum implements EnumApiShowAble { |
| | | |
| | | |
| | | ALIBABA(1 ,"阿里云短信"), |
| | | HUYIWUXIAN(2, "互亿无线"); |
| | | |
| | | private Integer value; |
| | | |
| | | private String displayName; |
| | | |
| | | SmsPlatformEnum(Integer value, String displayName) { |
| | | this.value = value; |
| | | this.displayName = displayName; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public String getEnumCode() { |
| | | return "smsPlatform"; |
| | | } |
| | | |
| | | @Override |
| | | public List<EnumsShowVo> getEnumsShowVos() { |
| | | return Lists.newArrayList(values()).stream().map(item -> |
| | | EnumsShowVo.builder() |
| | | .displayName(item.getDisplayName()) |
| | | .value(item.value) |
| | | .build() |
| | | ).collect(Collectors.toList()); |
| | | } |
| | | |
| | | public Integer getValue() { |
| | | return value; |
| | | } |
| | | |
| | | public String getDisplayName() { |
| | | return displayName; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.enums; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import com.matrix.core.enums.EnumApiShowAble; |
| | | import com.matrix.core.enums.EnumsShowVo; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 短信类型 |
| | | */ |
| | | public enum SmsTypeEnum implements EnumApiShowAble { |
| | | |
| | | |
| | | VERIFY_CODE(1, "验证码"), |
| | | SMS_NOTICE(2, "短信通知"), |
| | | PROMOTE(3, "推广短信"); |
| | | |
| | | private Integer value; |
| | | |
| | | private String displayName; |
| | | |
| | | SmsTypeEnum(Integer value, String displayName) { |
| | | this.value = value; |
| | | this.displayName = displayName; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public String getEnumCode() { |
| | | return "smsType"; |
| | | } |
| | | |
| | | @Override |
| | | public List<EnumsShowVo> getEnumsShowVos() { |
| | | return Lists.newArrayList(values()).stream().map(item -> |
| | | EnumsShowVo.builder() |
| | | .displayName(item.getDisplayName()) |
| | | .value(item.value) |
| | | .build() |
| | | ).collect(Collectors.toList()); |
| | | } |
| | | |
| | | public Integer getValue() { |
| | | return value; |
| | | } |
| | | |
| | | public String getDisplayName() { |
| | | return displayName; |
| | | } |
| | | } |
| | |
| | | package com.matrix.system.hive.action; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.matrix.component.asyncmessage.AsyncMessageManager; |
| | | import com.matrix.component.rabbitmq.RabiitMqTemplate; |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.exception.GlobleException; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | |
| | | import com.matrix.system.common.constance.AppConstance; |
| | | import com.matrix.system.common.dao.BusParameterSettingsDao; |
| | | import com.matrix.system.common.dao.SysCompanyDao; |
| | | import com.matrix.system.common.service.OperationLogService; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.common.tools.ResponseHeadUtil; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.enums.OperationButtonEnum; |
| | | import com.matrix.system.enums.OperationFunctionEnum; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | |
| | | import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting; |
| | | import com.matrix.system.wechart.templateMsg.UniformMsgParam; |
| | | 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.ui.ModelMap; |
| | |
| | | @Autowired |
| | | private AsyncMessageManager asyncMessageManager; |
| | | |
| | | @Value("${evn}") |
| | | private String evn; |
| | | |
| | | @Autowired |
| | | private OperationLogService operationLogService; |
| | | |
| | | |
| | | /** |
| | | * 计算订单金额 |
| | |
| | | SysCompanyDao companyDao; |
| | | |
| | | /** |
| | | * 收款 |
| | | * 打印订单 |
| | | */ |
| | | @RequestMapping(value = "/printOrder") |
| | | public @ResponseBody |
| | |
| | | */ |
| | | @RequestMapping(value = "/updateOrderTime") |
| | | public @ResponseBody |
| | | @Transactional(rollbackFor = Exception.class) |
| | | AjaxResult updateOrderTime(SysOrder sysOrder) { |
| | | |
| | | sysOrderDao.updateOrderTime(sysOrder.getPayTime(), sysOrder.getId()); |
| | |
| | | //更新收款流水时间 |
| | | sysOrderFlowDao.updateTimeByOrderId(sysOrder.getId(), sysOrder.getPayTime()); |
| | | |
| | | //保存单据日志 |
| | | sysOrder= sysOrderDao.selectById(sysOrder.getId()); |
| | | operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(),getMe().getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.ORDER_UPDATE_TIME, |
| | | sysOrder.getId(), |
| | | sysOrder.getOrderNo(), |
| | | sysOrder.getVipId(), |
| | | "更新参数: "+JSON.toJSONString(sysOrder)); |
| | | |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); |
| | | } |
| | |
| | | @RequestMapping(value = "/exportExcel") |
| | | public void report(ModelMap model, HttpServletRequest request, HttpServletResponse response, |
| | | SysOrder sysOrder) throws Exception { |
| | | SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | sysOrder.setShopId(sysUsers.getShopId()); |
| | | sysOrder.setShopId(getMe().getShopId()); |
| | | doExportOrder(response, sysOrder); |
| | | return; |
| | | |
| | |
| | | public void erpExportExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response, |
| | | SysOrder sysOrder) throws Exception { |
| | | doExportOrder(response, sysOrder); |
| | | |
| | | return; |
| | | |
| | | } |
| | |
| | | * @throws IOException |
| | | */ |
| | | private void doExportOrder(HttpServletResponse response, SysOrder sysOrder) throws IOException { |
| | | |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(getMe().getCompanyId(), getMe().getShopId(),getMe().getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.EXPORT, |
| | | String.format("导出参数:%s" , JSON.toJSONString(sysOrder))); |
| | | |
| | | List<ExcelSheetPO> res = new ArrayList<>(); |
| | | ExcelSheetPO orderSheet = new ExcelSheetPO(); |
| | | String title = "订单记录"; |
| | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.matrix.core.anotations.RemoveRequestToken; |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.exception.GlobleException; |
| | |
| | | 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.app.dto.IdSubmitDto; |
| | | 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.SysCompanyDao; |
| | | import com.matrix.system.common.service.OperationLogService; |
| | | import com.matrix.system.common.service.SysUsersService; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.common.tools.ResponseHeadUtil; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.enums.OperationButtonEnum; |
| | | import com.matrix.system.enums.OperationFunctionEnum; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.ui.ModelMap; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | SysShopInfoDao shopInfoDao; |
| | | |
| | | @Autowired |
| | | private OperationLogService operationLogService; |
| | | |
| | | |
| | | /** |
| | | * 根据id查询服务单信息 |
| | |
| | | */ |
| | | @RequestMapping(value = "/updateOrderTime") |
| | | public @ResponseBody |
| | | @Transactional(rollbackFor = Exception.class) |
| | | AjaxResult updateOrderTime(@RequestBody ServiceOrderTimeDto serviceOrderTimeDto) { |
| | | sysProjServicesDao.updateOrderTime(serviceOrderTimeDto); |
| | | // 更新业绩时间 |
| | |
| | | achieveNew.setServiceOrderId(serviceOrderTimeDto.getId()); |
| | | achieveNew.setDatatime(serviceOrderTimeDto.getConsumeTime()); |
| | | achieveNewService.modifyAchieveTime(achieveNew); |
| | | SysProjServices projServices = sysProjServicesDao.selectById(serviceOrderTimeDto.getId()); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(projServices.getCompanyId(), projServices.getShopId(),getMe().getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.ORDER_UPDATE_TIME, |
| | | projServices.getId(), |
| | | projServices.getServiceNo(), |
| | | projServices.getVipId(), |
| | | "更新参数: "+JSON.toJSONString(serviceOrderTimeDto)); |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); |
| | | } |
| | | |
| | |
| | | return mv; |
| | | } |
| | | |
| | | /** |
| | | * 根据id对服务单进行派单 |
| | | */ |
| | | @RequestMapping(value = "/paidan") |
| | | public @ResponseBody |
| | | AjaxResult paidan(Long id) { |
| | | SysProjServices services = sysProjServicesService.findById(id); |
| | | int i = sysProjServicesService.modifyPDProjServices(services); |
| | | if (i > 0) { |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "派单成功"); |
| | | } else { |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "派单失败"); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Autowired |
| | | BusParameterSettingsDao busParameterSettingsDao; |
| | |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/addServiceProj") |
| | | @ResponseBody |
| | | public AjaxResult addServiceProj(SysProjServices sysProjServices) { |
| | | |
| | | return AjaxResult.buildSuccessInstance("保存成功"); |
| | | } |
| | | |
| | | /** |
| | | * 删除服务单项目/套餐 |
| | |
| | | |
| | | |
| | | private void doExportServiceOrder(HttpServletResponse response, SysProjServices projServices) throws IOException { |
| | | |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(getMe().getCompanyId(), getMe().getShopId(),getMe().getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.EXPORT, |
| | | String.format("导出参数:%s" , JSON.toJSONString(projServices))); |
| | | |
| | | |
| | | List<ExcelSheetPO> res = new ArrayList<>(); |
| | | ExcelSheetPO orderSheet = new ExcelSheetPO(); |
| | | String title = "服务订单明细"; |
| | |
| | | */ |
| | | public int remove(List<Long> list); |
| | | |
| | | public int cancelOrder(Long id); |
| | | public void cancelOrder(Long id); |
| | | /** |
| | | * 根据id删除SysOrder |
| | | * |
| | |
| | | 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.common.service.OperationLogService; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.enums.OperationButtonEnum; |
| | | import com.matrix.system.enums.OperationFunctionEnum; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | |
| | | @Autowired |
| | | private AsyncMessageManager asyncMessageManager; |
| | | |
| | | @Autowired |
| | | private OperationLogService operationLogService; |
| | | |
| | | |
| | | @Override |
| | | public int add(SysOrder sysOrder) { |
| | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public SysOrder checkAndSaveOrder(SysOrder sysOrder) { |
| | | |
| | | // 计算订单折扣金额,收款情况下 计算订单总额 |
| | |
| | | //新增订单 |
| | | sysOrder.setOrderNo(codeService.getOrderCode()); |
| | | sysOrderDao.insert(sysOrder); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(), user.getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.CREATE, |
| | | sysOrder.getId(), |
| | | sysOrder.getOrderNo(), |
| | | sysOrder.getVipId()); |
| | | |
| | | } else { |
| | | //更新订单 |
| | | sysOrderDao.update(sysOrder); |
| | | //删除原有订单明细 |
| | | orderItemDao.deleteByOrderId(sysOrder.getId()); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(), user.getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.UPDATE, |
| | | sysOrder.getId(), |
| | | sysOrder.getOrderNo(), |
| | | sysOrder.getVipId(), |
| | | "修改订单内容"); |
| | | } |
| | | |
| | | sysOrder.getItems().forEach(sysOrderItem -> { |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int cancelOrder(Long id) { |
| | | public void cancelOrder(Long id) { |
| | | |
| | | SysOrder order = sysOrderDao.selectById(id); |
| | | SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | if (order.getStatu().equals(Dictionary.ORDER_STATU_DFK)) { |
| | | |
| | | order.setStatu(Dictionary.ORDER_STATU_YQX); |
| | |
| | | //发送微信公众号提醒 |
| | | UniformMsgParam uniformMsgParam = new UniformMsgParam(order.getCompanyId(), UniformMsgParam.GZH_DDQX); |
| | | uniformMsgParam.put("orderId", order.getId()); |
| | | asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam); |
| | | asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG, uniformMsgParam); |
| | | |
| | | return sysOrderDao.update(order); |
| | | |
| | | sysOrderDao.update(order); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(order.getCompanyId(), order.getShopId(),sysUsers.getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.CANCEL, |
| | | order.getId(), |
| | | order.getOrderNo(), |
| | | order.getVipId(), |
| | | "未付款取消订单"); |
| | | } else { |
| | | |
| | | //一个订单只能被取消一次 |
| | |
| | | |
| | | // 取消订单 |
| | | order.setStatu(Dictionary.ORDER_STATU_YQX); |
| | | return sysOrderDao.update(order); |
| | | sysOrderDao.update(order); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(order.getCompanyId(), order.getShopId(),sysUsers.getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.CANCEL, |
| | | order.getId(), |
| | | order.getOrderNo(), |
| | | order.getVipId(), |
| | | "已付款取消订单"); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | //设置会员积分 |
| | | addVipScore(pageOrder); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 付款后更新订单信息 |
| | | * |
| | | * @param pageOrder |
| | | */ |
| | | private void updateOrderInfo(SysOrder pageOrder) { |
| | |
| | | |
| | | double sum = flows.stream().mapToDouble(item -> item.getAmount().doubleValue()).sum(); |
| | | |
| | | if(sum>0 && cardPayAmount.doubleValue()==0 && cashPayAmount.doubleValue()==0 ){ |
| | | if (sum > 0 && cardPayAmount.doubleValue() == 0 && cashPayAmount.doubleValue() == 0) { |
| | | throw new GlobleException("订单更新失败,支付金额计算错误,请联系管理员"); |
| | | } |
| | | |
| | | |
| | | sysOrderDao.update(pageOrder); |
| | | |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(pageOrder.getCompanyId(), pageOrder.getShopId(), user.getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.ORDER_SK, |
| | | pageOrder.getId(), |
| | | pageOrder.getOrderNo(), |
| | | pageOrder.getVipId()); |
| | | } |
| | | |
| | | private void checkOrder(SysOrder pageOrder) { |
| | |
| | | entries.forEach(entrie -> { |
| | | double sum = entrie.getValue().stream().mapToDouble(AchieveNew::getGoodsCash).sum(); |
| | | //todo 目前使用js计算金额可能存在精度的误差展示用0.1屏蔽 |
| | | if (Math.abs(sum- (item.getZkPrice()*item.getCount()) )>0.1) { |
| | | if (Math.abs(sum - (item.getZkPrice() * item.getCount())) > 0.1) { |
| | | ShoppingGoods shopGoods = shoppingGoodsDao.selectById(item.getGoodsId()); |
| | | throw GlobleException.instance(shopGoods.getName() + "," + entrie.getKey() + "业绩金额与收款金额不一致"); |
| | | } |
| | |
| | | * @date 2016年9月19日 |
| | | */ |
| | | public void addMoneyCardUse(SysOrder sourceOrder) { |
| | | |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | List<SysOrderItem> orderItemList = sourceOrder.getItems(); |
| | | for (SysOrderItem sysOrderItem : orderItemList) { |
| | | // 如果购买的是充值卡 |
| | |
| | | moneyCardUse.setFailTime(invalidTime); |
| | | |
| | | moneyCardUseDao.insert(moneyCardUse); |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE); |
| | | if (zsConsumeAchieve) { |
| | | //赠送情况下,如果收款金额大于0,就是赠送金额划扣的情况,金额即为划扣的折扣金额 |
| | | if(sysOrderItem.getZkPrice()>0){ |
| | | if (sysOrderItem.getZkPrice() > 0) { |
| | | puse.setPrice(sysOrderItem.getZkPrice()); |
| | | }else{ |
| | | } else { |
| | | puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice()); |
| | | } |
| | | } else { |
| | |
| | | // 设置业绩 |
| | | achieveNewService.addAchaeveByOrder(sysOrder); |
| | | |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(), user.getSuId(), |
| | | OperationFunctionEnum.ORDER, |
| | | OperationButtonEnum.ORDER_TK, |
| | | sysOrder.getId(), |
| | | sysOrder.getOrderNo(), |
| | | sysOrder.getVipId()); |
| | | |
| | | } |
| | | |
| | | private void addRefundOrderFlow(SysOrder sourceOrder) { |
| | |
| | | import com.matrix.system.common.dao.BusParameterSettingsDao; |
| | | import com.matrix.system.common.dao.SysUsersDao; |
| | | import com.matrix.system.common.service.BusParameterSettingService; |
| | | import com.matrix.system.common.service.OperationLogService; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.enums.OperationButtonEnum; |
| | | import com.matrix.system.enums.OperationFunctionEnum; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | |
| | | @Autowired |
| | | private SysProjUseDao sysProjUseDao; |
| | | |
| | | |
| | | @Autowired |
| | | private OperationLogService operationLogService; |
| | | @Autowired |
| | | private SysOutStoreDao sysOutStoreDao; |
| | | |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public SysProjServices addSysProjServices(SysProjServices sysProjServices) throws GlobleException { |
| | | |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | //创建服务单 |
| | | if (WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY) != null) { |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | sysProjServices.setCreateStaffId(user.getSuId()); |
| | | sysProjServices.setShopId(user.getShopId()); |
| | | sysProjServices.setCompanyId(user.getCompanyId()); |
| | |
| | | sysProjServices.setTotalTime(totalTime); |
| | | sysProjServices.setMoney(new BigDecimal(hkPrice).setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue()); |
| | | sysProjServicesDao.update(sysProjServices); |
| | | |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(sysProjServices.getCompanyId(), sysProjServices.getShopId(),user.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.CREATE, |
| | | sysProjServices.getId(), |
| | | sysProjServices.getServiceNo(), |
| | | sysProjServices.getVipId()); |
| | | |
| | | return sysProjServices; |
| | | } |
| | | |
| | |
| | | autoBatching(projServices); |
| | | } |
| | | |
| | | SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(checkProjServices.getCompanyId(), checkProjServices.getShopId(),users.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.SERVICE_ORDER_PB, |
| | | checkProjServices.getId(), |
| | | checkProjServices.getServiceNo(), |
| | | checkProjServices.getVipId()); |
| | | |
| | | return i; |
| | | } |
| | |
| | | } |
| | | //删除积分 |
| | | scoreVipDetailService.removeByBusinessId(checkProjServices.getVipId(), checkProjServices.getId()); |
| | | |
| | | SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(checkProjServices.getCompanyId(), checkProjServices.getShopId(),users.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.CANCEL, |
| | | checkProjServices.getId(), |
| | | checkProjServices.getServiceNo(), |
| | | checkProjServices.getVipId()); |
| | | |
| | | |
| | | //更新服务单状态 |
| | | return sysProjServicesDao.update(checkProjServices); |
| | |
| | | asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG, uniformMsgParam); |
| | | //发送划扣短信提醒 |
| | | taiYanAliyunSmsService.sendHkNotice(projServices); |
| | | |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(projServices.getCompanyId(), projServices.getShopId(),users.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.SERVICE_ORDER_HK, |
| | | projServices.getId(), |
| | | projServices.getServiceNo(), |
| | | projServices.getVipId()); |
| | | |
| | | return result; |
| | | } |
| | |
| | | // // 判断是服务超时还是服务提前结束,如果minspace大于0则是超时服务,小于0则是提前结束服务 |
| | | // projServices.setIsOverTime(minspace + ""); |
| | | // projServices.setState(Dictionary.SERVICE_STATU_FWWC); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(projServices.getCompanyId(), projServices.getShopId(),sysUsers.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.SERVICE_ORDER_PL, |
| | | projServices.getId(), |
| | | projServices.getServiceNo(), |
| | | projServices.getVipId()); |
| | | |
| | | |
| | | return sysProjServicesDao.update(projServices); |
| | | } |
| | | |
| | |
| | | // 设置美疗师实际开始时间 |
| | | checkBeauticianState.setState(Dictionary.BEATUI_STATE_SYZ); |
| | | projServices.getVipId(); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(projServices.getCompanyId(), projServices.getShopId(),users.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.SERVICE_ORDER_BEGIN, |
| | | projServices.getId(), |
| | | projServices.getServiceNo(), |
| | | projServices.getVipId()); |
| | | |
| | | return beauticianStateDao.update(checkBeauticianState); |
| | | } |
| | | |
| | |
| | | checkprojServices.setState(Dictionary.SERVICE_STATU_FWWC); |
| | | sysProjServicesDao.update(checkprojServices); |
| | | } |
| | | |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(projServices.getCompanyId(), projServices.getShopId(),users.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.SERVICE_ORDER_END, |
| | | projServices.getId(), |
| | | projServices.getServiceNo(), |
| | | projServices.getVipId()); |
| | | return rerunlt; |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int confirmServiceOrder(Long id) { |
| | | SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | SysProjServices services = new SysProjServices(); |
| | | services.setId(id); |
| | | services.setState(Dictionary.BEATUI_STATE_DYY); |
| | | int i = modify(services); |
| | | SysProjServices projServices =findById(id); |
| | | //保存单据日志 |
| | | operationLogService.saveOperation(projServices.getCompanyId(), projServices.getShopId(),users.getSuId(), |
| | | OperationFunctionEnum.SERVICE_ORDER, |
| | | OperationButtonEnum.SERVICE_ORDER_QRYY, |
| | | projServices.getId(), |
| | | projServices.getServiceNo(), |
| | | projServices.getVipId()); |
| | | |
| | | if (i > 0) { |
| | | //发送微信公众号提醒 |
| | | services = findById(services.getId()); |
New file |
| | |
| | | package com.matrix.system.hiveErp.action; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.tools.DateUtil; |
| | | 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.reqVO.OperationLogReqVo; |
| | | import com.matrix.system.common.bean.respVO.OperationLogRespVo; |
| | | import com.matrix.system.common.service.OperationLogService; |
| | | import com.matrix.system.common.tools.ResponseHeadUtil; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.ui.ModelMap; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.OutputStream; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @RestController |
| | | @RequestMapping(value = "admin/operation") |
| | | public class OperationLogController { |
| | | |
| | | |
| | | @Autowired |
| | | private OperationLogService operationLogService; |
| | | |
| | | /** |
| | | * 查询单据操作记录 |
| | | * |
| | | * @param operationLogReqVo |
| | | * @return |
| | | */ |
| | | @PostMapping(value = "/getOperation") |
| | | public |
| | | AjaxResult getOperation(@RequestBody OperationLogReqVo operationLogReqVo) { |
| | | QueryUtil.setQueryLimitCom(operationLogReqVo); |
| | | Page<OperationLogReqVo> page = new Page<>(operationLogReqVo.getPageNum(),operationLogReqVo.getPageSize()); |
| | | |
| | | Page<OperationLogRespVo> pageResult = operationLogService.selectPage(page,operationLogReqVo); |
| | | |
| | | return AjaxResult.buildSuccessInstance(pageResult.getRecords(),pageResult.getTotal()); |
| | | } |
| | | |
| | | /** |
| | | * 导出操作记录 |
| | | */ |
| | | @RequestMapping(value = "/exportExcel") |
| | | public void exportExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response,OperationLogReqVo operationLogReqVo) throws Exception { |
| | | |
| | | doExportExcel(response, operationLogReqVo); |
| | | } |
| | | |
| | | |
| | | private void doExportExcel(HttpServletResponse response, OperationLogReqVo operationLogReqVo) throws IOException { |
| | | |
| | | |
| | | |
| | | List<ExcelSheetPO> res = new ArrayList<>(); |
| | | ExcelSheetPO orderSheet = new ExcelSheetPO(); |
| | | String title = "系统操作记录"; |
| | | orderSheet.setSheetName(title); |
| | | orderSheet.setTitle(title); |
| | | String[] header = {"门店","操作用户", "操作时间", "操作功能","操作按钮", "单据号","操作会员","备注","IP地址"}; |
| | | orderSheet.setHeaders(header); |
| | | |
| | | QueryUtil.setQueryLimitCom(operationLogReqVo); |
| | | Page<OperationLogReqVo> page = new Page<>(operationLogReqVo.getPageNum(),operationLogReqVo.getPageSize()); |
| | | |
| | | Page<OperationLogRespVo> pageResult = operationLogService.selectPage(page,operationLogReqVo); |
| | | |
| | | List<List<Object>> list = new ArrayList<>(); |
| | | if (pageResult.getRecords().size() > 0) { |
| | | for (OperationLogRespVo item : pageResult.getRecords()) { |
| | | List<Object> temp = new ArrayList<>(); |
| | | temp.add(item.getShopName()); |
| | | temp.add(item.getOpeUser()); |
| | | temp.add(DateUtil.dateToString(item.getCreateTime(), DateUtil.DATE_FORMAT_MM)); |
| | | temp.add(item.getOpeFunctionLabel()); |
| | | temp.add(item.getOpeButLabel()); |
| | | temp.add(item.getBillNo()); |
| | | temp.add(item.getVipName()); |
| | | temp.add(item.getNote()); |
| | | temp.add(item.getIp()); |
| | | 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); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | spring.profiles.active=meidu |
| | | spring.profiles.active=test |
| | | evn=dev |
| | | server.port=8080 |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="com.matrix.system.common.dao.OperationLogDao"> |
| | | |
| | | |
| | | <select id="selectPageList" resultType="com.matrix.system.common.bean.respVO.OperationLogRespVo"> |
| | | |
| | | SELECT |
| | | a.id, |
| | | a.ope_function, |
| | | a.ope_but, |
| | | d.shop_short_name as shop_name, |
| | | b.su_name AS opeUser, |
| | | c.vip_name, |
| | | a.bill_no, |
| | | a.ip, |
| | | a.note, |
| | | a.create_time |
| | | FROM |
| | | sys_operation_log a |
| | | LEFT JOIN sys_users b ON a.ope_user_id = b.su_id |
| | | LEFT JOIN sys_vip_info c ON a.vip_id = c.id |
| | | LEFT JOIN sys_shop_info d ON a.shop_id = d.id |
| | | <where> |
| | | a.company_id=#{param.companyId} |
| | | <if test="param.shopId != null and param.shopId != 0 "> |
| | | and a.shop_id=#{param.shopId} |
| | | </if> |
| | | <if test="param.opeUserId != null"> |
| | | and a.ope_user_id=#{param.opeUserId} |
| | | </if> |
| | | |
| | | <if test="param.vipQueryKey != null and param.vipQueryKey != '' "> |
| | | and c.VIP_NAME like concat('%',#{param.vipQueryKey},'%') |
| | | or (c.VIP_NO like concat('%',#{param.vipQueryKey},'%') |
| | | or c.PHONE like concat('%',#{param.vipQueryKey},'%') |
| | | ) |
| | | </if> |
| | | <if test="param.opeFunction != null"> |
| | | and a.ope_function=#{param.opeFunction} |
| | | </if> |
| | | |
| | | <if test="param.opeBut != null"> |
| | | and a.ope_but=#{param.opeBut} |
| | | </if> |
| | | <if test="param.billNo != null and param.billNo != ''"> |
| | | and a.bill_no like concat('%',#{param.billNo},'%') |
| | | </if> |
| | | <if test="param.ip != null and param.ip != ''"> |
| | | and a.ip like concat('%',#{param.ip},'%') |
| | | </if> |
| | | <if test="param.note != null and param.note != ''"> |
| | | and a.note like concat('%',#{param.note},'%') |
| | | </if> |
| | | <if test="param.startTime != null "> |
| | | and a.create_time <![CDATA[>=]]> #{param.startTime} |
| | | </if> |
| | | <if test="param.endTime != null"> |
| | | and a.create_time <![CDATA[<=]]> #{param.endTime} |
| | | </if> |
| | | order by ${param.sort} ${param.order} |
| | | </where> |
| | | |
| | | |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <!DOCTYPE HTML> |
| | | <html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> |
| | | <meta name="renderer" content="webkit|ie-comp|ie-stand"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> |
| | | <meta http-equiv="Cache-Control" content="no-siteapp"/> |
| | | <LINK rel="Bookmark" href="../images/favicon.ico"> |
| | | <!-- 本框架基本脚本和样式 --> |
| | | <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script> |
| | | <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}"> |
| | | <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/> |
| | | <title></title> |
| | | <style> |
| | | .panel-body{ |
| | | overflow: hidden; |
| | | } |
| | | .buttonPanel{ |
| | | background: #ffffff; |
| | | padding: 10px 10px ; |
| | | margin: 0px 0px 10px 0px; |
| | | } |
| | | .rowPanel{ |
| | | background: #ffffff; |
| | | padding: 0px 10px ; |
| | | padding-top: 10px; |
| | | margin: 0px 0px 10px 0px; |
| | | } |
| | | .paginationStyle{ |
| | | background: #ffffff; |
| | | padding: 10px 10px; |
| | | margin: 0px 0px 10px 0px; |
| | | text-align: right; |
| | | } |
| | | </style> |
| | | </head> |
| | | <body> |
| | | <div class="panel-body" id="app"> |
| | | |
| | | <el-row class="buttonPanel"> |
| | | <el-button @click="exportExcel" type="primary" >导出</el-button> |
| | | </el-row> |
| | | |
| | | <el-row class="rowPanel" > |
| | | <el-form ref="form" :model="form" inline > |
| | | |
| | | <el-form-item label="操作人" prop="flowType"> |
| | | <el-select v-model="form.opeUserId" placeholder=""> |
| | | <el-option |
| | | v-for="item in userList" |
| | | :key="item.suId" |
| | | :label="item.suName" |
| | | :value="item.suId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="操作功能" prop="flowType"> |
| | | <el-select v-model="form.opeFunction" placeholder=""> |
| | | <el-option |
| | | v-for="item in functionList" |
| | | :key="item.value" |
| | | :label="item.displayName" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="操作按钮" prop="flowType"> |
| | | <el-select v-model="form.opeBut" placeholder=""> |
| | | <el-option |
| | | v-for="item in btnList" |
| | | :key="item.value" |
| | | :label="item.displayName" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="会员" prop="vipQueryKey"> |
| | | <el-input v-model="form.vipQueryKey" placeholder="请输入会员姓名/编号/手机"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="门店" prop="shopId"> |
| | | <el-select v-model="form.shopId" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in shopList" |
| | | :key="item.shopShortName" |
| | | :label="item.shopShortName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="订单号" prop="billNo"> |
| | | <el-input v-model="form.billNo"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="IP" prop="ip"> |
| | | <el-input v-model="form.ip"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="备注" prop="note"> |
| | | <el-input v-model="form.note"></el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="时间" prop="datetimeArr"> |
| | | <el-date-picker |
| | | v-model="form.datetimeArr" |
| | | type="daterange" |
| | | range-separator="至" format="yyyy-MM-dd HH:mm" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <el-button type="primary" @click="search" >搜索</el-button> |
| | | <el-button @click="resetForm('form')">重置</el-button> |
| | | </el-form> |
| | | </el-row> |
| | | |
| | | <el-row class="table-style" > |
| | | |
| | | <el-table id="proj" :data="table.rows" :height="height" stripe @sort-change="sortChange"> |
| | | <el-table-column |
| | | prop="shopName" |
| | | label="门店" |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="opeUser" |
| | | label="操作用户" |
| | | width="240"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | | sortable="custom" |
| | | label="操作时间" |
| | | show-overflow-tooltip |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="opeFunctionLabel" |
| | | label="操作功能"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="opeButLabel" |
| | | label="操作按钮"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="billNo" |
| | | label="单据号"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="vipName" |
| | | label="操作会员"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="note" |
| | | label="备注"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="ip" |
| | | label="IP地址"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <el-row class="paginationStyle" > |
| | | <el-pagination background |
| | | @size-change="changePageSize" |
| | | @current-change="changeCurrentPage" |
| | | :current-page="table.currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="table.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="table.total"> |
| | | </el-pagination> |
| | | </el-row> |
| | | |
| | | </div> |
| | | </body> |
| | | <script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> |
| | | <script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script> |
| | | <script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script> |
| | | <script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script> |
| | | <script type="text/javascript" th:inline="javascript"> |
| | | |
| | | var vue = new Vue({ |
| | | el: '#app', |
| | | data: { |
| | | table:{ |
| | | rows:[], |
| | | total:0, |
| | | pageSize:10, |
| | | currentPage:1, |
| | | }, |
| | | form:{ |
| | | name:null, |
| | | datetimeArr:'', |
| | | payMethod:'', |
| | | flowType:'', |
| | | orderNo:'', |
| | | oprationMan:'', |
| | | queryKey:'', |
| | | shopId:'', |
| | | }, |
| | | userList: [], |
| | | height:'calc(100vh - 240px)', |
| | | functionList:[], |
| | | btnList:[], |
| | | shopList:[{id:0,shopShortName:'全部'}], |
| | | }, |
| | | created: function () { |
| | | let _this=this; |
| | | //用户列表 |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | url: basePath + '/admin/allUser', |
| | | callback: function (data) { |
| | | _this.userList = data.rows; |
| | | } |
| | | }); |
| | | //获取枚举列表 |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | url: basePath + '/common/data/getEnums', |
| | | data:{"enumCodes":["operationFunction","operationButton"]}, |
| | | callback: function (data) { |
| | | _this.btnList = data.data.operationButton; |
| | | _this.functionList = data.data.operationFunction; |
| | | _this.form.opeFunction=_this.functionList[0].value; |
| | | } |
| | | }); |
| | | |
| | | //加载门店 |
| | | AjaxProxy.requst({ |
| | | app:_this, |
| | | url:basePath+"/admin/shopInfo/findAll", |
| | | callback:function (data) { |
| | | data.rows.forEach(shop=>{ |
| | | _this.shopList.push(shop); |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | |
| | | this.loadData(); |
| | | window.addEventListener("keydown", this.keydown); |
| | | }, |
| | | methods: { |
| | | changePageSize(val) { |
| | | this.table.pageSize = val; |
| | | this.loadData(); |
| | | }, |
| | | changeCurrentPage(val) { |
| | | this.table.currentPage = val; |
| | | this.loadData(); |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | sortChange:function (column){ |
| | | if(column.order){ |
| | | if(column.order.indexOf("desc")){ |
| | | this.form.order="desc"; |
| | | }else{ |
| | | this.form.order="asc"; |
| | | } |
| | | this.form.sort=column.prop; |
| | | this.loadData(); |
| | | } |
| | | }, |
| | | loadData:function(){ |
| | | let _this = this; |
| | | let data=_this.getRequestParam(); |
| | | data.pageSize=_this.table.pageSize; |
| | | data.pageNum=_this.table.currentPagey56u; |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | data:data, |
| | | url: basePath + '/admin/operation/getOperation', |
| | | callback: function (data) { |
| | | _this.table.rows = data.rows; |
| | | _this.table.total=data.total; |
| | | } |
| | | }); |
| | | }, |
| | | getRequestParam(){ |
| | | let _this = this; |
| | | let data= { |
| | | shopId:_this.form.shopId, |
| | | opeUserId:_this.form.opeUserId, |
| | | vipQueryKey:_this.form.vipQueryKey, |
| | | opeFunction:_this.form.opeFunction, |
| | | opeBut:_this.form.opeBut, |
| | | billNo:_this.form.billNo, |
| | | ip:_this.form.ip, |
| | | note:_this.form.note, |
| | | startTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[0]).format("YYYY-MM-DD HH:mm"):'', |
| | | endTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[1]).format("YYYY-MM-DD HH:mm"):'', |
| | | order:_this.form.order, |
| | | } |
| | | console.log(data); |
| | | return data; |
| | | }, |
| | | search:function(){ |
| | | this.table.currentPage=1; |
| | | this.loadData(); |
| | | }, |
| | | keydown(evt){ |
| | | if(evt.keyCode==13) { |
| | | this.search(); |
| | | } |
| | | }, |
| | | |
| | | //导出 |
| | | exportExcel(){ |
| | | window.location.href=basePath+"/admin/operation/exportExcel?"+MTools.jsonToUrlParam(this.getRequestParam()); |
| | | } |
| | | |
| | | } |
| | | }); |
| | | |
| | | |
| | | </script> |
| | | </body> |
| | | </html> |