【admin】新增#1、福源家政、无师傅、无优惠券、无分销
commit
150e62aa25
|
@ -0,0 +1,12 @@
|
|||
/.idea
|
||||
/.vscode
|
||||
target/
|
||||
/likeadmin-java.iml
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
application-dev.yml
|
||||
application-pro.yml
|
||||
application-prod.yml
|
||||
application-test.yml
|
||||
logs/
|
||||
www/
|
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<!-- 父工程 -->
|
||||
<parent>
|
||||
<artifactId>housekeeping-java</artifactId>
|
||||
<groupId>org.hcy</groupId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<!-- 模块信息 -->
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>admin</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<!-- 项目管理 -->
|
||||
<dependencies>
|
||||
<!-- 公共依赖 -->
|
||||
<dependency>
|
||||
<groupId>org.hcy</groupId>
|
||||
<artifactId>common</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hcy</groupId>
|
||||
<artifactId>generator</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<!-- Quartz-Scheduler -->
|
||||
<dependency>
|
||||
<groupId>org.quartz-scheduler</groupId>
|
||||
<artifactId>quartz</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<!-- 插件管理 -->
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,28 @@
|
|||
package com.hcy.admin;
|
||||
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
/**
|
||||
* 启动器
|
||||
*/
|
||||
@Configuration
|
||||
@ComponentScan(basePackages = {"com.hcy"})
|
||||
@MapperScan(basePackages = {"com.hcy.*.mapper"})
|
||||
@EnableTransactionManagement
|
||||
@EnableScheduling
|
||||
@SpringBootApplication(exclude = {RedisRepositoriesAutoConfiguration.class})
|
||||
public class AdminApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(AdminApplication.class, args);
|
||||
System.out.println("(♥◠‿◠)ノ゙ housekeeping启动成功 ლ(´ڡ`ლ)゙");
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,156 @@
|
|||
package com.hcy.admin;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.hcy.admin.config.AdminConfig;
|
||||
import com.hcy.admin.service.system.ISystemAuthAdminService;
|
||||
import com.hcy.admin.service.system.ISystemAuthPermService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.enums.HttpEnum;
|
||||
import com.hcy.common.utils.RedisUtil;
|
||||
import com.hcy.common.utils.ToolsUtil;
|
||||
import com.hcy.common.utils.YmlUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 拦截器
|
||||
*/
|
||||
@Component
|
||||
public class AdminInterceptor implements HandlerInterceptor {
|
||||
|
||||
@Resource
|
||||
ISystemAuthAdminService iSystemAuthAdminService;
|
||||
|
||||
@Resource
|
||||
ISystemAuthPermService iSystemAuthPermService;
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
// 404拦截
|
||||
response.setContentType("application/json;charset=utf-8");
|
||||
if (response.getStatus() == 404) {
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.REQUEST_404_ERROR.getCode(), HttpEnum.REQUEST_404_ERROR.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
|
||||
// 判断请求接口
|
||||
if (!(handler instanceof HandlerMethod)) {
|
||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||
}
|
||||
|
||||
// 路由转权限
|
||||
String prefix = "/api/";
|
||||
String route = request.getRequestURI().replaceFirst(prefix, "");
|
||||
String auths = route.replace("/", ":");
|
||||
|
||||
// 免登录接口
|
||||
List<String> notLoginUri = Arrays.asList(AdminConfig.notLoginUri);
|
||||
if (notLoginUri.contains(auths)) {
|
||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||
}
|
||||
|
||||
// 演示环境拦截
|
||||
String env = YmlUtil.get("like.production");
|
||||
if (org.apache.commons.lang3.StringUtils.isNotEmpty(env) && env.equals("true")) {
|
||||
List<String> ignoreUrl = Arrays.asList("system:login", "system:logout");
|
||||
if (!auths.contains("list") && request.getMethod().equals("POST") && !ignoreUrl.contains(auths)) {
|
||||
String message = "演示环境不支持修改数据,请下载源码本地部署体验";
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.NO_PERMISSION.getCode(), message);
|
||||
response.getWriter().print(com.alibaba.fastjson2.JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Token是否为空
|
||||
String token = request.getHeader("token");
|
||||
if (StringUtils.isBlank(token)) {
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_EMPTY.getCode(), HttpEnum.TOKEN_EMPTY.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
|
||||
// Token是否过期
|
||||
token = AdminConfig.backstageTokenKey + token;
|
||||
if (!RedisUtil.exists(token)) {
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
|
||||
// 用户信息缓存
|
||||
String uid = RedisUtil.get(token).toString();
|
||||
if (!RedisUtil.hExists(AdminConfig.backstageManageKey, uid)) {
|
||||
iSystemAuthAdminService.cacheAdminUserByUid(Integer.parseInt(uid));
|
||||
}
|
||||
|
||||
// 校验用户被删除
|
||||
Map<String, String> map = ToolsUtil.jsonToMap(RedisUtil.hGet(AdminConfig.backstageManageKey, uid).toString());
|
||||
if (map == null || map.get("isDelete").equals("1")) {
|
||||
RedisUtil.del(token);
|
||||
RedisUtil.hDel(AdminConfig.backstageManageKey, uid);
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
|
||||
// 校验用户被禁用
|
||||
if (map.get("isDisable").equals("1")) {
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.LOGIN_DISABLE_ERROR.getCode(), HttpEnum.LOGIN_DISABLE_ERROR.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
|
||||
// 令牌剩余30分钟自动续签
|
||||
if (RedisUtil.ttl(token) < 1800) {
|
||||
RedisUtil.expire(token, 7200L);
|
||||
}
|
||||
|
||||
// 写入本地线程
|
||||
AdminThreadLocal.put("adminId", uid);
|
||||
AdminThreadLocal.put("roleId", map.get("role"));
|
||||
AdminThreadLocal.put("username", map.get("username"));
|
||||
AdminThreadLocal.put("nickname", map.get("nickname"));
|
||||
|
||||
// 免权限验证接口
|
||||
List<String> notAuthUri = Arrays.asList(AdminConfig.notAuthUri);
|
||||
if (notAuthUri.contains(auths) || Integer.parseInt(uid) == 1) {
|
||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||
}
|
||||
|
||||
// 校验角色权限是否存在
|
||||
String roleId = map.get("role");
|
||||
if (!RedisUtil.hExists(AdminConfig.backstageRolesKey, roleId)) {
|
||||
iSystemAuthPermService.cacheRoleMenusByRoleId(Integer.parseInt(roleId));
|
||||
}
|
||||
|
||||
// 验证是否有权限操作
|
||||
// roleId=0为系统管理员角色的id,配置了所有的权限标识
|
||||
String adminMenus = RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString();
|
||||
String menus = RedisUtil.hGet(AdminConfig.backstageRolesKey, roleId).toString();
|
||||
List<String> list = Arrays.asList(adminMenus.split(","));
|
||||
if(!list.isEmpty() && list.contains(auths) && !Arrays.asList(menus.split(",")).contains(auths)){
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.NO_PERMISSION.getCode(), HttpEnum.NO_PERMISSION.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
|
||||
// 验证通过继续操作
|
||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||
AdminThreadLocal.remove();
|
||||
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package com.hcy.admin;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
/**
|
||||
* 本地线程
|
||||
*/
|
||||
public class AdminThreadLocal {
|
||||
|
||||
/**
|
||||
* 构造方法
|
||||
*/
|
||||
public AdminThreadLocal() {}
|
||||
|
||||
/**
|
||||
* 取得本地线程对象
|
||||
*/
|
||||
private static final java.lang.ThreadLocal<LinkedHashMap<String, Object>> MY_LOCAL = new java.lang.ThreadLocal<>();
|
||||
|
||||
/**
|
||||
* 写入本地线程
|
||||
*/
|
||||
public static void put(String key, Object val) {
|
||||
LinkedHashMap<String, Object> map = MY_LOCAL.get();
|
||||
if (map == null) {
|
||||
map = new LinkedHashMap<>();
|
||||
}
|
||||
|
||||
map.put(key, val);
|
||||
MY_LOCAL.set(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取本地线程
|
||||
*/
|
||||
public static Object get(String key) {
|
||||
return MY_LOCAL.get().getOrDefault(key, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取管理员ID
|
||||
*/
|
||||
public static Integer getAdminId() {
|
||||
String adminId = AdminThreadLocal.get("adminId").toString();
|
||||
if (adminId.equals("")) {
|
||||
return 0;
|
||||
}
|
||||
return Integer.parseInt(adminId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色ID
|
||||
*/
|
||||
public static Integer getRoleId() {
|
||||
String roleId = AdminThreadLocal.get("roleId").toString();
|
||||
if (roleId.equals("")) {
|
||||
return 0;
|
||||
}
|
||||
return Integer.parseInt(roleId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除本地线程
|
||||
*/
|
||||
public static void remove() {
|
||||
MY_LOCAL.remove();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package com.hcy.admin.config;
|
||||
|
||||
/**
|
||||
* 后台公共配置
|
||||
*/
|
||||
public class AdminConfig {
|
||||
|
||||
// 管理缓存键
|
||||
public static final String backstageManageKey = "backstage:manage";
|
||||
|
||||
// 角色缓存键
|
||||
public static final String backstageRolesKey = "backstage:roles";
|
||||
|
||||
// 令牌缓存键
|
||||
public static final String backstageTokenKey = "backstage:token:";
|
||||
|
||||
// 令牌的集合
|
||||
public static final String backstageTokenSet = "backstage:token:set:";
|
||||
|
||||
// 免登录验证
|
||||
public static String[] notLoginUri = new String[]{
|
||||
"system:login", // 登录接口
|
||||
"common:index:config", // 配置接口
|
||||
};
|
||||
|
||||
// 免权限验证
|
||||
public static String[] notAuthUri = new String[]{
|
||||
"system:logout", // 退出登录
|
||||
"system:menu:menus", // 系统菜单
|
||||
"system:menu:route", // 菜单路由
|
||||
"system:admin:upInfo", // 管理员更新
|
||||
"system:admin:self", // 管理员信息
|
||||
"system:role:all", // 所有角色
|
||||
"system:post:all", // 所有岗位
|
||||
"system:dept:list", // 所有部门
|
||||
"setting:dict:type:all", // 所有字典类型
|
||||
"setting:dict:data:all", // 所有字典数据
|
||||
"article:cate:all", // 所有文章分类
|
||||
};
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.hcy.admin.config;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* MybatisPlus配置
|
||||
*/
|
||||
@Configuration
|
||||
public class MybatisPlusConfig {
|
||||
|
||||
/**
|
||||
* 分页插件集成
|
||||
*/
|
||||
@Bean
|
||||
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
|
||||
return interceptor;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package com.hcy.admin.config;
|
||||
|
||||
import com.hcy.admin.AdminInterceptor;
|
||||
import com.hcy.common.config.GlobalConfig;
|
||||
import com.hcy.common.utils.YmlUtil;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Web配置
|
||||
*/
|
||||
@Configuration
|
||||
public class WebMvcConfig implements WebMvcConfigurer {
|
||||
|
||||
@Resource
|
||||
AdminInterceptor adminInterceptor;
|
||||
|
||||
/**
|
||||
* 配置允许跨域
|
||||
*/
|
||||
@Override
|
||||
public void addCorsMappings(CorsRegistry registry) {
|
||||
registry.addMapping("/**")
|
||||
.allowedOrigins("*")
|
||||
.allowedHeaders("*")
|
||||
.allowedMethods("GET", "POST", "DELETE", "PUT")
|
||||
.maxAge(3600);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录拦截器
|
||||
*/
|
||||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
registry.addInterceptor(adminInterceptor).addPathPatterns("/**");
|
||||
}
|
||||
|
||||
/**
|
||||
* 资源目录映射
|
||||
*/
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
String directory = YmlUtil.get("like.upload-directory");
|
||||
if (directory == null || directory.equals("")) {
|
||||
directory = GlobalConfig.uploadDirectory;
|
||||
}
|
||||
|
||||
registry.addResourceHandler("/"+ GlobalConfig.publicPrefix +"/**")
|
||||
.addResourceLocations("file:" + directory);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package com.hcy.admin.config.aop;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface Log {
|
||||
|
||||
/**
|
||||
* 模块
|
||||
* @return String
|
||||
*/
|
||||
String title() default "";
|
||||
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
package com.hcy.admin.config.aop;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.common.entity.system.SystemLogOperate;
|
||||
import com.hcy.common.mapper.system.SystemLogOperateMapper;
|
||||
import com.hcy.common.utils.IpUtil;
|
||||
import com.hcy.common.utils.RequestUtil;
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.AfterThrowing;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.aspectj.lang.reflect.MethodSignature;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@Aspect
|
||||
@Component
|
||||
public class LogAspect {
|
||||
|
||||
@Resource
|
||||
SystemLogOperateMapper systemLogOperateMapper;
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(LogAspect.class);
|
||||
private Long beginTime = 0L;
|
||||
|
||||
/**
|
||||
* 声明切面点拦截那些类
|
||||
*/
|
||||
@Pointcut("@annotation(com.hcy.admin.config.aop.Log)")
|
||||
private void pointCutMethodController() {}
|
||||
|
||||
/**
|
||||
* 环绕通知前后增强
|
||||
*/
|
||||
@Around(value = "pointCutMethodController()")
|
||||
public Object doAroundService(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||
// 开始时间
|
||||
this.beginTime = System.currentTimeMillis();
|
||||
// 执行方法
|
||||
Object result = joinPoint.proceed();
|
||||
// 保存日志
|
||||
recordLog(joinPoint, null);
|
||||
// 返回结果
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 拦截异常操作
|
||||
*
|
||||
* @param joinPoint 切点
|
||||
* @param e 异常
|
||||
*/
|
||||
@AfterThrowing(value = "@annotation(controllerLog)", throwing = "e")
|
||||
public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) {
|
||||
recordLog(joinPoint, e);
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录日志信息
|
||||
*
|
||||
* @param joinPointObj joinPoint
|
||||
* @param e Exception 错误异常
|
||||
*/
|
||||
private void recordLog(Object joinPointObj, final Exception e) {
|
||||
try {
|
||||
long endTime = System.currentTimeMillis();
|
||||
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||
if (requestAttributes != null) {
|
||||
// 取得请求对象
|
||||
HttpServletRequest request = requestAttributes.getRequest();
|
||||
|
||||
// 获取当前的用户
|
||||
Integer adminId = AdminThreadLocal.getAdminId();
|
||||
|
||||
// 获取日志注解
|
||||
ProceedingJoinPoint joinPoint = (ProceedingJoinPoint) joinPointObj;
|
||||
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
||||
Method method = signature.getMethod();
|
||||
Log logAnnotation = method.getAnnotation(Log.class);
|
||||
|
||||
// 方法名称
|
||||
String className = joinPoint.getTarget().getClass().getName();
|
||||
String methodName = joinPoint.getSignature().getName();
|
||||
|
||||
// 获取请求参数
|
||||
String queryString = request.getQueryString();
|
||||
Object[] args = joinPoint.getArgs();
|
||||
String params = "";
|
||||
if(args.length>0){
|
||||
if("POST".equals(request.getMethod())){
|
||||
params = JSON.toJSONString(args);
|
||||
} else if("GET".equals(request.getMethod())){
|
||||
params = queryString;
|
||||
}
|
||||
}
|
||||
|
||||
// 错误信息
|
||||
String error = "";
|
||||
int status = 1;
|
||||
if (e != null) {
|
||||
error = e.getMessage();
|
||||
status = 2; // 1=成功, 2=失败
|
||||
}
|
||||
|
||||
// 数据库日志
|
||||
SystemLogOperate model = new SystemLogOperate();
|
||||
model.setAdminId(adminId);
|
||||
model.setTitle(logAnnotation.title());
|
||||
model.setIp(IpUtil.getIpAddress());
|
||||
model.setType(request.getMethod());
|
||||
model.setMethod(className + "." + methodName + "()");
|
||||
model.setUrl(RequestUtil.route());
|
||||
model.setArgs(params);
|
||||
model.setError(error);
|
||||
model.setStatus(status);
|
||||
model.setStartTime(this.beginTime / 1000);
|
||||
model.setEndTime(endTime / 1000);
|
||||
model.setTaskTime(endTime - this.beginTime);
|
||||
model.setCreateTime(System.currentTimeMillis() / 1000);
|
||||
systemLogOperateMapper.insert(model);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
log.error("异常信息:{}", ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package com.hcy.admin.config.quartz;
|
||||
|
||||
import org.quartz.CronExpression;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 表达式工具
|
||||
*/
|
||||
public class CronUtils {
|
||||
|
||||
/**
|
||||
* 验证表达式是否有效
|
||||
*
|
||||
* @param cronExpression 表达式
|
||||
* @return true=有效,false=无效
|
||||
*/
|
||||
public static boolean isValid(String cronExpression) {
|
||||
return CronExpression.isValidExpression(cronExpression);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证表达式消息无效给出有效性
|
||||
*
|
||||
* @param cronExpression 表达式
|
||||
* @return null=有效, 其它=无效时的错误描述
|
||||
*/
|
||||
public static String invalidMessage(String cronExpression) {
|
||||
try {
|
||||
new CronExpression(cronExpression);
|
||||
return null;
|
||||
} catch (ParseException pe) {
|
||||
return pe.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 下一个执行时间点
|
||||
*
|
||||
* @param cronExpression n表达式
|
||||
* @return Date下次表达式执行时间
|
||||
*/
|
||||
public static Date nextExecution(String cronExpression)
|
||||
{
|
||||
try {
|
||||
CronExpression cron = new CronExpression(cronExpression);
|
||||
return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis()));
|
||||
} catch (ParseException e) {
|
||||
throw new IllegalArgumentException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,150 @@
|
|||
package com.hcy.admin.config.quartz;
|
||||
import com.hcy.common.entity.crontab.Crontab;
|
||||
import com.hcy.common.utils.SpringUtil;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 执行工具
|
||||
*/
|
||||
public class InvokeUtils {
|
||||
|
||||
/**
|
||||
* 执行方法
|
||||
*
|
||||
* @param crontab 系统任务
|
||||
*/
|
||||
public static void invokeMethod(Crontab crontab) throws Exception {
|
||||
String invokeTarget = crontab.getCommand();
|
||||
String beanName = getBeanName(invokeTarget);
|
||||
String methodName = getMethodName(invokeTarget);
|
||||
List<Object[]> methodParams = getMethodParams(invokeTarget);
|
||||
|
||||
if (!isValidClassName(beanName)) {
|
||||
Object bean = SpringUtil.getBean(beanName);
|
||||
invokeMethod(bean, methodName, methodParams);
|
||||
} else {
|
||||
Object bean = Class.forName(beanName).newInstance();
|
||||
invokeMethod(bean, methodName, methodParams);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用任务方法
|
||||
*
|
||||
* @param bean 目标对象
|
||||
* @param methodName 方法名称
|
||||
* @param methodParams 方法参数
|
||||
*/
|
||||
private static void invokeMethod(Object bean, String methodName, List<Object[]> methodParams)
|
||||
throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException,
|
||||
InvocationTargetException {
|
||||
if (StringUtil.isNotNull(methodParams) && methodParams.size() > 0) {
|
||||
Method method = bean.getClass().getMethod(methodName, getMethodParamsType(methodParams));
|
||||
method.invoke(bean, getMethodParamsValue(methodParams));
|
||||
} else {
|
||||
Method method = bean.getClass().getMethod(methodName);
|
||||
method.invoke(bean);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验是否为为class包名
|
||||
*
|
||||
* @param invokeTarget 名称
|
||||
* @return true是 false否
|
||||
*/
|
||||
public static boolean isValidClassName(String invokeTarget) {
|
||||
return StringUtil.countMatches(invokeTarget, ".") > 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取bean名称
|
||||
*
|
||||
* @param invokeTarget 目标字符串
|
||||
* @return bean名称
|
||||
*/
|
||||
public static String getBeanName(String invokeTarget) {
|
||||
String beanName = StringUtil.substringBefore(invokeTarget, "(");
|
||||
return StringUtil.substringBeforeLast(beanName, ".");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取bean方法
|
||||
*
|
||||
* @param invokeTarget 目标字符串
|
||||
* @return method方法
|
||||
*/
|
||||
public static String getMethodName(String invokeTarget) {
|
||||
String methodName = StringUtil.substringBefore(invokeTarget, "(");
|
||||
return StringUtil.substringAfterLast(methodName, ".");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取method方法参数相关列表
|
||||
*
|
||||
* @param invokeTarget 目标字符串
|
||||
* @return method方法相关参数列表
|
||||
*/
|
||||
public static List<Object[]> getMethodParams(String invokeTarget) {
|
||||
String methodStr = StringUtil.substringBetween(invokeTarget, "(", ")");
|
||||
if (StringUtil.isEmpty(methodStr)) {
|
||||
return null;
|
||||
}
|
||||
String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)");
|
||||
List<Object[]> clazz = new LinkedList<>();
|
||||
for (String methodParam : methodParams) {
|
||||
String str = StringUtil.trimToEmpty(methodParam);
|
||||
if (StringUtil.startsWithAny(str, "'", "\"")) {
|
||||
clazz.add(new Object[]{StringUtil.substring(str, 1, str.length() - 1), String.class});
|
||||
} else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str)) {
|
||||
clazz.add(new Object[]{Boolean.valueOf(str), Boolean.class});
|
||||
} else if (StringUtil.endsWith(str, "L")) {
|
||||
clazz.add(new Object[]{Long.valueOf(StringUtil.substring(str, 0, str.length() - 1)), Long.class});
|
||||
} else if (StringUtil.endsWith(str, "D")) {
|
||||
clazz.add(new Object[]{Double.valueOf(StringUtil.substring(str, 0, str.length() - 1)), Double.class});
|
||||
} else {
|
||||
clazz.add(new Object[]{Integer.valueOf(str), Integer.class});
|
||||
}
|
||||
}
|
||||
return clazz;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取参数类型
|
||||
*
|
||||
* @param methodParams 参数相关列表
|
||||
* @return 参数类型列表
|
||||
*/
|
||||
public static Class<?>[] getMethodParamsType(List<Object[]> methodParams) {
|
||||
Class<?>[] clazz = new Class<?>[methodParams.size()];
|
||||
int index = 0;
|
||||
for (Object[] os : methodParams)
|
||||
{
|
||||
clazz[index] = (Class<?>) os[1];
|
||||
index++;
|
||||
}
|
||||
return clazz;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取参数值
|
||||
*
|
||||
* @param methodParams 参数相关列表
|
||||
* @return 参数值列表
|
||||
*/
|
||||
public static Object[] getMethodParamsValue(List<Object[]> methodParams) {
|
||||
Object[] clazz = new Object[methodParams.size()];
|
||||
int index = 0;
|
||||
for (Object[] os : methodParams) {
|
||||
clazz[index] = os[0];
|
||||
index++;
|
||||
}
|
||||
return clazz;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,104 @@
|
|||
package com.hcy.admin.config.quartz;
|
||||
|
||||
import com.hcy.admin.config.quartz.exceution.QuartzDisExecution;
|
||||
import com.hcy.admin.config.quartz.exceution.QuartzJobExecution;
|
||||
import com.hcy.common.entity.crontab.Crontab;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import org.quartz.*;
|
||||
|
||||
/**
|
||||
* 计划任务工具
|
||||
*/
|
||||
public class QuartzUtils {
|
||||
|
||||
/**
|
||||
* 得到quartz任务类
|
||||
*
|
||||
* @param crontab 执行计划
|
||||
* @return 具体执行任务类
|
||||
*/
|
||||
private static Class<? extends Job> getQuartzJobClass(Crontab crontab) {
|
||||
boolean isConcurrent = crontab.getConcurrent().equals(0);
|
||||
return isConcurrent ? QuartzJobExecution.class : QuartzDisExecution.class;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建任务对象Key
|
||||
*
|
||||
* @param jobId (任务ID)
|
||||
* @param jobGroup (任务分组)
|
||||
* @return JobKey
|
||||
*/
|
||||
public static JobKey getJobKey(Integer jobId, String jobGroup) {
|
||||
return JobKey.jobKey(TaskConstants.TASK_CLASS_NAME + jobId, jobGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建触发对象Key
|
||||
*
|
||||
* @param jobId (任务ID)
|
||||
* @param jobGroup (任务分组)
|
||||
* @return TriggerKey
|
||||
*/
|
||||
public static TriggerKey getTriggerKey(Integer jobId, String jobGroup) {
|
||||
return TriggerKey.triggerKey(TaskConstants.TASK_PROPERTIES + jobId, jobGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建定时任务
|
||||
*
|
||||
* @param scheduler 调度器
|
||||
* @param job 任务
|
||||
* @throws SchedulerException 调度异常
|
||||
*/
|
||||
public static void createScheduleJob(Scheduler scheduler, Crontab job) throws SchedulerException {
|
||||
Integer jobId = job.getId();
|
||||
String jobGroup = job.getTypes();
|
||||
String expression = job.getRules();
|
||||
|
||||
// 构建任务
|
||||
Class<? extends Job> jobClass = getQuartzJobClass(job);
|
||||
JobDetail jobDetail = JobBuilder.newJob(jobClass)
|
||||
.withIdentity(getJobKey(jobId, jobGroup))
|
||||
.build();
|
||||
|
||||
// 构建时间
|
||||
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(expression);
|
||||
switch (job.getStrategy()) {
|
||||
case 1: // 立即执行
|
||||
cronScheduleBuilder = cronScheduleBuilder.withMisfireHandlingInstructionIgnoreMisfires();
|
||||
break;
|
||||
case 2: // 执行一次
|
||||
cronScheduleBuilder = cronScheduleBuilder.withMisfireHandlingInstructionFireAndProceed();
|
||||
break;
|
||||
case 3: // 放弃执行
|
||||
cronScheduleBuilder = cronScheduleBuilder.withMisfireHandlingInstructionDoNothing();
|
||||
break;
|
||||
}
|
||||
|
||||
// 注入参数
|
||||
jobDetail.getJobDataMap().put(TaskConstants.TASK_PROPERTIES, job);
|
||||
|
||||
// 构建目标
|
||||
CronTrigger trigger = TriggerBuilder.newTrigger()
|
||||
.withIdentity(getTriggerKey(jobId, jobGroup))
|
||||
.withSchedule(cronScheduleBuilder)
|
||||
.build();
|
||||
|
||||
// 如果存在则删除
|
||||
if (scheduler.checkExists(getJobKey(jobId, jobGroup))) {
|
||||
scheduler.deleteJob(getJobKey(jobId, jobGroup));
|
||||
}
|
||||
|
||||
// 如果过期则调度
|
||||
if (StringUtil.isNotNull(CronUtils.nextExecution(job.getRules()))) {
|
||||
scheduler.scheduleJob(jobDetail, trigger);
|
||||
}
|
||||
|
||||
// 如果暂停则停止
|
||||
if (!job.getStatus().equals(TaskConstants.STATUS_RUN)) {
|
||||
scheduler.pauseJob(getJobKey(jobId, jobGroup));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.hcy.admin.config.quartz;
|
||||
|
||||
/**
|
||||
* 计划任务常量
|
||||
*/
|
||||
public class TaskConstants {
|
||||
|
||||
/** 执行任务名 */
|
||||
public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME";
|
||||
|
||||
/** 执行目标键 */
|
||||
public static final String TASK_PROPERTIES = "TASK_PROPERTIES";
|
||||
|
||||
/** 状态: 运行 */
|
||||
public static final Integer STATUS_RUN = 1;
|
||||
|
||||
/** 状态: 失败 */
|
||||
public static final Integer STATUS_FAIL = 2;
|
||||
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
package com.hcy.admin.config.quartz.exceution;
|
||||
|
||||
import com.hcy.admin.config.quartz.TaskConstants;
|
||||
import com.hcy.common.entity.crontab.Crontab;
|
||||
import com.hcy.common.mapper.crontab.CrontabMapper;
|
||||
import com.hcy.common.utils.SpringUtil;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
public abstract class AbstractQuartzJob implements Job {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class);
|
||||
|
||||
/**
|
||||
* 线程本地变量
|
||||
*/
|
||||
private static final ThreadLocal<Long> threadLocal = new ThreadLocal<>();
|
||||
|
||||
/**
|
||||
* 执行
|
||||
*
|
||||
* @param context 上下文
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext context) {
|
||||
Crontab crontab = new Crontab();
|
||||
BeanUtils.copyProperties(context.getMergedJobDataMap().get(TaskConstants.TASK_PROPERTIES), crontab);
|
||||
try {
|
||||
before();
|
||||
doExecute(context, crontab);
|
||||
after(crontab, null);
|
||||
} catch (Exception e) {
|
||||
log.error("任务执行异常:", e);
|
||||
after(crontab, e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行前
|
||||
*/
|
||||
protected void before() {
|
||||
threadLocal.set(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行后
|
||||
*
|
||||
* @param crontab 系统计划任务
|
||||
*/
|
||||
protected void after(Crontab crontab, Exception e)
|
||||
{
|
||||
long startTime = threadLocal.get();
|
||||
long endTime = System.currentTimeMillis();
|
||||
threadLocal.remove();
|
||||
|
||||
crontab.setError("");
|
||||
crontab.setStartTime(startTime / 1000);
|
||||
crontab.setEndTime(endTime / 1000);
|
||||
crontab.setTaskTime(endTime - startTime);
|
||||
if (StringUtil.isNotNull(e)) {
|
||||
crontab.setError(e.getMessage());
|
||||
crontab.setStatus(TaskConstants.STATUS_FAIL);
|
||||
}
|
||||
|
||||
SpringUtil.getBean(CrontabMapper.class).updateById(crontab);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行方法
|
||||
*
|
||||
* @param context 工作执行上下文对象
|
||||
* @param sysJob 系统计划任务
|
||||
* @throws Exception 执行过程中的异常
|
||||
*/
|
||||
protected abstract void doExecute(JobExecutionContext context, Crontab sysJob) throws Exception;
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.hcy.admin.config.quartz.exceution;
|
||||
|
||||
import com.hcy.admin.config.quartz.InvokeUtils;
|
||||
import com.hcy.common.entity.crontab.Crontab;
|
||||
import com.hcy.common.mapper.crontab.CrontabMapper;
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 禁止并发任务
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class QuartzDisExecution extends AbstractQuartzJob {
|
||||
|
||||
@Resource
|
||||
private CrontabMapper crontabMapper;
|
||||
|
||||
@Override
|
||||
protected void doExecute(JobExecutionContext context, Crontab crontab) throws Exception {
|
||||
Long startTime = System.currentTimeMillis();
|
||||
InvokeUtils.invokeMethod(crontab);
|
||||
Long endTime = System.currentTimeMillis();
|
||||
if (endTime - startTime > crontab.getTaskMaxTime()){
|
||||
crontab.setTaskMaxTime(endTime - startTime);
|
||||
crontabMapper.updateById(crontab);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.hcy.admin.config.quartz.exceution;
|
||||
|
||||
import com.hcy.admin.config.quartz.InvokeUtils;
|
||||
import com.hcy.common.entity.crontab.Crontab;
|
||||
import org.quartz.JobExecutionContext;
|
||||
|
||||
/**
|
||||
* 允许并发任务
|
||||
*/
|
||||
public class QuartzJobExecution extends AbstractQuartzJob {
|
||||
|
||||
@Override
|
||||
protected void doExecute(JobExecutionContext context, Crontab crontab) throws Exception {
|
||||
InvokeUtils.invokeMethod(crontab);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package com.hcy.admin.config.swagger;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import springfox.documentation.builders.ApiInfoBuilder;
|
||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||
import springfox.documentation.service.ApiInfo;
|
||||
import springfox.documentation.spi.DocumentationType;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||
|
||||
/**
|
||||
* @author slien.zuo
|
||||
*/
|
||||
@Configuration
|
||||
@EnableSwagger2
|
||||
public class SwaggerConfig {
|
||||
@Bean
|
||||
public Docket customDocket() {
|
||||
return new Docket(DocumentationType.SWAGGER_2)
|
||||
.apiInfo(apiInfo())
|
||||
.enable(true) //禁用swagger
|
||||
.select()
|
||||
.apis(RequestHandlerSelectors.basePackage("com.hcy.admin.controller")) // 指定路径
|
||||
.build();
|
||||
}
|
||||
|
||||
private ApiInfo apiInfo() {
|
||||
return new ApiInfoBuilder()
|
||||
.title("上门预约")
|
||||
.version("1.0.0")
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.hcy.admin.config.swagger;
|
||||
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||
|
||||
/**
|
||||
* @Author slien
|
||||
* @Description swagger 同步之后需要注释此配置
|
||||
* @Date 13:39 2022/10/14
|
||||
* @Param
|
||||
* @return
|
||||
**/
|
||||
//@Configuration
|
||||
public class WebSwaggerMvcConfigurer extends WebMvcConfigurationSupport {
|
||||
|
||||
/**
|
||||
* 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 需要重新指定静态资源
|
||||
*
|
||||
* @param registry
|
||||
*/
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
registry.addResourceHandler("/**").addResourceLocations(
|
||||
"classpath:/static/");
|
||||
registry.addResourceHandler("swagger-ui.html").addResourceLocations(
|
||||
"classpath:/META-INF/resources/");
|
||||
registry.addResourceHandler("/webjars/**").addResourceLocations(
|
||||
"classpath:/META-INF/resources/webjars/");
|
||||
super.addResourceHandlers(registry);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,132 @@
|
|||
package com.hcy.admin.config.wxpay;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.github.binarywang.wxpay.config.WxPayConfig;
|
||||
import com.github.binarywang.wxpay.service.WxPayService;
|
||||
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
|
||||
import com.hcy.common.entity.pay.DevPay;
|
||||
import com.hcy.common.entity.system.SystemConfig;
|
||||
import com.hcy.common.entity.wxpay.SystemWxPayConfig;
|
||||
import com.hcy.common.enums.OrderPlayTypeEnum;
|
||||
import com.hcy.common.mapper.pay.DevPayMapper;
|
||||
import com.hcy.common.mapper.system.SystemConfigMapper;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author panweiliang
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(WxPayService.class)
|
||||
@AllArgsConstructor
|
||||
public class WxPayConfiguration {
|
||||
|
||||
@Resource
|
||||
private DevPayMapper devPayMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigMapper systemConfigMapper;
|
||||
|
||||
@Bean("mpWxPayService")
|
||||
public WxPayService mpWxPayService() {
|
||||
Boolean flag = Boolean.FALSE;
|
||||
WxPayConfig payConfig = new WxPayConfig();
|
||||
DevPay devPay = devPayMapper.getEntityByPayWay(OrderPlayTypeEnum.WECHAT_PAY.getType());
|
||||
String config = devPay.getConfig();
|
||||
SystemWxPayConfig systemWxPayConfig = JSON.parseObject(config, SystemWxPayConfig.class);
|
||||
//payConfig.setAppId(StringUtils.trimToNull(systemWxPayConfig.getAppId()));
|
||||
payConfig.setAppId(StringUtils.trimToNull(this.getAppId("mp_channel")));
|
||||
payConfig.setMchId(StringUtils.trimToNull(systemWxPayConfig.getMchId()));
|
||||
payConfig.setApiV3Key(StringUtils.trimToNull(systemWxPayConfig.getPaySignKey()));
|
||||
if (StringUtils.isNotEmpty(systemWxPayConfig.getApiclientKey())) {
|
||||
payConfig.setPrivateKeyContent(StringUtils.trimToNull(systemWxPayConfig.getApiclientKey()).getBytes());
|
||||
flag = Boolean.TRUE;
|
||||
}
|
||||
if (StringUtils.isNotEmpty(systemWxPayConfig.getApiclientCert())) {
|
||||
payConfig.setPrivateCertContent(StringUtils.trimToNull(systemWxPayConfig.getApiclientCert()).getBytes());
|
||||
flag = Boolean.TRUE;
|
||||
}
|
||||
// 可以指定是否使用沙箱环境
|
||||
payConfig.setUseSandboxEnv(false);
|
||||
WxPayService wxPayService = new WxPayServiceImpl();
|
||||
if (flag) {
|
||||
wxPayService.setConfig(payConfig);
|
||||
}
|
||||
return wxPayService;
|
||||
}
|
||||
|
||||
@Bean("oaWxPayService")
|
||||
public WxPayService oaWxPayService() {
|
||||
Boolean flag = Boolean.FALSE;
|
||||
WxPayConfig payConfig = new WxPayConfig();
|
||||
DevPay devPay = devPayMapper.getEntityByPayWay(OrderPlayTypeEnum.WECHAT_PAY.getType());
|
||||
String config = devPay.getConfig();
|
||||
SystemWxPayConfig systemWxPayConfig = JSON.parseObject(config, SystemWxPayConfig.class);
|
||||
//payConfig.setAppId(StringUtils.trimToNull(systemWxPayConfig.getAppId()));
|
||||
payConfig.setAppId(StringUtils.trimToNull(this.getAppId("oa_channel")));
|
||||
payConfig.setMchId(StringUtils.trimToNull(systemWxPayConfig.getMchId()));
|
||||
payConfig.setApiV3Key(StringUtils.trimToNull(systemWxPayConfig.getPaySignKey()));
|
||||
if (StringUtils.isNotEmpty(systemWxPayConfig.getApiclientKey())) {
|
||||
payConfig.setPrivateKeyContent(StringUtils.trimToNull(systemWxPayConfig.getApiclientKey()).getBytes());
|
||||
flag = Boolean.TRUE;
|
||||
}
|
||||
if (StringUtils.isNotEmpty(systemWxPayConfig.getApiclientCert())) {
|
||||
payConfig.setPrivateCertContent(StringUtils.trimToNull(systemWxPayConfig.getApiclientCert()).getBytes());
|
||||
flag = Boolean.TRUE;
|
||||
}
|
||||
// 可以指定是否使用沙箱环境
|
||||
payConfig.setUseSandboxEnv(false);
|
||||
WxPayService wxPayService = new WxPayServiceImpl();
|
||||
if (flag) {
|
||||
wxPayService.setConfig(payConfig);
|
||||
}
|
||||
return wxPayService;
|
||||
}
|
||||
|
||||
@Bean("h5WxPayService")
|
||||
public WxPayService h5WxPayService() {
|
||||
Boolean flag = Boolean.FALSE;
|
||||
WxPayConfig payConfig = new WxPayConfig();
|
||||
DevPay devPay = devPayMapper.getEntityByPayWay(OrderPlayTypeEnum.WECHAT_PAY.getType());
|
||||
String config = devPay.getConfig();
|
||||
SystemWxPayConfig systemWxPayConfig = JSON.parseObject(config, SystemWxPayConfig.class);
|
||||
//payConfig.setAppId(StringUtils.trimToNull(systemWxPayConfig.getAppId()));
|
||||
payConfig.setAppId(StringUtils.trimToNull(this.getAppId("h5_channel")));
|
||||
payConfig.setMchId(StringUtils.trimToNull(systemWxPayConfig.getMchId()));
|
||||
payConfig.setApiV3Key(StringUtils.trimToNull(systemWxPayConfig.getPaySignKey()));
|
||||
if (StringUtils.isNotEmpty(systemWxPayConfig.getApiclientKey())) {
|
||||
payConfig.setPrivateKeyContent(StringUtils.trimToNull(systemWxPayConfig.getApiclientKey()).getBytes());
|
||||
flag = Boolean.TRUE;
|
||||
}
|
||||
if (StringUtils.isNotEmpty(systemWxPayConfig.getApiclientCert())) {
|
||||
payConfig.setPrivateCertContent(StringUtils.trimToNull(systemWxPayConfig.getApiclientCert()).getBytes());
|
||||
flag = Boolean.TRUE;
|
||||
}
|
||||
// 可以指定是否使用沙箱环境
|
||||
payConfig.setUseSandboxEnv(false);
|
||||
WxPayService wxPayService = new WxPayServiceImpl();
|
||||
if (flag) {
|
||||
wxPayService.setConfig(payConfig);
|
||||
}
|
||||
return wxPayService;
|
||||
}
|
||||
|
||||
private String getAppId(String channel) {
|
||||
List<SystemConfig> configs = systemConfigMapper.getAppId(channel);
|
||||
Map<String, String> map = new LinkedHashMap<>();
|
||||
for (SystemConfig config : configs) {
|
||||
map.put(config.getName(), config.getValue());
|
||||
}
|
||||
return map.getOrDefault("appId", "");
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.hcy.admin.config.wxpay;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* wxpay pay properties.
|
||||
*
|
||||
* @author panweiliang
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "wx.pay")
|
||||
public class WxPayProperties {
|
||||
/**
|
||||
* 订单支付后回调
|
||||
*/
|
||||
private String orderNotifyUrl;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String orderRefundNotifyUrl;
|
||||
|
||||
/**
|
||||
* 商品描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
}
|
|
@ -0,0 +1,171 @@
|
|||
package com.hcy.admin.controller;
|
||||
|
||||
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
|
||||
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
|
||||
import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult;
|
||||
import com.github.binarywang.wxpay.bean.notify.WxScanPayNotifyResult;
|
||||
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryV3Result;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.hcy.admin.service.order.IOrderService;
|
||||
import com.hcy.admin.service.refund.IOrderRefundService;
|
||||
import com.hcy.common.entity.order.Order;
|
||||
import com.hcy.common.mapper.order.OrderMapper;
|
||||
import com.hcy.common.utils.WxPayServiceUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author panweiliang
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/pay/wx")
|
||||
public class WxPayController {
|
||||
|
||||
@Resource
|
||||
private IOrderService orderService;
|
||||
|
||||
@Resource
|
||||
private IOrderRefundService refundService;
|
||||
|
||||
@Resource
|
||||
private OrderMapper orderMapper;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 查询订单(详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2)
|
||||
* 该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
|
||||
* 需要调用查询接口的情况:
|
||||
* ◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
|
||||
* ◆ 调用支付接口后,返回系统错误或未知交易状态情况;
|
||||
* ◆ 调用被扫支付API,返回USERPAYING的状态;
|
||||
* ◆ 调用关单或撤销接口API之前,需确认支付状态;
|
||||
* 接口地址:https://api.mch.weixin.qq.com/pay/orderquery
|
||||
* </pre>
|
||||
* <p>
|
||||
* 查询订单支付信息
|
||||
*
|
||||
* @param transactionId 微信订单号
|
||||
* @param outTradeNo 商户系统内部的订单号,当没提供transactionId时需要传这个。
|
||||
*/
|
||||
@GetMapping("/queryOrder")
|
||||
public WxPayOrderQueryV3Result queryOrder(@RequestParam(required = false) String transactionId,
|
||||
@RequestParam(required = false) String outTradeNo)
|
||||
throws WxPayException {
|
||||
Order order = orderService.getBySn(outTradeNo);
|
||||
return WxPayServiceUtils.wxPayService(order.getPayChannel()).queryOrderV3(transactionId, outTradeNo);
|
||||
}
|
||||
|
||||
/*@PostMapping("/queryOrder")
|
||||
public WxPayOrderQueryV3Result queryOrder(@RequestBody WxPayOrderQueryV3Request wxPayOrderQueryV3Request) throws WxPayException {
|
||||
return this.wxService.queryOrderV3(wxPayOrderQueryV3Request);
|
||||
}*/
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 关闭订单
|
||||
* 应用场景
|
||||
* 以下情况需要调用关单接口:
|
||||
* 1. 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;
|
||||
* 2. 系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。
|
||||
* 注意:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。
|
||||
* 接口地址:https://api.mch.weixin.qq.com/pay/closeorder
|
||||
* 是否需要证书: 不需要。
|
||||
* </pre>
|
||||
*
|
||||
* @param outTradeNo 商户系统内部的订单号
|
||||
* 关闭订单
|
||||
*/
|
||||
@GetMapping("/closeOrder")
|
||||
public void closeOrder(@RequestParam("outTradeNo") String outTradeNo) throws Exception {
|
||||
Order order = orderMapper.selectById(outTradeNo);
|
||||
if(order != null){
|
||||
orderMapper.deleteById(order.getId()); // 将超时未付款订单删除
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* //关闭订单
|
||||
@Deprecated
|
||||
@PostMapping("/closeOrder")
|
||||
public void closeOrder(@RequestBody WxPayOrderCloseRequest wxPayOrderCloseRequest) throws WxPayException {
|
||||
this.wxService.closeOrder(wxPayOrderCloseRequest);
|
||||
}*/
|
||||
|
||||
/* *//**
|
||||
* <pre>
|
||||
* 微信支付-申请退款
|
||||
* 详见 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
|
||||
* 接口链接:https://api.mch.weixin.qq.com/secapi/pay/refund
|
||||
* </pre>
|
||||
*
|
||||
* @param request 请求对象
|
||||
* @return 退款操作结果
|
||||
*//*
|
||||
@PostMapping("/refund")
|
||||
public WxPayRefundV3Result refund(@RequestBody WxPayRefundV3Request request) throws WxPayException {
|
||||
return this.wxService.refundV3(request);
|
||||
}*/
|
||||
|
||||
/* */
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 微信支付-查询退款
|
||||
* 应用场景:
|
||||
* 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,
|
||||
* 银行卡支付的退款3个工作日后重新查询退款状态。
|
||||
* 详见 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_5
|
||||
* 接口链接:https://api.mch.weixin.qq.com/pay/refundquery
|
||||
* </pre>
|
||||
* 以下四个参数四选一
|
||||
*
|
||||
* @param outRefundNo 商户退款单号
|
||||
* @return 退款信息
|
||||
*//*
|
||||
@GetMapping("/refundQuery")
|
||||
public WxPayRefundQueryV3Result refundQuery(@RequestParam(required = false) String outRefundNo)
|
||||
throws WxPayException {
|
||||
return this.wxService.refundQueryV3(outRefundNo);
|
||||
}*/
|
||||
|
||||
/* @PostMapping("/refundQuery")
|
||||
public WxPayRefundQueryResult refundQuery(@RequestBody WxPayRefundQueryRequest wxPayRefundQueryRequest) throws WxPayException {
|
||||
return this.wxService.refundQuery(wxPayRefundQueryRequest);
|
||||
}*/
|
||||
|
||||
// 支付回调通知处理
|
||||
@PostMapping("/notify/order")
|
||||
public String parseOrderNotifyResult(@RequestBody String xmlData) throws Exception {
|
||||
log.info("支付回调通知处理,原生xml数据,xmlData:{}", xmlData);
|
||||
|
||||
final WxPayOrderNotifyResult notifyResult = WxPayServiceUtils.wxPayService(null).parseOrderNotifyResult(xmlData);
|
||||
log.info("支付回调通知处理,解析后数据,parseOrderNotifyResult:{}", notifyResult);
|
||||
String transactionId = notifyResult.getTransactionId();
|
||||
String outTradeNo = notifyResult.getOutTradeNo();
|
||||
boolean flag = this.orderService.updateOrderStatusToPaid(outTradeNo, transactionId);
|
||||
return flag ? WxPayNotifyResponse.success("成功") : WxPayNotifyResponse.fail("失败");
|
||||
}
|
||||
|
||||
// 退款回调通知处理
|
||||
@PostMapping("/notify/refund")
|
||||
public String parseRefundNotifyResult(@RequestBody String xmlData) throws WxPayException {
|
||||
log.info("退款回调通知处理原生数据,xmlData:{}", xmlData);
|
||||
final WxPayRefundNotifyResult result = WxPayServiceUtils.wxPayService(null).parseRefundNotifyResult(xmlData);
|
||||
log.info("退款回调通知处理,parseRefundNotifyResult:{}", result);
|
||||
boolean flag = refundService.updateOrderStatusToPaid(result.getReqInfo());
|
||||
return flag ? WxPayNotifyResponse.success("成功") : WxPayNotifyResponse.fail("失败");
|
||||
}
|
||||
|
||||
// 扫码支付回调通知处理
|
||||
@PostMapping("/notify/scanpay")
|
||||
public String parseScanPayNotifyResult(String xmlData) throws WxPayException {
|
||||
final WxScanPayNotifyResult result = WxPayServiceUtils.wxPayService(null).parseScanPayNotifyResult(xmlData);
|
||||
// TODO 根据自己业务场景需要构造返回对象
|
||||
return WxPayNotifyResponse.success("成功");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.hcy.admin.controller.account;
|
||||
|
||||
import com.hcy.admin.service.account.IAccountLogService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.account.AccountLogListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author kn4im3
|
||||
* @date 2023/3/7 17:30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/account/log")
|
||||
public class AccountLogController {
|
||||
|
||||
@Resource
|
||||
private IAccountLogService iAccountLogService;
|
||||
|
||||
/**
|
||||
* 余额显示列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params){
|
||||
PageResult<AccountLogListVo> list = iAccountLogService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
package com.hcy.admin.controller.activity;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.activity.IActivityService;
|
||||
import com.hcy.admin.validate.activity.ActivityParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.goods.GoodsBatchParam;
|
||||
import com.hcy.admin.vo.activity.ActivityListVo;
|
||||
import com.hcy.admin.vo.activity.ActivityDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 活动管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/activity")
|
||||
public class ActivityController {
|
||||
|
||||
@Resource
|
||||
IActivityService iActivityService;
|
||||
|
||||
/**
|
||||
* 活动列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<ActivityListVo> list = iActivityService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 活动详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
ActivityDetailVo detail = iActivityService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动新增
|
||||
*
|
||||
* @param activityParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "活动新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = ActivityParam.create.class) @RequestBody ActivityParam activityParam) {
|
||||
iActivityService.add(activityParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动编辑
|
||||
*
|
||||
* @param activityParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "活动编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = ActivityParam.update.class) @RequestBody ActivityParam activityParam) {
|
||||
iActivityService.edit(activityParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动删除,批量删除和根据id删除结合一起了
|
||||
* @param activityParam
|
||||
*/
|
||||
@ApiOperation(value = "活动专区 - 活动删除")
|
||||
@Log(title = "活动删除")
|
||||
@PostMapping("/del")
|
||||
public void del(@Validated @RequestBody ActivityParam activityParam) {
|
||||
iActivityService.del(activityParam.getIds());
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
package com.hcy.admin.controller.article;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.article.IArticleArchivesService;
|
||||
import com.hcy.admin.validate.article.ArticleParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.article.ArticleDetailVo;
|
||||
import com.hcy.admin.vo.article.ArticleListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 文章管理
|
||||
*/
|
||||
@RestController("articleController")
|
||||
@RequestMapping("api/article")
|
||||
public class ArticleController {
|
||||
|
||||
@Resource
|
||||
IArticleArchivesService iArticleArchivesService;
|
||||
|
||||
/**
|
||||
* 文章列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<ArticleListVo> vos = iArticleArchivesService.list(pageParam, params);
|
||||
return AjaxResult.success(vos);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 文章ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
ArticleDetailVo vo = iArticleArchivesService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(
|
||||
@Validated(value = ArticleParam.create.class)
|
||||
@RequestBody ArticleParam articleParam) {
|
||||
iArticleArchivesService.add(articleParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = ArticleParam.update.class)
|
||||
@RequestBody ArticleParam articleParam) {
|
||||
iArticleArchivesService.edit(articleParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = ArticleParam.delete.class)
|
||||
@RequestBody ArticleParam articleParam) {
|
||||
iArticleArchivesService.del(articleParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章状态
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章状态")
|
||||
@PostMapping("/change")
|
||||
public Object change(@Validated(value = ArticleParam.change.class)
|
||||
@RequestBody ArticleParam articleParam) {
|
||||
iArticleArchivesService.change(articleParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
package com.hcy.admin.controller.article;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.article.IArticleCategoryService;
|
||||
import com.hcy.admin.validate.article.CategoryParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.article.ArticleCateVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 文章分类管理
|
||||
*/
|
||||
@RestController("articleCategoryController")
|
||||
@RequestMapping("api/article/cate")
|
||||
public class CategoryController {
|
||||
|
||||
@Resource
|
||||
IArticleCategoryService iArticleCategoryService;
|
||||
|
||||
/**
|
||||
* 分类所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/all")
|
||||
public Object all() {
|
||||
List<ArticleCateVo> list = iArticleCategoryService.all();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<ArticleCateVo> list = iArticleCategoryService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
ArticleCateVo vo = iArticleCategoryService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章分类新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = CategoryParam.create.class)
|
||||
@RequestBody CategoryParam categoryParam) {
|
||||
iArticleCategoryService.add(categoryParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类编辑
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章分类编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = CategoryParam.update.class)
|
||||
@RequestBody CategoryParam categoryParam) {
|
||||
iArticleCategoryService.edit(categoryParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类删除
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章分类删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = CategoryParam.delete.class)
|
||||
@RequestBody CategoryParam categoryParam) {
|
||||
iArticleCategoryService.del(categoryParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类状态
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "文章分类状态")
|
||||
@PostMapping("/change")
|
||||
public Object change(@Validated(value = CategoryParam.change.class)
|
||||
@RequestBody CategoryParam categoryParam) {
|
||||
iArticleCategoryService.change(categoryParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package com.hcy.admin.controller.channel;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.channel.IChannelH5Service;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* H5渠道设置
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/channel/h5")
|
||||
public class H5Controller {
|
||||
|
||||
@Resource
|
||||
IChannelH5Service iChannelH5Service;
|
||||
|
||||
/**
|
||||
* H5渠道设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
Map<String, Object> map = iChannelH5Service.detail();
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* H5渠道设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param param 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "H5渠道设置保存")
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> param) {
|
||||
iChannelH5Service.save(param);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.hcy.admin.controller.channel;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.channel.IChannelMpService;
|
||||
import com.hcy.admin.vo.channel.ChannelMpVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 微信小程序渠道设置
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/channel/mp")
|
||||
public class MpController {
|
||||
|
||||
@Resource
|
||||
IChannelMpService iChannelMpService;
|
||||
|
||||
/**
|
||||
* 微信小程序渠道设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
ChannelMpVo vo = iChannelMpService.detail();
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信小程序渠道设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param param 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "微信小程序渠道设置保存")
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> param) {
|
||||
iChannelMpService.save(param);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.hcy.admin.controller.channel;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.channel.IChannelOaService;
|
||||
import com.hcy.admin.vo.channel.ChannelOaVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 微信公众号渠道设置
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/channel/oa")
|
||||
public class OaController {
|
||||
|
||||
@Resource
|
||||
IChannelOaService iChannelOaService;
|
||||
|
||||
/**
|
||||
* 公众号渠道设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
ChannelOaVo vo = iChannelOaService.detail();
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 公众号渠道设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param param 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "公众号渠道设置保存")
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> param) {
|
||||
iChannelOaService.save(param);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package com.hcy.admin.controller.channel;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.hcy.admin.service.channel.IChannelOaMenuService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公众号菜单管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/channel/oaMenu")
|
||||
public class OaMenuController {
|
||||
|
||||
@Resource
|
||||
IChannelOaMenuService iChannelOaMenuService;
|
||||
|
||||
/**
|
||||
* 菜单详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
JSONArray detail = iChannelOaMenuService.detail();
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅是保存菜单
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody List<Object> params) {
|
||||
iChannelOaMenuService.save(params, false);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存并发布菜单
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/publish")
|
||||
public Object publish(@RequestBody List<Object> params) {
|
||||
iChannelOaMenuService.save(params, true);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
package com.hcy.admin.controller.channel;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
import com.hcy.admin.service.channel.IChannelOaReplyService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 公众号回复管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/channel/oaReply")
|
||||
public class OaReplyController {
|
||||
|
||||
@Resource
|
||||
IChannelOaReplyService iChannelOaReplyService;
|
||||
|
||||
/**
|
||||
* 回复列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
List<Map<String, Object>> list = iChannelOaReplyService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 回复详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
Map<String, Object> map = iChannelOaReplyService.detail(id);
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 回复新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public Object add(@RequestBody Map<String, String> params) {
|
||||
iChannelOaReplyService.add(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 回复编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@RequestBody Map<String, String> params) {
|
||||
iChannelOaReplyService.edit(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 回复删除
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/del")
|
||||
public Object del(@RequestBody Map<String, String> params) {
|
||||
Assert.notNull(params.get("id"), "id参数缺失");
|
||||
iChannelOaReplyService.del(Integer.parseInt(params.get("id")));
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 回复状态
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/status")
|
||||
public Object status(@RequestBody Map<String, String> params) {
|
||||
Assert.notNull(params.get("id"), "id参数缺失");
|
||||
iChannelOaReplyService.status(Integer.parseInt(params.get("id")));
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.hcy.admin.controller.channel;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.channel.IChannelWxService;
|
||||
import com.hcy.admin.vo.channel.ChannelOpVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 微信开发平台渠道设置
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/channel/wx")
|
||||
public class WxController {
|
||||
|
||||
@Resource
|
||||
IChannelWxService iChannelWxService;
|
||||
|
||||
/**
|
||||
* 开放平台渠道设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
ChannelOpVo vo = iChannelWxService.detail();
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 开放平台渠道设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param param 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "开放平台渠道设置保存")
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> param) {
|
||||
iChannelWxService.save(param);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,149 @@
|
|||
package com.hcy.admin.controller.common;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.common.IAlbumService;
|
||||
import com.hcy.admin.validate.common.AlbumParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.album.AlbumVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.utils.ArrayUtil;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 相册管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/common/album")
|
||||
public class AlbumController {
|
||||
|
||||
@Resource
|
||||
IAlbumService iAlbumService;
|
||||
|
||||
/**
|
||||
* 相册文件列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/albumList")
|
||||
public Object albumList(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<AlbumVo> voPageResult = iAlbumService.albumList(pageParam, params);
|
||||
return AjaxResult.success(voPageResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* 相册文件重命名
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "相册文件重命名")
|
||||
@PostMapping("/albumRename")
|
||||
public Object albumRename(@Validated(value = AlbumParam.rename.class) @RequestBody AlbumParam albumParam) {
|
||||
iAlbumService.albumRename(albumParam.getId(), albumParam.getName());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 相册文件移动
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "相册文件移动")
|
||||
@PostMapping("/albumMove")
|
||||
public Object albumMove(@RequestBody Map<String, Object> params) {
|
||||
if (params.get("ids") == null) {
|
||||
return AjaxResult.failed("缺少ids参数");
|
||||
}
|
||||
|
||||
if (params.get("cid") == null) {
|
||||
return AjaxResult.failed("缺少cid参数");
|
||||
}
|
||||
|
||||
List<Integer> ids = ArrayUtil.objectToListAsInt(params.get("ids"));
|
||||
if (ids.size() <= 0) {
|
||||
return AjaxResult.failed("请至少选择一个文件");
|
||||
}
|
||||
|
||||
iAlbumService.albumMove(ids, Integer.parseInt(params.get("cid").toString()));
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 相册文件删除
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "相册文件删除")
|
||||
@PostMapping("/albumDel")
|
||||
public Object albumDel(@RequestBody Map<String, List<Integer>> params) {
|
||||
if (params.get("ids") == null) {
|
||||
return AjaxResult.failed("缺少ids参数");
|
||||
}
|
||||
|
||||
iAlbumService.albumDel(params.get("ids"));
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 相册分类列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/cateList")
|
||||
public Object cateList(@RequestParam Map<String, String> params) {
|
||||
JSONArray jsonArray = iAlbumService.cateList(params);
|
||||
return AjaxResult.success(jsonArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* 相册分类新增
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "相册分类新增")
|
||||
@PostMapping("/cateAdd")
|
||||
public Object cateAdd(@Validated(value = AlbumParam.cateAdd.class) @RequestBody AlbumParam albumParam) {
|
||||
iAlbumService.cateAdd(albumParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 相册分类重命名
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "相册分类重命名")
|
||||
@PostMapping("/cateRename")
|
||||
public Object cateRename(@Validated(value = AlbumParam.rename.class) @RequestBody AlbumParam albumParam) {
|
||||
iAlbumService.cateRename(albumParam.getId(), albumParam.getName());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 相册分类删除
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "相册分类删除")
|
||||
@PostMapping("/cateDel")
|
||||
public Object cateDel(@Validated(value = AlbumParam.delete.class) @RequestBody AlbumParam albumParam) {
|
||||
iAlbumService.cateDel(albumParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package com.hcy.admin.controller.common;
|
||||
|
||||
import com.hcy.admin.service.common.IIndexService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 主页管理
|
||||
*/
|
||||
@Api(tags = "工作台")
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("api/common/index")
|
||||
public class IndexController {
|
||||
|
||||
@Resource
|
||||
IIndexService iIndexService;
|
||||
|
||||
/**
|
||||
* 控制台
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/console")
|
||||
public Object console() {
|
||||
Map<String, Object> map = iIndexService.console();
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "工作台")
|
||||
@GetMapping("/workbench")
|
||||
public Object workbench() {
|
||||
Map<String, Object> map = iIndexService.workbench();
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 公共配置
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/config")
|
||||
public Object config() {
|
||||
Map<String, Object> map = iIndexService.config();
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
package com.hcy.admin.controller.common;
|
||||
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.common.IAlbumService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.enums.AlbumEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.plugin.storage.StorageDriver;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartRequest;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 上传管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/common/upload")
|
||||
public class UploadController {
|
||||
|
||||
@Resource
|
||||
IAlbumService iAlbumService;
|
||||
|
||||
/**
|
||||
* 上传图片
|
||||
*
|
||||
* @author fzr
|
||||
* @param request 请求对象
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "上传图片")
|
||||
@PostMapping("/image")
|
||||
public Object image(HttpServletRequest request) {
|
||||
MultipartFile multipartFile;
|
||||
try {
|
||||
multipartFile = ((MultipartRequest) request).getFile("file");
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.failed("请正确选择上传图片");
|
||||
}
|
||||
|
||||
if (multipartFile == null) {
|
||||
return AjaxResult.failed("请选择上传图片");
|
||||
}
|
||||
|
||||
try {
|
||||
StorageDriver storageDriver = new StorageDriver();
|
||||
Map<String, Object> map;
|
||||
//上传pdf
|
||||
if(Objects.requireNonNull(multipartFile.getOriginalFilename()).contains(".pdf")){
|
||||
map = storageDriver.upload(multipartFile, "file", AlbumEnum.FILE.getCode());
|
||||
}else{
|
||||
map = storageDriver.upload(multipartFile, "image", AlbumEnum.IMAGE.getCode());
|
||||
}
|
||||
String cid = StringUtil.isNotEmpty(request.getParameter("cid")) ? request.getParameter("cid") : "0";
|
||||
|
||||
Map<String, String> album = new LinkedHashMap<>();
|
||||
album.put("aid", String.valueOf(AdminThreadLocal.getAdminId()));
|
||||
album.put("cid", cid);
|
||||
album.put("type", String.valueOf(AlbumEnum.IMAGE.getCode()));
|
||||
album.put("size", map.get("size").toString());
|
||||
album.put("ext", map.get("ext").toString());
|
||||
album.put("url", map.get("url").toString());
|
||||
album.put("name", map.get("name").toString());
|
||||
Integer id = iAlbumService.albumAdd(album);
|
||||
|
||||
map.put("id", id);
|
||||
|
||||
return AjaxResult.success(map);
|
||||
} catch (OperateException e) {
|
||||
return AjaxResult.failed(e.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传视频
|
||||
*
|
||||
* @author fzr
|
||||
* @param request 请求对象
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "上传视频")
|
||||
@PostMapping("/video")
|
||||
public Object video(HttpServletRequest request) {
|
||||
MultipartFile multipartFile;
|
||||
try {
|
||||
multipartFile = ((MultipartRequest) request).getFile("file");
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.failed("请正确选择上传视频");
|
||||
}
|
||||
|
||||
if (multipartFile == null) {
|
||||
return AjaxResult.failed("请选择上传视频");
|
||||
}
|
||||
|
||||
try {
|
||||
StorageDriver storageDriver = new StorageDriver();
|
||||
Map<String, Object> map = storageDriver.upload(multipartFile, "video", AlbumEnum.Video.getCode());
|
||||
String cid = StringUtil.isNotEmpty(request.getParameter("cid")) ? request.getParameter("cid") : "0";
|
||||
|
||||
Map<String, String> album = new LinkedHashMap<>();
|
||||
album.put("cid", cid);
|
||||
album.put("aid", String.valueOf(AdminThreadLocal.getAdminId()));
|
||||
album.put("type", String.valueOf(AlbumEnum.Video.getCode()));
|
||||
album.put("ext", map.get("ext").toString());
|
||||
album.put("size", map.get("size").toString());
|
||||
album.put("url", map.get("url").toString());
|
||||
Integer id = iAlbumService.albumAdd(album);
|
||||
|
||||
map.put("id", id);
|
||||
|
||||
return AjaxResult.success(map);
|
||||
} catch (OperateException e) {
|
||||
return AjaxResult.failed(e.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
package com.hcy.admin.controller.crontab;
|
||||
|
||||
import com.hcy.admin.service.crontab.ICrontabService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.crontab.CrontabCreateValidate;
|
||||
import com.hcy.admin.validate.crontab.CrontabUpdateValidate;
|
||||
import com.hcy.admin.vo.crontab.CrontabDetailVo;
|
||||
import com.hcy.admin.vo.crontab.CrontabListedVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.quartz.SchedulerException;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.text.ParseException;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("api/crontab")
|
||||
public class CrontabController {
|
||||
|
||||
@Resource
|
||||
ICrontabService iCrontabService;
|
||||
|
||||
/**
|
||||
* 计划任务列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @return AjaxResult< PageResult<CrontabListedVo>>
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(@Validated PageParam pageParam) {
|
||||
PageResult<CrontabListedVo> list = iCrontabService.list(pageParam);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计划任务详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return AjaxResult<Object>
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public AjaxResult detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
CrontabDetailVo vo = iCrontabService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计划任务新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param createValidate 参数
|
||||
* @return AjaxResult<Object>
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public AjaxResult add(@Validated @RequestBody CrontabCreateValidate createValidate) throws SchedulerException {
|
||||
iCrontabService.add(createValidate);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计划任务编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param updateValidate 参数
|
||||
* @return AjaxResult<Object>
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public AjaxResult edit(@Validated @RequestBody CrontabUpdateValidate updateValidate) throws SchedulerException {
|
||||
iCrontabService.edit(updateValidate);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计划任务删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param idValidate 参数
|
||||
* @return AjaxResult<Object>
|
||||
*/
|
||||
@PostMapping("/del")
|
||||
public AjaxResult del(@Validated @RequestBody com.hcy.admin.validate.commons.IdValidate idValidate) throws SchedulerException {
|
||||
iCrontabService.del(idValidate.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取定时任务执行时间
|
||||
* @param expression 定时任务表达式
|
||||
* @return Object
|
||||
* @throws ParseException
|
||||
*/
|
||||
@GetMapping("/expression")
|
||||
public AjaxResult expression(@Validated @NotNull() @RequestParam("expression") String expression) throws ParseException {
|
||||
return AjaxResult.success(iCrontabService.expression(expression));
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.hcy.admin.controller.decorate;
|
||||
|
||||
import com.hcy.admin.service.decorate.IDecorateDataService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 装修数据管理
|
||||
*/
|
||||
@RestController("decorateDataController")
|
||||
@RequestMapping("api/decorate/data")
|
||||
public class DataController {
|
||||
|
||||
@Resource
|
||||
IDecorateDataService iDecorateDataService;
|
||||
|
||||
/**
|
||||
* 获取文章数据
|
||||
*
|
||||
* @author fzr
|
||||
* @param limit 条数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/article")
|
||||
public Object article(@RequestParam(defaultValue = "10") Integer limit) {
|
||||
List<Map<String, Object>> list = iDecorateDataService.article(limit);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package com.hcy.admin.controller.decorate;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.decorate.IDecoratePageService;
|
||||
import com.hcy.admin.validate.decorate.DecoratePageParam;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 页面装修管理
|
||||
*/
|
||||
@RestController("decoratePagesController")
|
||||
@RequestMapping("api/decorate/pages")
|
||||
public class PagesController {
|
||||
|
||||
@Resource
|
||||
IDecoratePageService iDecoratePageService;
|
||||
|
||||
/**
|
||||
* 页面装修详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
Map<String, Object> map = iDecoratePageService.detail(id);
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 页面装修保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param decoratePageParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "页面装修保存")
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody DecoratePageParam decoratePageParam) {
|
||||
iDecoratePageService.save(decoratePageParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package com.hcy.admin.controller.decorate;
|
||||
|
||||
import com.hcy.admin.service.decorate.IDecorateTabbarService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 装修底部导航管理
|
||||
*/
|
||||
@RestController("decorateTabbarController")
|
||||
@RequestMapping("api/decorate/tabbar")
|
||||
public class TabbarController {
|
||||
|
||||
@Resource
|
||||
IDecorateTabbarService iDecorateTabbarService;
|
||||
|
||||
/**
|
||||
* 底部导航详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
Map<String, Object> detail = iDecorateTabbarService.detail();
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 底部导航保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, Object> params) {
|
||||
iDecorateTabbarService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
package com.hcy.admin.controller.goods;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.category.IGoodsCategoryService;
|
||||
import com.hcy.admin.validate.category.GoodsCategoryParam;
|
||||
import com.hcy.admin.validate.category.GoodsCategoryStatus;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.category.GoodsCategoryDetailVo;
|
||||
import com.hcy.admin.vo.category.GoodsCategoryListVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 服务分类管理
|
||||
*/
|
||||
@Api(tags = "服务分类管理")
|
||||
@RestController
|
||||
@RequestMapping("api/category")
|
||||
public class GoodsCategoryController {
|
||||
|
||||
@Resource
|
||||
IGoodsCategoryService iGoodsCategoryService;
|
||||
|
||||
/**
|
||||
* 服务分类列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务分类管理 - 分页列表")
|
||||
@GetMapping("/list")
|
||||
public PageResult<GoodsCategoryListVo> list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
return iGoodsCategoryService.list(pageParam, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一级父类服务分类
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务分类管理 - 获取一级父类服务分类")
|
||||
@GetMapping("/commonList")
|
||||
public List<GoodsCategoryListVo> pid() {
|
||||
return iGoodsCategoryService.listPid();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改服务的状态
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务分类管理 - 修改服务的状态")
|
||||
@PostMapping("/status")
|
||||
public void updateStatus(@RequestBody GoodsCategoryStatus goodsCategoryStatus) {
|
||||
iGoodsCategoryService.updateStatus(goodsCategoryStatus.getId(), goodsCategoryStatus.getIsShow());
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务分类管理 - 服务分类详情")
|
||||
@GetMapping("/detail")
|
||||
public GoodsCategoryDetailVo detail(@Validated @IDMust() @RequestParam("id") Long id) {
|
||||
return iGoodsCategoryService.detail(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类新增
|
||||
*
|
||||
* @param goodsCategoryParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务分类管理 - 服务分类新增")
|
||||
@Log(title = "服务分类新增")
|
||||
@PostMapping("/add")
|
||||
public void add(@Validated(value = GoodsCategoryParam.create.class) @RequestBody GoodsCategoryParam goodsCategoryParam) {
|
||||
iGoodsCategoryService.add(goodsCategoryParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类编辑
|
||||
*
|
||||
* @param goodsCategoryParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务分类管理 - 服务分类编辑")
|
||||
@Log(title = "服务分类编辑")
|
||||
@PostMapping("/edit")
|
||||
public void edit(@Validated(value = GoodsCategoryParam.update.class) @RequestBody GoodsCategoryParam goodsCategoryParam) {
|
||||
iGoodsCategoryService.edit(goodsCategoryParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类删除
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务分类管理 - 服务分类删除")
|
||||
@Log(title = "服务分类删除")
|
||||
@GetMapping("/del")
|
||||
public void del(@RequestParam("id") Long id) {
|
||||
iGoodsCategoryService.del(id);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
package com.hcy.admin.controller.goods;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.comment.IGoodsCommentService;
|
||||
import com.hcy.admin.validate.comment.GoodsCommentPageParam;
|
||||
import com.hcy.admin.validate.comment.GoodsCommentParam;
|
||||
import com.hcy.admin.validate.comment.GoodsCommentReplyParam;
|
||||
import com.hcy.admin.vo.comment.GoodsCommentListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.models.auth.In;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 服务评价管理
|
||||
*/
|
||||
@Api(tags = "服务评价管理")
|
||||
@RestController
|
||||
@RequestMapping("api/comment")
|
||||
public class GoodsCommentController {
|
||||
|
||||
@Resource
|
||||
IGoodsCommentService iGoodsCommentService;
|
||||
|
||||
/**
|
||||
* 服务评价列表
|
||||
*
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务评价管理 - 分页列表")
|
||||
@PostMapping("/list")
|
||||
public PageResult<GoodsCommentListVo> list(@RequestBody GoodsCommentPageParam params) {
|
||||
return iGoodsCommentService.list(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务评价列表
|
||||
*
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务评价管理 - 回复")
|
||||
@PostMapping("/reply")
|
||||
public void reply(@RequestBody GoodsCommentReplyParam params) {
|
||||
iGoodsCommentService.replyComment(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务评价删除
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务评价删除")
|
||||
@Log(title = "服务评价删除")
|
||||
@GetMapping("/del")
|
||||
public void del(@RequestParam("id") Long id) {
|
||||
iGoodsCommentService.del(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务评价删除
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务评价 - 计算师傅评分")
|
||||
@GetMapping("/calculateStaffScore")
|
||||
public Object calculateStaffScore(@RequestParam("id") Long id,
|
||||
@RequestParam("score") BigDecimal score) {
|
||||
return AjaxResult.success("成功",iGoodsCommentService.calculateStaffScore(id, score));
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务评价新增
|
||||
*
|
||||
* @param goodsCommentParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Deprecated
|
||||
@Log(title = "服务评价 - 客服评分")
|
||||
@PostMapping("/customerServiceAppraiseScore")
|
||||
public Object customerServiceAppraiseScore(@RequestBody GoodsCommentParam goodsCommentParam) {
|
||||
iGoodsCommentService.customerServiceAppraiseScore(goodsCommentParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/* *//**
|
||||
* 服务评价详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*//*
|
||||
@Deprecated
|
||||
@ApiOperation(value = "服务评价管理 - 详情")
|
||||
@GetMapping("/detail")
|
||||
public GoodsCommentDetailVo detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
GoodsCommentDetailVo detail = iGoodsCommentService.detail(id);
|
||||
return detail;
|
||||
}
|
||||
|
||||
*//**
|
||||
* 服务评价新增
|
||||
*
|
||||
* @param goodsCommentParam 参数
|
||||
* @return Object
|
||||
*//*
|
||||
@Deprecated
|
||||
@ApiOperation(value = "服务评价新增")
|
||||
@Log(title = "服务评价新增")
|
||||
@PostMapping("/add")
|
||||
public void add(@Validated(value = GoodsCommentParam.create.class) @RequestBody GoodsCommentParam goodsCommentParam) {
|
||||
iGoodsCommentService.add(goodsCommentParam);
|
||||
}
|
||||
|
||||
*//**
|
||||
* 服务评价编辑
|
||||
*
|
||||
* @param goodsCommentParam 参数
|
||||
* @return Object
|
||||
*//*
|
||||
@Deprecated
|
||||
@ApiOperation(value = "服务评价编辑")
|
||||
@Log(title = "服务评价编辑")
|
||||
@PostMapping("/edit")
|
||||
public void edit(@Validated(value = GoodsCommentParam.update.class) @RequestBody GoodsCommentParam goodsCommentParam) {
|
||||
iGoodsCommentService.edit(goodsCommentParam);
|
||||
}*/
|
||||
}
|
|
@ -0,0 +1,173 @@
|
|||
package com.hcy.admin.controller.goods;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.goods.IGoodsService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.goods.GoodsBatchParam;
|
||||
import com.hcy.admin.validate.goods.GoodsBatchPriceParam;
|
||||
import com.hcy.admin.validate.goods.GoodsParam;
|
||||
import com.hcy.admin.vo.goods.GoodsDetailVo;
|
||||
import com.hcy.admin.vo.goods.GoodsListVo;
|
||||
import com.hcy.admin.vo.goods.StatisticsGoodsVo;
|
||||
import com.hcy.admin.vo.order.CancelOrderConfigListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 服务管理
|
||||
*/
|
||||
@Api(tags = "服务管理")
|
||||
@RestController
|
||||
@RequestMapping("api/goods")
|
||||
public class GoodsController {
|
||||
|
||||
@Resource
|
||||
IGoodsService iGoodsService;
|
||||
|
||||
/**
|
||||
* 服务列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 分页列表")
|
||||
@GetMapping("/list")
|
||||
public PageResult<GoodsListVo> list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
return iGoodsService.list(pageParam, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 统计状态数据
|
||||
* @Date 10:17 2022/10/7
|
||||
* @Param [pageParam, params]
|
||||
**/
|
||||
@ApiOperation(value = "服务管理 - 统计状态数据")
|
||||
@GetMapping("/statistics")
|
||||
public StatisticsGoodsVo statistics(@RequestParam Map<String, String> params) {
|
||||
return iGoodsService.statistics(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 服务详情")
|
||||
@GetMapping("/detail")
|
||||
public GoodsDetailVo detail(@Validated @IDMust() @RequestParam("id") Long id) {
|
||||
return iGoodsService.detail(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务新增
|
||||
*
|
||||
* @param goodsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 服务新增")
|
||||
@Log(title = "服务新增")
|
||||
@PostMapping("/add")
|
||||
public void add(@Validated(value = GoodsParam.create.class) @RequestBody GoodsParam goodsParam) {
|
||||
iGoodsService.add(goodsParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务编辑
|
||||
*
|
||||
* @param goodsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 服务编辑")
|
||||
@Log(title = "服务编辑")
|
||||
@PostMapping("/edit")
|
||||
public void edit(@Validated(value = GoodsParam.update.class) @RequestBody GoodsParam goodsParam) {
|
||||
iGoodsService.edit(goodsParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务删除
|
||||
*
|
||||
* @param goodsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 服务批量删除")
|
||||
@Log(title = "服务批量删除")
|
||||
@PostMapping("/del")
|
||||
public void del(@Validated @RequestBody GoodsBatchParam goodsParam) {
|
||||
iGoodsService.del(goodsParam.getIds());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "服务管理 - 服务删除")
|
||||
@Log(title = "服务删除")
|
||||
@GetMapping("/del")
|
||||
public void del(@Validated @RequestParam("id") Long id) {
|
||||
iGoodsService.del(Lists.newArrayList(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务状态修改
|
||||
* 销售中 or 仓库中
|
||||
*
|
||||
* @param goodsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 服务批量状态修改")
|
||||
@Log(title = "服务状态修改")
|
||||
@PostMapping("/status")
|
||||
public void updateStatus(@Validated @RequestBody GoodsBatchParam goodsParam) {
|
||||
iGoodsService.updateStatus(goodsParam.getIds(), goodsParam.getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改服务新品推荐的状态
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 修改服务的新品推荐状态")
|
||||
@PostMapping("/newRecommend")
|
||||
public void updateNewRecommendStatus(@Validated @RequestBody GoodsBatchParam goodsParam) {
|
||||
// TODO goodsParam.getStatus()这里应该修改一下
|
||||
iGoodsService.updateNewRecommendStatus(goodsParam.getIds(), goodsParam.getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改价格
|
||||
*
|
||||
* @param goodsBatchPriceParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务管理 - 服务编辑")
|
||||
@Log(title = "服务编辑")
|
||||
@PostMapping("/batchUpdatePrice")
|
||||
public void batchUpdatePrice(@Validated @RequestBody GoodsBatchPriceParam goodsBatchPriceParam) {
|
||||
iGoodsService.batchUpdatePrice(goodsBatchPriceParam.getGoodsParams());
|
||||
}
|
||||
|
||||
/***
|
||||
* 获取服务取消订单配置
|
||||
* @param pageParam 分页参数
|
||||
* @param params 参数
|
||||
* @return PageResult<GoodsListVo>
|
||||
*/
|
||||
@GetMapping("/cancelOrderConfig/list")
|
||||
public Object goodsCancelOrderConfigList(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<GoodsListVo> list = iGoodsService.goodsCancelOrderConfigList(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
package com.hcy.admin.controller.goods;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.goods.IGoodsTimeService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.goods.GoodsTimeParam;
|
||||
import com.hcy.admin.vo.goods.GoodsTimeDetailVo;
|
||||
import com.hcy.admin.vo.goods.GoodsTimeListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 服务时间管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/goods/time")
|
||||
public class GoodsTimeController {
|
||||
|
||||
@Resource
|
||||
IGoodsTimeService iGoodsTimeService;
|
||||
|
||||
/**
|
||||
* 服务时间列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(PageParam pageParam, @RequestParam Map<String, String> params) {
|
||||
PageResult<GoodsTimeListVo> list = iGoodsTimeService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取status为0所有服务时间
|
||||
* @return List<GoodsTimeListVo>
|
||||
*/
|
||||
@GetMapping("/all")
|
||||
public Object all() {
|
||||
return AjaxResult.success(iGoodsTimeService.all());
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务时间详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@RequestParam("id") Integer id) {
|
||||
GoodsTimeDetailVo detail = iGoodsTimeService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务时间新增
|
||||
*
|
||||
* @param goodsTimeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务时间新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@RequestBody GoodsTimeParam goodsTimeParam) {
|
||||
iGoodsTimeService.add(goodsTimeParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务时间编辑
|
||||
*
|
||||
* @param goodsTimeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务时间编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@RequestBody GoodsTimeParam goodsTimeParam) {
|
||||
iGoodsTimeService.edit(goodsTimeParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务时间删除
|
||||
*
|
||||
* @param goodsTimeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务时间删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@RequestBody GoodsTimeParam goodsTimeParam) {
|
||||
String msg = iGoodsTimeService.del(goodsTimeParam.getGoodsTimeIds());
|
||||
return StringUtil.isNotEmpty(msg) ? AjaxResult.failed(msg + " 已被服务使用,不可以删除!") : AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改状态
|
||||
*
|
||||
* @param goodsTimeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "updateStatus")
|
||||
@PostMapping("/updateStatus")
|
||||
public Object updateStatus(@RequestBody GoodsTimeParam goodsTimeParam) {
|
||||
iGoodsTimeService.updateStatus(goodsTimeParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
package com.hcy.admin.controller.goods;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.unit.IGoodsUnitService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.unit.GoodsUnitParam;
|
||||
import com.hcy.admin.vo.unit.GoodsUnitDetailVo;
|
||||
import com.hcy.admin.vo.unit.GoodsUnitListVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 服务单位管理
|
||||
*/
|
||||
@Api(tags = "服务单位管理")
|
||||
@RestController
|
||||
@RequestMapping("api/unit")
|
||||
public class GoodsUnitController {
|
||||
|
||||
@Resource
|
||||
IGoodsUnitService iGoodsUnitService;
|
||||
|
||||
/**
|
||||
* 服务单位列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务单位管理 - 分页列表")
|
||||
@GetMapping("/list")
|
||||
public PageResult<GoodsUnitListVo> list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
return iGoodsUnitService.list(pageParam, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务单位详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务单位管理 - 服务单位详情")
|
||||
@GetMapping("/detail")
|
||||
public GoodsUnitDetailVo detail(@Validated @IDMust() @RequestParam("id") Long id) {
|
||||
return iGoodsUnitService.detail(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务单位新增
|
||||
*
|
||||
* @param goodsUnitParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务单位管理 - 服务单位新增")
|
||||
@Log(title = "服务单位新增")
|
||||
@PostMapping("/add")
|
||||
public void add(@Validated(value = GoodsUnitParam.create.class) @RequestBody GoodsUnitParam goodsUnitParam) {
|
||||
iGoodsUnitService.add(goodsUnitParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务单位编辑
|
||||
*
|
||||
* @param goodsUnitParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务单位管理 - 服务单位编辑")
|
||||
@Log(title = "服务单位编辑")
|
||||
@PostMapping("/edit")
|
||||
public void edit(@Validated(value = GoodsUnitParam.update.class) @RequestBody GoodsUnitParam goodsUnitParam) {
|
||||
iGoodsUnitService.edit(goodsUnitParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务单位删除
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务单位管理 - 服务单位删除")
|
||||
@Log(title = "服务单位删除")
|
||||
@GetMapping("/del")
|
||||
public void del(@RequestParam("id") Long id) {
|
||||
iGoodsUnitService.del(id);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
package com.hcy.admin.controller.image;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.image.IGoodsImageService;
|
||||
import com.hcy.admin.validate.image.GoodsImageParam;
|
||||
import com.hcy.admin.vo.image.GoodsImageDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 服务轮播图管理
|
||||
*/
|
||||
@Deprecated
|
||||
@RestController
|
||||
@RequestMapping("api/image")
|
||||
public class GoodsImageController {
|
||||
|
||||
@Resource
|
||||
IGoodsImageService iGoodsImageService;
|
||||
|
||||
/**
|
||||
* 服务轮播图详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
GoodsImageDetailVo detail = iGoodsImageService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务轮播图新增
|
||||
*
|
||||
* @param goodsImageParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务轮播图新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = GoodsImageParam.create.class) @RequestBody GoodsImageParam goodsImageParam) {
|
||||
iGoodsImageService.add(goodsImageParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务轮播图编辑
|
||||
*
|
||||
* @param goodsImageParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务轮播图编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = GoodsImageParam.update.class) @RequestBody GoodsImageParam goodsImageParam) {
|
||||
iGoodsImageService.edit(goodsImageParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务轮播图删除
|
||||
*
|
||||
* @param goodsImageParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务轮播图删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = GoodsImageParam.delete.class) @RequestBody GoodsImageParam goodsImageParam) {
|
||||
iGoodsImageService.del(goodsImageParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package com.hcy.admin.controller.jobs;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.jobs.IJobsService;
|
||||
import com.hcy.admin.validate.jobs.JobsParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.jobs.JobsListVo;
|
||||
import com.hcy.admin.vo.jobs.JobsDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 岗位管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/jobs")
|
||||
public class JobsController {
|
||||
|
||||
@Resource
|
||||
IJobsService iJobsService;
|
||||
|
||||
/**
|
||||
* 岗位列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<JobsListVo> list = iJobsService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 岗位详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
JobsDetailVo detail = iJobsService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位新增
|
||||
*
|
||||
* @param jobsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "岗位新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = JobsParam.create.class) @RequestBody JobsParam jobsParam) {
|
||||
iJobsService.add(jobsParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位编辑
|
||||
*
|
||||
* @param jobsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "岗位编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = JobsParam.update.class) @RequestBody JobsParam jobsParam) {
|
||||
iJobsService.edit(jobsParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位删除
|
||||
*
|
||||
* @param jobsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "岗位删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = JobsParam.delete.class) @RequestBody JobsParam jobsParam) {
|
||||
//iJobsService.del(jobsParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.hcy.admin.controller.log;
|
||||
|
||||
import com.hcy.admin.service.log.IOrderRefundLogService;
|
||||
import com.hcy.admin.vo.log.OrderRefundLogDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单退款日志管理
|
||||
*/
|
||||
@Deprecated
|
||||
@RestController
|
||||
@RequestMapping("api/refund/log")
|
||||
public class OrderRefundLogController {
|
||||
|
||||
@Resource
|
||||
IOrderRefundLogService iOrderRefundLogService;
|
||||
|
||||
/**
|
||||
* 订单退款日志详情
|
||||
*
|
||||
* @param refundId 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("refundId") Long refundId) {
|
||||
List<OrderRefundLogDetailVo> detail = iOrderRefundLogService.detail(refundId);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package com.hcy.admin.controller.log;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.log.ISmsLogService;
|
||||
import com.hcy.admin.validate.log.SmsLogParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.log.SmsLogListVo;
|
||||
import com.hcy.admin.vo.log.SmsLogDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 短信发送记录管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/sms/log")
|
||||
public class SmsLogController {
|
||||
|
||||
@Resource
|
||||
ISmsLogService iSmsLogService;
|
||||
|
||||
/**
|
||||
* 短信发送记录列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<SmsLogListVo> list = iSmsLogService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 短信发送记录详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
SmsLogDetailVo detail = iSmsLogService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 短信发送记录新增
|
||||
*
|
||||
* @param smsLogParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "短信发送记录新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = SmsLogParam.create.class) @RequestBody SmsLogParam smsLogParam) {
|
||||
iSmsLogService.add(smsLogParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 短信发送记录编辑
|
||||
*
|
||||
* @param smsLogParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "短信发送记录编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SmsLogParam.update.class) @RequestBody SmsLogParam smsLogParam) {
|
||||
iSmsLogService.edit(smsLogParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 短信发送记录删除
|
||||
*
|
||||
* @param smsLogParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "短信发送记录删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SmsLogParam.delete.class) @RequestBody SmsLogParam smsLogParam) {
|
||||
// iSmsLogService.del(smsLogParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.hcy.admin.controller.monitor;
|
||||
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import org.springframework.data.redis.connection.RedisServerCommands;
|
||||
import org.springframework.data.redis.core.RedisCallback;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 缓存监控管理
|
||||
*/
|
||||
@RestController(value = "monitorCacheController")
|
||||
@RequestMapping("api/monitor")
|
||||
public class CacheController {
|
||||
|
||||
@Resource
|
||||
private RedisTemplate<String, String> redisTemplate;
|
||||
|
||||
/**
|
||||
* 缓存监控
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "缓存监控")
|
||||
@GetMapping("/cache")
|
||||
public Object info() {
|
||||
Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) RedisServerCommands::info);
|
||||
Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
|
||||
Object dbSize = redisTemplate.execute((RedisCallback<Object>) RedisServerCommands::dbSize);
|
||||
|
||||
if (commandStats == null) {
|
||||
return AjaxResult.failed("获取异常");
|
||||
}
|
||||
|
||||
Map<String, Object> result = new HashMap<>(3);
|
||||
result.put("info", info);
|
||||
result.put("dbSize", dbSize);
|
||||
|
||||
List<Map<String, String>> pieList = new ArrayList<>();
|
||||
commandStats.stringPropertyNames().forEach(key -> {
|
||||
Map<String, String> data = new HashMap<>(2);
|
||||
String property = commandStats.getProperty(key);
|
||||
data.put("name", StringUtil.removeStart(key, "cmdstat_"));
|
||||
data.put("value", StringUtil.substringBetween(property, "calls=", ",usec"));
|
||||
pieList.add(data);
|
||||
});
|
||||
|
||||
result.put("commandStats", pieList);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package com.hcy.admin.controller.monitor;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.ServerResult;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 服务监控管理
|
||||
*/
|
||||
@RestController(value = "monitorServerController")
|
||||
@RequestMapping("api/monitor")
|
||||
public class ServerController {
|
||||
|
||||
/**
|
||||
* 服务器信息
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "服务监控")
|
||||
@GetMapping("/server")
|
||||
public Object info() {
|
||||
ServerResult server = new ServerResult();
|
||||
return AjaxResult.success(server.copyTo());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
package com.hcy.admin.controller.order;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.order.ICancelOrderConfigService;
|
||||
import com.hcy.admin.validate.order.CancelOrderConfigParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.order.CancelOrderConfigListVo;
|
||||
import com.hcy.admin.vo.order.CancelOrderConfigDetailVo;
|
||||
import com.hcy.admin.vo.staff.StaffPhysicalExaminationListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 取消订单配置管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/cancel/order/config")
|
||||
public class CancelOrderConfigController {
|
||||
|
||||
@Resource
|
||||
ICancelOrderConfigService iCancelOrderConfigService;
|
||||
|
||||
/**
|
||||
* 取消订单配置列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<CancelOrderConfigListVo> list = iCancelOrderConfigService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消订单配置新增
|
||||
*
|
||||
* @param cancelOrderConfigParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "取消订单配置新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@RequestBody CancelOrderConfigParam cancelOrderConfigParam) {
|
||||
iCancelOrderConfigService.add(cancelOrderConfigParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单上门时间获取取消订单配置
|
||||
* @param orderId 订单id
|
||||
* @return CancelOrderConfig
|
||||
*/
|
||||
@ApiOperation(value = "师傅取消订单 - 根据订单上门时间获取取消订单配置")
|
||||
@GetMapping("/getCancelOrderConfigByOrder")
|
||||
public Object getCancelOrderConfigByOrder(@RequestParam Long orderId,@RequestParam(required = false) Long staffId) {
|
||||
CancelOrderConfigDetailVo cancelOrderConfigByOrder = iCancelOrderConfigService.getCancelOrderConfigByOrder(orderId, staffId);
|
||||
return AjaxResult.success(cancelOrderConfigByOrder == null ? JSON.toJSON(new Object()) : cancelOrderConfigByOrder);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,210 @@
|
|||
package com.hcy.admin.controller.order;
|
||||
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.order.DistributionOrderExcel;
|
||||
import com.hcy.admin.service.order.IOrderService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.order.CancelOrderConfigParam;
|
||||
import com.hcy.admin.validate.order.OrderDistributionParam;
|
||||
import com.hcy.admin.validate.order.OrderPageParam;
|
||||
import com.hcy.admin.validate.order.OrderParam;
|
||||
import com.hcy.admin.validate.refund.OrderRefundPageParam;
|
||||
import com.hcy.admin.vo.order.OrderDetailVo;
|
||||
import com.hcy.admin.vo.order.OrderDistributionListVo;
|
||||
import com.hcy.admin.vo.order.OrderListVo;
|
||||
import com.hcy.admin.vo.order.StatisticsOrderVo;
|
||||
import com.hcy.admin.vo.staff.StaffPhysicalExaminationListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.utils.ExcelUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.models.auth.In;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单管理
|
||||
*/
|
||||
@Api(tags = "订单管理")
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("api/order")
|
||||
public class OrderController {
|
||||
|
||||
@Resource
|
||||
IOrderService iOrderService;
|
||||
|
||||
/**
|
||||
* 订单列表
|
||||
*
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单管理 - 列表")
|
||||
@PostMapping("/list")
|
||||
public PageResult<OrderListVo> list(@Validated @RequestBody OrderPageParam params) {
|
||||
return iOrderService.list(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单管理 - 订单详情")
|
||||
@GetMapping("/detail")
|
||||
public OrderDetailVo detail(@Validated @RequestParam("id") Long id) {
|
||||
return iOrderService.detail(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 统计订单状态的数据
|
||||
* @Date 11:47 2022/10/11
|
||||
* @Param []
|
||||
**/
|
||||
@ApiOperation(value = "订单管理 - 统计订单状态的数据")
|
||||
@GetMapping("/statistics")
|
||||
public StatisticsOrderVo statistics(@RequestParam Map<String, String> params) {
|
||||
return iOrderService.statistics(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 商家备注
|
||||
* @Date 11:47 2022/10/11
|
||||
* @Param []
|
||||
**/
|
||||
@ApiOperation(value = "订单管理 - 商家备注")
|
||||
@GetMapping("/remark")
|
||||
public void remark(@RequestParam("id") Long id, @RequestParam(value = "remark", required = false) String remark) {
|
||||
Integer userId = AdminThreadLocal.getAdminId();
|
||||
iOrderService.remark(id, userId, remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 后台取消订单
|
||||
* @Date 13:57 2022/10/11
|
||||
* @Param [id]
|
||||
**/
|
||||
@ApiOperation(value = "订单管理 - 后台取消订单")
|
||||
@PostMapping("/cancel")
|
||||
public void cancel(@RequestBody OrderRefundPageParam orderRefundPageParam) throws WxPayException {
|
||||
orderRefundPageParam.setUserId(Long.valueOf(AdminThreadLocal.getAdminId()));
|
||||
iOrderService.cancelOrder(orderRefundPageParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 后台指派订单给师傅
|
||||
* @Date 14:30 2022/10/11
|
||||
* @Param [id, staffId]
|
||||
**/
|
||||
@ApiOperation(value = "订单管理 - 指派订单给师傅")
|
||||
@GetMapping("/dispatch")
|
||||
public Object dispatch(@RequestParam("id") Long id,
|
||||
@RequestParam(value = "timeBefore",required = false) Integer timeBefore,
|
||||
@RequestParam(value = "deductScore",required = false) BigDecimal deductScore) {
|
||||
Integer userId = AdminThreadLocal.getAdminId();
|
||||
iOrderService.dispatchStaff(id, userId,timeBefore,deductScore);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 核销订单
|
||||
* @Date 14:43 2022/10/11
|
||||
* @Param [id, code]
|
||||
**/
|
||||
@ApiOperation(value = "订单管理 - 核销订单")
|
||||
@GetMapping("/verification")
|
||||
public void verification(@RequestParam("id") Long id) {
|
||||
Integer userId = AdminThreadLocal.getAdminId();
|
||||
iOrderService.verificationOrder(id, userId);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 订单新增
|
||||
// *
|
||||
// * @param orderParam 参数
|
||||
// * @return Object
|
||||
// */
|
||||
// @ApiOperation(value = "订单管理 - ")
|
||||
// @Log(title = "订单新增")
|
||||
// @PostMapping("/add")
|
||||
// public Object add(@Validated(value = OrderParam.create.class) @RequestBody OrderParam orderParam) {
|
||||
// iOrderService.add(orderParam);
|
||||
// return AjaxResult.success();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 订单编辑
|
||||
// *
|
||||
// * @param orderParam 参数
|
||||
// * @return Object
|
||||
// */
|
||||
// @ApiOperation(value = "订单管理 - ")
|
||||
// @Log(title = "订单编辑")
|
||||
// @PostMapping("/edit")
|
||||
// public Object edit(@Validated(value = OrderParam.update.class) @RequestBody OrderParam orderParam) {
|
||||
// iOrderService.edit(orderParam);
|
||||
// return AjaxResult.success();
|
||||
// }
|
||||
|
||||
/**
|
||||
* 订单删除
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单管理 - 订单删除")
|
||||
@Log(title = "订单删除")
|
||||
@GetMapping("/del")
|
||||
public void del(@RequestParam("id") Long id) {
|
||||
iOrderService.del(id);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "订单管理 - 列表")
|
||||
@PostMapping("/listDistributionOrder")
|
||||
public PageResult<OrderDistributionListVo> listDistributionOrder(@Validated @RequestBody OrderDistributionParam params) {
|
||||
return iOrderService.listDistributionOrder(params);
|
||||
}
|
||||
|
||||
//导出Excel
|
||||
@ApiOperation(value = "订单管理 - 导出分销订单列表")
|
||||
@PostMapping(value="/exportDistOrderExcel")
|
||||
public void exportExcel(@Validated @RequestBody OrderDistributionParam params, HttpServletResponse response) {
|
||||
try {
|
||||
List<DistributionOrderExcel> list = iOrderService.getDistributionOrderExcel(params);
|
||||
ExcelUtils.export2Web(response, "分销订单表", "分销订单表", DistributionOrderExcel.class, list);
|
||||
} catch (Exception e) {
|
||||
log.error("报表导出异常:", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 师傅确认服务
|
||||
* @param orderParam 参数
|
||||
*/
|
||||
@ApiOperation(value = "订单管理 - 师傅确认服务")
|
||||
@PostMapping("/staff/confirm")
|
||||
public void confirmGoods(@RequestBody OrderParam orderParam) {
|
||||
iOrderService.confirmGoods(orderParam);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
package com.hcy.admin.controller.order;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.goods.IOrderGoodsService;
|
||||
import com.hcy.admin.validate.goods.OrderGoodsParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.goods.OrderGoodsListVo;
|
||||
import com.hcy.admin.vo.goods.OrderGoodsDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单服务管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/order_goods")
|
||||
public class OrderGoodsController {
|
||||
|
||||
@Resource
|
||||
IOrderGoodsService iOrderGoodsService;
|
||||
|
||||
/**
|
||||
* 订单服务列表
|
||||
*
|
||||
* @author slien
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<OrderGoodsListVo> list = iOrderGoodsService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单服务详情
|
||||
*
|
||||
* @author slien
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
OrderGoodsDetailVo detail = iOrderGoodsService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单服务新增
|
||||
*
|
||||
* @author slien
|
||||
* @param orderGoodsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "订单服务新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = OrderGoodsParam.create.class) @RequestBody OrderGoodsParam orderGoodsParam) {
|
||||
iOrderGoodsService.add(orderGoodsParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单服务编辑
|
||||
*
|
||||
* @author slien
|
||||
* @param orderGoodsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "订单服务编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = OrderGoodsParam.update.class) @RequestBody OrderGoodsParam orderGoodsParam) {
|
||||
iOrderGoodsService.edit(orderGoodsParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单服务删除
|
||||
*
|
||||
* @author slien
|
||||
* @param orderGoodsParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "订单服务删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = OrderGoodsParam.delete.class) @RequestBody OrderGoodsParam orderGoodsParam) {
|
||||
//iOrderGoodsService.del(orderGoodsParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package com.hcy.admin.controller.order;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.log.IOrderLogService;
|
||||
import com.hcy.admin.validate.log.OrderLogParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.log.OrderLogListVo;
|
||||
import com.hcy.admin.vo.log.OrderLogDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单日志管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/order/log")
|
||||
public class OrderLogController {
|
||||
|
||||
@Resource
|
||||
IOrderLogService iOrderLogService;
|
||||
|
||||
/**
|
||||
* 订单日志列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<OrderLogListVo> list = iOrderLogService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 订单日志详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
OrderLogDetailVo detail = iOrderLogService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单日志新增
|
||||
*
|
||||
* @param orderLogParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "订单日志新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = OrderLogParam.create.class) @RequestBody OrderLogParam orderLogParam) {
|
||||
iOrderLogService.add(orderLogParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单日志编辑
|
||||
*
|
||||
* @param orderLogParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "订单日志编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = OrderLogParam.update.class) @RequestBody OrderLogParam orderLogParam) {
|
||||
iOrderLogService.edit(orderLogParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单日志删除
|
||||
*
|
||||
* @param orderLogParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "订单日志删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = OrderLogParam.delete.class) @RequestBody OrderLogParam orderLogParam) {
|
||||
// iOrderLogService.del(orderLogParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
package com.hcy.admin.controller.order;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.goods.IGoodsTimeService;
|
||||
import com.hcy.admin.service.time.IOrderTimeService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.time.OrderTimeParam;
|
||||
import com.hcy.admin.validate.time.TimeParam;
|
||||
import com.hcy.admin.vo.time.OrderTimeDetailVo;
|
||||
import com.hcy.admin.vo.time.OrderTimeListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单预约时间管理
|
||||
*/
|
||||
@Api(tags = "订单预约时间管理")
|
||||
@RestController
|
||||
@RequestMapping("api/time")
|
||||
public class OrderTimeController {
|
||||
|
||||
@Resource
|
||||
IOrderTimeService iOrderTimeService;
|
||||
|
||||
/**
|
||||
* 订单预约时间列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 分页列表")
|
||||
@GetMapping("/list")
|
||||
public PageResult<OrderTimeListVo> list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
return iOrderTimeService.list(pageParam, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单预约时间详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 详情")
|
||||
@GetMapping("/detail")
|
||||
public OrderTimeDetailVo detail(@Validated @IDMust() @RequestParam("id") Long id) {
|
||||
return iOrderTimeService.detail(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单预约时间新增
|
||||
*
|
||||
* @param orderTimeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 新增")
|
||||
@Log(title = "订单预约时间新增")
|
||||
@PostMapping("/add")
|
||||
public void add(@Validated(value = OrderTimeParam.create.class) @RequestBody OrderTimeParam orderTimeParam) {
|
||||
iOrderTimeService.add(orderTimeParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单预约时间编辑
|
||||
*
|
||||
* @param orderTimeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 编辑")
|
||||
@Log(title = "订单预约时间编辑")
|
||||
@PostMapping("/edit")
|
||||
public void edit(@Validated(value = OrderTimeParam.update.class) @RequestBody OrderTimeParam orderTimeParam) {
|
||||
iOrderTimeService.edit(orderTimeParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单预约时间删除
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 删除")
|
||||
@Log(title = "订单预约时间删除")
|
||||
@GetMapping("/del")
|
||||
public void del(@RequestParam("id") Long id) {
|
||||
iOrderTimeService.del(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单预约时间批量删除
|
||||
*
|
||||
* @param orderTimeParam 时间id集合
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 批量删除")
|
||||
@Log(title = "订单预约时间批量删除")
|
||||
@PostMapping("/batchDel")
|
||||
public void batchDel(@RequestBody OrderTimeParam orderTimeParam) {
|
||||
Assert.isFalse(orderTimeParam.getIds().isEmpty(),"时间id集合不能为空");
|
||||
iOrderTimeService.batchDel(orderTimeParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可提前预约时间
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 可提前预约时长")
|
||||
@GetMapping("/getTime")
|
||||
public AjaxResult getTime() {
|
||||
return AjaxResult.success(iOrderTimeService.getOrderTime());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设可提前预约时间
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单预约时间管理 - 设置提前预约时长")
|
||||
@PostMapping("/setTime")
|
||||
public void setTime(@Validated(value = TimeParam.create.class)
|
||||
@RequestBody TimeParam timeParam) {
|
||||
iOrderTimeService.setTime(timeParam);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
package com.hcy.admin.controller.pay;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.pay.IDevPayService;
|
||||
import com.hcy.admin.validate.pay.DevPayParam;
|
||||
import com.hcy.admin.vo.pay.DevPayDetailVo;
|
||||
import com.hcy.admin.vo.pay.DevPayListVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 支付配置管理
|
||||
*/
|
||||
@Api(tags = "支付配置管理")
|
||||
@RestController
|
||||
@RequestMapping("api/pay")
|
||||
public class DevPayController {
|
||||
|
||||
@Resource
|
||||
IDevPayService iDevPayService;
|
||||
|
||||
/**
|
||||
* 支付配置列表
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "支付配置管理 - 列表")
|
||||
@GetMapping("/list")
|
||||
public List<DevPayListVo> list() {
|
||||
return iDevPayService.listPage();
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付配置详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "支付配置管理 - 详情")
|
||||
@GetMapping("/detail")
|
||||
public DevPayDetailVo detail(@Validated @RequestParam("id") Long id) {
|
||||
return iDevPayService.detail(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 支付配置编辑
|
||||
*
|
||||
* @param devPayParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "支付配置管理 - 编辑")
|
||||
@Log(title = "支付配置编辑")
|
||||
@PostMapping("/edit")
|
||||
public void edit(@Validated(value = DevPayParam.update.class) @RequestBody DevPayParam devPayParam) throws Exception {
|
||||
iDevPayService.edit(devPayParam);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package com.hcy.admin.controller.pay;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.way.IDevPayWayService;
|
||||
import com.hcy.admin.validate.way.DevPayWayParam;
|
||||
import com.hcy.admin.vo.way.DevPayWayListVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 支付方式管理
|
||||
*/
|
||||
@Api(tags = "支付方式管理")
|
||||
@RestController
|
||||
@RequestMapping("api/way")
|
||||
public class DevPayWayController {
|
||||
|
||||
@Resource
|
||||
IDevPayWayService iDevPayWayService;
|
||||
|
||||
/**
|
||||
* 支付方式列表
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "支付方式管理 - 列表")
|
||||
@GetMapping("/list")
|
||||
public Map<Long, List<DevPayWayListVo>> list() {
|
||||
return iDevPayWayService.listPage();
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付方式编辑
|
||||
*
|
||||
* @param devPayWayParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "支付方式管理 - 编辑")
|
||||
@Log(title = "支付方式编辑")
|
||||
@PostMapping("/edit")
|
||||
public void edit(@Validated(value = DevPayWayParam.update.class) @RequestBody List<DevPayWayParam> devPayWayParam) {
|
||||
iDevPayWayService.edit(devPayWayParam);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.hcy.admin.controller.recharge;
|
||||
|
||||
import com.hcy.admin.service.recharge.IRechargeOrderService;
|
||||
import com.hcy.admin.validate.common.PageValidate;
|
||||
import com.hcy.admin.validate.finance.FinanceRechargeSearchValidate;
|
||||
import com.hcy.admin.vo.finance.FinanceRechargeListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/recharge")
|
||||
public class RechargeController {
|
||||
|
||||
@Resource
|
||||
private IRechargeOrderService iRechargeOrderService;
|
||||
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(@Validated PageValidate pageValidate,
|
||||
@Validated FinanceRechargeSearchValidate searchValidate){
|
||||
PageResult<FinanceRechargeListVo> list = iRechargeOrderService.list(pageValidate, searchValidate);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.hcy.admin.controller.refund;
|
||||
|
||||
import com.hcy.admin.service.finance.IFinanceService;
|
||||
import com.hcy.admin.vo.finance.FinanceVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @ClassName FinanceController
|
||||
* @Description
|
||||
* @Autore Slien.zuo
|
||||
* @Date 2022/10/13 19:17
|
||||
* @Version 1.0
|
||||
**/
|
||||
@Api(tags = "财务中心")
|
||||
@RestController
|
||||
@RequestMapping("api/finance")
|
||||
public class FinanceController {
|
||||
|
||||
@Resource
|
||||
private IFinanceService financeService;
|
||||
|
||||
@GetMapping("statistics")
|
||||
@ApiOperation(value = "财务中心 - 经营中心")
|
||||
public FinanceVo statisticsFinance() {
|
||||
return financeService.statisticsFinance();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
package com.hcy.admin.controller.refund;
|
||||
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.hcy.admin.service.log.IOrderRefundLogService;
|
||||
import com.hcy.admin.service.refund.IOrderRefundService;
|
||||
import com.hcy.admin.validate.refund.OrderRefundPageParam;
|
||||
import com.hcy.admin.vo.log.OrderRefundLogDetailVo;
|
||||
import com.hcy.admin.vo.refund.OrderRefundListVo;
|
||||
import com.hcy.admin.vo.refund.StatisticsOrderRefundCountVo;
|
||||
import com.hcy.admin.vo.refund.StatisticsOrderRefundVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.refund.OrderRefund;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单退款管理
|
||||
*/
|
||||
@Api(tags = "订单退款管理")
|
||||
@RestController
|
||||
@RequestMapping("api/refund")
|
||||
public class OrderRefundController {
|
||||
|
||||
@Resource
|
||||
IOrderRefundService iOrderRefundService;
|
||||
|
||||
@Resource
|
||||
private IOrderRefundLogService iOrderRefundLogService;
|
||||
|
||||
/**
|
||||
* 订单退款列表
|
||||
*
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
* @author slien
|
||||
*/
|
||||
@ApiOperation(value = "订单退款管理 - 列表")
|
||||
@PostMapping("/list")
|
||||
public PageResult<OrderRefundListVo> list(@RequestBody OrderRefundPageParam params) {
|
||||
return iOrderRefundService.list(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 统计订单状态的数据
|
||||
* @Date 11:47 2022/10/11
|
||||
* @Param []
|
||||
**/
|
||||
@ApiOperation(value = "订单退款管理 - 统计数量")
|
||||
@PostMapping("/statistics/count")
|
||||
public StatisticsOrderRefundCountVo statisticsCount(@RequestBody OrderRefundPageParam params) {
|
||||
return iOrderRefundService.statisticsCount(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return java.lang.Object
|
||||
* @Author slien
|
||||
* @Description 统计订单状态的数据
|
||||
* @Date 11:47 2022/10/11
|
||||
* @Param []
|
||||
**/
|
||||
@ApiOperation(value = "订单退款管理 - 统计金额")
|
||||
@GetMapping("/statistics/amount")
|
||||
public StatisticsOrderRefundVo statisticsAmount() {
|
||||
return iOrderRefundService.statisticsAmount();
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单退款日志详情
|
||||
*
|
||||
* @param refundId 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单退款管理 - 退款详情")
|
||||
@GetMapping("/detail")
|
||||
public List<OrderRefundLogDetailVo> detail(@RequestParam("refundId") Long refundId) {
|
||||
return iOrderRefundLogService.detail(refundId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单重新退款
|
||||
*
|
||||
* @param paramMap 退款信息
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "订单退款管理 - 重新退款")
|
||||
@PostMapping("/repeat")
|
||||
public Object repeatRefund(@RequestBody Map<String,String> paramMap) throws WxPayException {
|
||||
iOrderRefundService.repeatRefund(paramMap);
|
||||
return AjaxResult.success("操作成功");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
package com.hcy.admin.controller.region;
|
||||
|
||||
import com.github.xiaoymin.map.model.MapLocation;
|
||||
import com.github.xiaoymin.map.request.tencent.AmapGenCoderRequest;
|
||||
import com.github.xiaoymin.map.response.amap.tencent.AmapGenCoderResponse;
|
||||
import com.hcy.admin.service.region.IDevRegionService;
|
||||
import com.hcy.admin.vo.region.DevRegionListVo;
|
||||
import com.hcy.common.config.map.LikeTenCentClient;
|
||||
import com.hcy.common.enums.RegionLevelEnum;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 地区管理
|
||||
*/
|
||||
@Api(tags = "地区管理")
|
||||
@RestController
|
||||
@RequestMapping("api/region")
|
||||
public class DevRegionController {
|
||||
|
||||
@Resource
|
||||
IDevRegionService iDevRegionService;
|
||||
|
||||
@Resource
|
||||
private LikeTenCentClient mapClient;
|
||||
|
||||
/**
|
||||
* 省市区树形结构
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "省市区树形结构")
|
||||
@GetMapping("/tree")
|
||||
public List<DevRegionListVo> tree() {
|
||||
// 树形结构
|
||||
return iDevRegionService.tree();
|
||||
}
|
||||
|
||||
/**
|
||||
* 省
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "获取省")
|
||||
@GetMapping("/province")
|
||||
public List<DevRegionListVo> province() {
|
||||
// 国家下查省级数据
|
||||
return iDevRegionService.province(RegionLevelEnum.PROVINCE.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* 市
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "获取城市")
|
||||
@GetMapping("/city")
|
||||
public List<DevRegionListVo> city(@RequestParam(value = "provinceId", required = false) Long provinceId) {
|
||||
// 省下查市数据
|
||||
return iDevRegionService.city(provinceId, RegionLevelEnum.CITY.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* 区
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "获取县/区")
|
||||
@GetMapping("/district")
|
||||
public List<DevRegionListVo> district(@RequestParam(value = "cityId", required = false) Long cityId) {
|
||||
// 市下查县区数据
|
||||
return iDevRegionService.district(cityId, RegionLevelEnum.DISTRICT.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除缓存
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "删除缓存")
|
||||
@GetMapping("/del/cache")
|
||||
public void delCache() {
|
||||
// 删除缓存
|
||||
iDevRegionService.delCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据经纬度获取详细地址
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/genCoder")
|
||||
public AmapGenCoderResponse genCoder(@RequestBody AmapGenCoderRequest request) {
|
||||
Optional<AmapGenCoderResponse> tencentGenCoderResponse = mapClient.genCoder(request);
|
||||
return tencentGenCoderResponse.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据经纬度获取详细地址
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/keyWordAddress")
|
||||
public MapLocation genCoder(@RequestParam("keyWord") String keyWord) {
|
||||
return mapClient.address(keyWord);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package com.hcy.admin.controller.reply;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.reply.IOfficialAccountReplyService;
|
||||
import com.hcy.admin.validate.reply.OfficialAccountReplyParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.reply.OfficialAccountReplyListVo;
|
||||
import com.hcy.admin.vo.reply.OfficialAccountReplyDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 微信公众号自动回复管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/reply")
|
||||
public class OfficialAccountReplyController {
|
||||
|
||||
@Resource
|
||||
IOfficialAccountReplyService iOfficialAccountReplyService;
|
||||
|
||||
/**
|
||||
* 微信公众号自动回复列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<OfficialAccountReplyListVo> list = iOfficialAccountReplyService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 微信公众号自动回复详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
OfficialAccountReplyDetailVo detail = iOfficialAccountReplyService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信公众号自动回复新增
|
||||
*
|
||||
* @param officialAccountReplyParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "微信公众号自动回复新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = OfficialAccountReplyParam.create.class) @RequestBody OfficialAccountReplyParam officialAccountReplyParam) {
|
||||
iOfficialAccountReplyService.add(officialAccountReplyParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信公众号自动回复编辑
|
||||
*
|
||||
* @param officialAccountReplyParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "微信公众号自动回复编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = OfficialAccountReplyParam.update.class) @RequestBody OfficialAccountReplyParam officialAccountReplyParam) {
|
||||
iOfficialAccountReplyService.edit(officialAccountReplyParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信公众号自动回复删除
|
||||
*
|
||||
* @param officialAccountReplyParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "微信公众号自动回复删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = OfficialAccountReplyParam.delete.class) @RequestBody OfficialAccountReplyParam officialAccountReplyParam) {
|
||||
// iOfficialAccountReplyService.del(officialAccountReplyParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
package com.hcy.admin.controller.serviceArea;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.serviceArea.IServiceAreaService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.serviceArea.ServiceAreaParam;
|
||||
import com.hcy.admin.vo.serviceArea.ServiceAreaListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@Api(tags = "服务区域管理")
|
||||
@RestController
|
||||
@RequestMapping("api/serviceArea")
|
||||
public class ServiceAreaController {
|
||||
|
||||
@Resource
|
||||
IServiceAreaService iServiceAreaService;
|
||||
|
||||
/**
|
||||
* 服务单位列表
|
||||
*
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@ApiOperation(value = "服务区域查询")
|
||||
@GetMapping("/list")
|
||||
public PageResult<ServiceAreaListVo> list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
return iServiceAreaService.list(pageParam, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务区域新增
|
||||
*
|
||||
* @param goodsUnitParam 参数
|
||||
*/
|
||||
@ApiOperation(value = "服务区域新增")
|
||||
@Log(title = "服务单位新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = ServiceAreaParam.create.class) @RequestBody ServiceAreaParam serviceAreaParam) {
|
||||
iServiceAreaService.add(serviceAreaParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务区域删除
|
||||
* @param id
|
||||
*/
|
||||
@ApiOperation(value = "服务区域删除")
|
||||
@Log(title = "服务单位删除")
|
||||
@GetMapping("/del")
|
||||
public Object del(@RequestParam("id") Long id) {
|
||||
iServiceAreaService.del(id);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package com.hcy.admin.controller.serviceArea;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.serviceArea.IServiceAreaStaffService;
|
||||
import com.hcy.admin.validate.serviceArea.ServiceAreaStaffParam;
|
||||
import com.hcy.admin.vo.serviceArea.ServiceAreaListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = "服务区域管理")
|
||||
@RestController
|
||||
@RequestMapping("api/serviceAreaStaff")
|
||||
public class ServiceAreaStaffController {
|
||||
@Resource
|
||||
IServiceAreaStaffService iServiceAreaStaffService;
|
||||
|
||||
@ApiOperation(value = "师傅服务区域查询")
|
||||
@Log(title = "师傅服务区域查询")
|
||||
@GetMapping("/list")
|
||||
public Object areaList(@RequestParam Long staffId) {
|
||||
List<ServiceAreaListVo> list = iServiceAreaStaffService.list(staffId);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加师傅服务区域")
|
||||
@Log(title = "添加师傅服务区域")
|
||||
@PostMapping("/add")
|
||||
public Object areaAdd(@Validated(value = ServiceAreaStaffParam.create.class) @RequestBody ServiceAreaStaffParam param) {
|
||||
iServiceAreaStaffService.add(param);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除师傅服务区域")
|
||||
@Log(title = "删除师傅服务区域")
|
||||
@PostMapping("/del")
|
||||
public Object areaDel(@Validated(value = ServiceAreaStaffParam.create.class) @RequestBody ServiceAreaStaffParam param) {
|
||||
iServiceAreaStaffService.del(param);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "批量更改师傅服务区域")
|
||||
@Log(title = "批量更改师傅服务区域")
|
||||
@PostMapping("/edit")
|
||||
public Object areaEdit(@RequestBody List<ServiceAreaStaffParam> params) {
|
||||
iServiceAreaStaffService.edit(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package com.hcy.admin.controller.session;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.session.IAdminSessionService;
|
||||
import com.hcy.admin.validate.session.AdminSessionParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.session.AdminSessionListVo;
|
||||
import com.hcy.admin.vo.session.AdminSessionDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 会话管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/admin/session")
|
||||
public class AdminSessionController {
|
||||
|
||||
@Resource
|
||||
IAdminSessionService iAdminSessionService;
|
||||
|
||||
/**
|
||||
* 会话列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<AdminSessionListVo> list = iAdminSessionService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 会话详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
AdminSessionDetailVo detail = iAdminSessionService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话新增
|
||||
*
|
||||
* @param adminSessionParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "会话新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = AdminSessionParam.create.class) @RequestBody AdminSessionParam adminSessionParam) {
|
||||
iAdminSessionService.add(adminSessionParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话编辑
|
||||
*
|
||||
* @param adminSessionParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "会话编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = AdminSessionParam.update.class) @RequestBody AdminSessionParam adminSessionParam) {
|
||||
iAdminSessionService.edit(adminSessionParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话删除
|
||||
*
|
||||
* @param adminSessionParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "会话删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = AdminSessionParam.delete.class) @RequestBody AdminSessionParam adminSessionParam) {
|
||||
// iAdminSessionService.del(adminSessionParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package com.hcy.admin.controller.session;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.session.IUserSessionService;
|
||||
import com.hcy.admin.validate.session.UserSessionParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.session.UserSessionListVo;
|
||||
import com.hcy.admin.vo.session.UserSessionDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 用户会话管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/user/session")
|
||||
public class UserSessionController {
|
||||
|
||||
@Resource
|
||||
IUserSessionService iUserSessionService;
|
||||
|
||||
/**
|
||||
* 用户会话列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<UserSessionListVo> list = iUserSessionService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 用户会话详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
UserSessionDetailVo detail = iUserSessionService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户会话新增
|
||||
*
|
||||
* @param userSessionParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "用户会话新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = UserSessionParam.create.class) @RequestBody UserSessionParam userSessionParam) {
|
||||
iUserSessionService.add(userSessionParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户会话编辑
|
||||
*
|
||||
* @param userSessionParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "用户会话编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = UserSessionParam.update.class) @RequestBody UserSessionParam userSessionParam) {
|
||||
iUserSessionService.edit(userSessionParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户会话删除
|
||||
*
|
||||
* @param userSessionParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "用户会话删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = UserSessionParam.delete.class) @RequestBody UserSessionParam userSessionParam) {
|
||||
// iUserSessionService.del(userSessionParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingCopyrightService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 网站版权配置管理
|
||||
*/
|
||||
@RestController("settingCopyrightController")
|
||||
@RequestMapping("api/setting/copyright")
|
||||
public class CopyrightController {
|
||||
|
||||
@Resource
|
||||
ISettingCopyrightService iSettingCopyrightService;
|
||||
|
||||
/**
|
||||
* 获取网站版权信息
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
List<Map<String, String>> list = iSettingCopyrightService.detail();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存网站版本信息
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody List<Map<String, String>> params) {
|
||||
iSettingCopyrightService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.setting.IDevNoticeSettingService;
|
||||
import com.hcy.admin.validate.setting.DevNoticeSettingParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.setting.DevNoticeSettingListVo;
|
||||
import com.hcy.admin.vo.setting.DevNoticeSettingDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 通知设置管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/setting")
|
||||
public class DevNoticeSettingController {
|
||||
|
||||
@Resource
|
||||
IDevNoticeSettingService iDevNoticeSettingService;
|
||||
|
||||
/**
|
||||
* 通知设置列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<DevNoticeSettingListVo> list = iDevNoticeSettingService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 通知设置详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
DevNoticeSettingDetailVo detail = iDevNoticeSettingService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知设置新增
|
||||
*
|
||||
* @param devNoticeSettingParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "通知设置新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = DevNoticeSettingParam.create.class) @RequestBody DevNoticeSettingParam devNoticeSettingParam) {
|
||||
iDevNoticeSettingService.add(devNoticeSettingParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知设置编辑
|
||||
*
|
||||
* @param devNoticeSettingParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "通知设置编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = DevNoticeSettingParam.update.class) @RequestBody DevNoticeSettingParam devNoticeSettingParam) {
|
||||
iDevNoticeSettingService.edit(devNoticeSettingParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知设置删除
|
||||
*
|
||||
* @param devNoticeSettingParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "通知设置删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = DevNoticeSettingParam.delete.class) @RequestBody DevNoticeSettingParam devNoticeSettingParam) {
|
||||
//iDevNoticeSettingService.del(devNoticeSettingParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
import com.hcy.admin.service.setting.ISettingDictDataService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.setting.DictDataParam;
|
||||
import com.hcy.admin.vo.setting.DictDataVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 字典数据配置管理
|
||||
*/
|
||||
@RestController("settingDictDataController")
|
||||
@RequestMapping("api/setting/dict/data")
|
||||
public class DictDataController {
|
||||
|
||||
@Resource
|
||||
ISettingDictDataService iSettingDictDataService;
|
||||
|
||||
/**
|
||||
* 字典数据所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/all")
|
||||
public Object all(@RequestParam Map<String, String> params) {
|
||||
Assert.isFalse(StringUtil.isEmpty(params.get("dictType")), "dictType缺失");
|
||||
List<DictDataVo> list = iSettingDictDataService.all(params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典数据列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
Assert.isFalse(StringUtil.isEmpty(params.get("dictType")), "dictType缺失");
|
||||
PageResult<DictDataVo> list = iSettingDictDataService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典数据详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
DictDataVo vo = iSettingDictDataService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典数据新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param dictDataParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = DictDataParam.create.class) @RequestBody DictDataParam dictDataParam) {
|
||||
iSettingDictDataService.add(dictDataParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典数据编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param dictDataParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = DictDataParam.update.class) @RequestBody DictDataParam dictDataParam) {
|
||||
iSettingDictDataService.edit(dictDataParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典数据删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param dictDataParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = DictDataParam.delete.class) @RequestBody DictDataParam dictDataParam) {
|
||||
iSettingDictDataService.del(dictDataParam.getIds());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingDictTypeService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.setting.DictTypeParam;
|
||||
import com.hcy.admin.vo.setting.DictTypeVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 字典类型配置管理
|
||||
*/
|
||||
@RestController("settingDictTypeController")
|
||||
@RequestMapping("api/setting/dict/type")
|
||||
public class DictTypeController {
|
||||
|
||||
@Resource
|
||||
ISettingDictTypeService iSettingDictTypeService;
|
||||
|
||||
/**
|
||||
* 字典类型所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/all")
|
||||
public Object all() {
|
||||
List<DictTypeVo> list = iSettingDictTypeService.all();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典类型列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<DictTypeVo> list = iSettingDictTypeService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典类型详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
DictTypeVo vo = iSettingDictTypeService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典类型新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param dictTypeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = DictTypeParam.create.class) @RequestBody DictTypeParam dictTypeParam) {
|
||||
iSettingDictTypeService.add(dictTypeParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典类型编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param dictTypeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = DictTypeParam.update.class) @RequestBody DictTypeParam dictTypeParam) {
|
||||
iSettingDictTypeService.edit(dictTypeParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典类型删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param dictTypeParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = DictTypeParam.delete.class) @RequestBody DictTypeParam dictTypeParam) {
|
||||
iSettingDictTypeService.del(dictTypeParam.getIds());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingLoginService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController("settingLoginController")
|
||||
@RequestMapping("api/setting/login")
|
||||
public class LoginController {
|
||||
|
||||
@Resource
|
||||
ISettingLoginService iSettingLoginService;
|
||||
|
||||
/**
|
||||
* 登录设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
Map<String, Object> map = iSettingLoginService.detail();
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> params) {
|
||||
iSettingLoginService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingNoticeService;
|
||||
import com.hcy.admin.vo.setting.NoticeDetailVo;
|
||||
import com.hcy.admin.vo.setting.NoticeListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 通知设置管理
|
||||
*/
|
||||
@RestController("settingNoticeController")
|
||||
@RequestMapping("api/setting/notice")
|
||||
public class NoticeController {
|
||||
|
||||
@Resource
|
||||
ISettingNoticeService iSettingNoticeService;
|
||||
|
||||
/**
|
||||
* 通知设置列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param recipient 类型: 1=用户, 2=平台
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@RequestParam Integer recipient) {
|
||||
List<NoticeListVo> list = iSettingNoticeService.list(recipient);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
NoticeDetailVo vo = iSettingNoticeService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, Object> params) {
|
||||
iSettingNoticeService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingProtocolService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 政策协议配置管理
|
||||
*/
|
||||
@RestController("settingProtocolController")
|
||||
@RequestMapping("api/setting/protocol")
|
||||
public class ProtocolController {
|
||||
|
||||
@Resource
|
||||
ISettingProtocolService iSettingProtocolService;
|
||||
|
||||
/**
|
||||
* 获取网站版权信息
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
Map<String, Map<String, String>> detail = iSettingProtocolService.detail();
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存网站版本信息
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, Object> params) {
|
||||
iSettingProtocolService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.IRechargeConfigService;
|
||||
import com.hcy.admin.validate.setting.RechargeConfigValidate;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/recharge/config")
|
||||
public class RechargeConfigController {
|
||||
|
||||
@Resource
|
||||
private IRechargeConfigService iRechargeConfigService;
|
||||
|
||||
@GetMapping("/getConfig")
|
||||
public AjaxResult getConfig(){
|
||||
Map<String, Object> config = iRechargeConfigService.getConfig();
|
||||
return AjaxResult.success(config);
|
||||
}
|
||||
|
||||
@PostMapping("/setConfig")
|
||||
public AjaxResult setConfig(@RequestBody RechargeConfigValidate rechargeConfigValidate){
|
||||
iRechargeConfigService.setConfig(rechargeConfigValidate);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingSearchService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 热搜设置
|
||||
*/
|
||||
@RestController("settingSearchController")
|
||||
@RequestMapping("api/setting/search")
|
||||
public class SearchController {
|
||||
|
||||
@Resource
|
||||
ISettingSearchService iSettingSearchService;
|
||||
|
||||
/**
|
||||
* 热门搜索详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
Map<String, Object> map = iSettingSearchService.detail();
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 热门搜索保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, Object> params) {
|
||||
iSettingSearchService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.setting.ISettingSmsService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 短信设置管理
|
||||
*/
|
||||
@RestController("settingSmsController")
|
||||
@RequestMapping("api/setting/sms")
|
||||
public class SmsController {
|
||||
|
||||
@Resource
|
||||
ISettingSmsService iSettingSmsService;
|
||||
|
||||
/**
|
||||
* 短信引擎列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list() {
|
||||
List<Map<String, Object>> list = iSettingSmsService.list();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 短信引擎详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param alias 别名
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(String alias) {
|
||||
Map<String, Object> map = iSettingSmsService.detail(alias);
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 短信引擎保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "短信引擎保存")
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> params) {
|
||||
iSettingSmsService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
import com.hcy.admin.service.setting.ISettingStorageService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 存储方式配置管理
|
||||
*/
|
||||
@RestController("settingStorageController")
|
||||
@RequestMapping("api/setting/storage")
|
||||
public class StorageController {
|
||||
|
||||
@Resource
|
||||
ISettingStorageService iSettingStorageService;
|
||||
|
||||
/**
|
||||
* 存储列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list() {
|
||||
List<Map<String, Object>> list = iSettingStorageService.list();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 存储详情
|
||||
*
|
||||
* @param alias 引擎别名
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(String alias) {
|
||||
Map<String, Object> map = iSettingStorageService.detail(alias);
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 存储编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@RequestBody Map<String, String> params) {
|
||||
iSettingStorageService.edit(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 存储切换
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/change")
|
||||
public Object change(@RequestBody Map<String, String> params) {
|
||||
Assert.notNull(params.get("alias"), "alias参数缺失");
|
||||
Assert.notNull(params.get("status"), "status参数缺失");
|
||||
String alias = params.get("alias");
|
||||
Integer status = Integer.parseInt(params.get("status"));
|
||||
iSettingStorageService.change(alias, status);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.vo.setting.TransactionSettingVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.utils.ConfigUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统交易设置
|
||||
*/
|
||||
@Api(tags = "系统交易设置")
|
||||
@RestController("settingTransactionController")
|
||||
@RequestMapping("api/setting/transaction")
|
||||
public class TransactionController {
|
||||
|
||||
|
||||
/**
|
||||
* 查询交易设置
|
||||
*
|
||||
* @return Object
|
||||
* @author fzr
|
||||
*/
|
||||
@ApiOperation(value = "系统交易设置 - 查询交易设置")
|
||||
@GetMapping("")
|
||||
public TransactionSettingVo transactionDetail() {
|
||||
Map<String, String> map = ConfigUtil.get(GlobalConstant.TRANSACTION_SETTING);
|
||||
TransactionSettingVo vo = new TransactionSettingVo();
|
||||
vo.setCancelUnpaidOrders(map.get(GlobalConstant.CANCEL_UNPAID_ORDERS));
|
||||
vo.setVerificationOrders(map.get(GlobalConstant.VERIFICATION_ORDERS));
|
||||
vo.setCancelUnpaidOrdersTimes(map.get(GlobalConstant.CANCEL_UNPAID_ORDERS_TIMES));
|
||||
vo.setVerificationOrdersTimes(map.get(GlobalConstant.VERIFICATION_ORDERS_TIMES));
|
||||
vo.setIsAuthDispatch(map.get(GlobalConstant.IS_AUTH_DISPATCH));
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置交易
|
||||
*
|
||||
* @return Object
|
||||
* @author fzr
|
||||
*/
|
||||
@ApiOperation(value = "系统交易设置 - 设置交易")
|
||||
@PostMapping("")
|
||||
public void setTransaction(@RequestBody TransactionSettingVo vo) {
|
||||
ConfigUtil.set(GlobalConstant.TRANSACTION_SETTING, GlobalConstant.VERIFICATION_ORDERS, vo.getVerificationOrders());
|
||||
ConfigUtil.set(GlobalConstant.TRANSACTION_SETTING, GlobalConstant.VERIFICATION_ORDERS_TIMES, vo.getVerificationOrdersTimes());
|
||||
ConfigUtil.set(GlobalConstant.TRANSACTION_SETTING, GlobalConstant.CANCEL_UNPAID_ORDERS, vo.getCancelUnpaidOrders());
|
||||
ConfigUtil.set(GlobalConstant.TRANSACTION_SETTING, GlobalConstant.CANCEL_UNPAID_ORDERS_TIMES, vo.getCancelUnpaidOrdersTimes());
|
||||
ConfigUtil.set(GlobalConstant.TRANSACTION_SETTING, GlobalConstant.IS_AUTH_DISPATCH, vo.getIsAuthDispatch());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingUserService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 用户设置管理
|
||||
*/
|
||||
@RestController("settingUserController")
|
||||
@RequestMapping("api/setting/user")
|
||||
public class UserController {
|
||||
|
||||
@Resource
|
||||
ISettingUserService iSettingUserService;
|
||||
|
||||
/**
|
||||
* 用户设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
Map<String, Object> map = iSettingUserService.detail();
|
||||
return AjaxResult.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> params) {
|
||||
iSettingUserService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
package com.hcy.admin.controller.setting;
|
||||
|
||||
import com.hcy.admin.service.setting.ISettingWebsiteService;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.utils.ConfigUtil;
|
||||
import com.hcy.common.utils.YmlUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 网站信息配置管理
|
||||
*/
|
||||
@RestController("settingWebsiteController")
|
||||
@RequestMapping("api/setting/website")
|
||||
public class WebsiteController {
|
||||
|
||||
@Resource
|
||||
ISettingWebsiteService iSettingWebsiteService;
|
||||
|
||||
/**
|
||||
* 获取网站配置信息
|
||||
*
|
||||
* @return Object
|
||||
* @author fzr
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail() {
|
||||
Map<String, String> detail = iSettingWebsiteService.detail();
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存网站配置信息
|
||||
*
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
* @author fzr
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, String> params) {
|
||||
iSettingWebsiteService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取地图的配置
|
||||
*
|
||||
* @param
|
||||
* @return Object
|
||||
* @author fzr
|
||||
*/
|
||||
@GetMapping("/getMapKey")
|
||||
public Map<String, String> getMapKey() {
|
||||
String env = YmlUtil.get("like.production");
|
||||
boolean envStatus = StringUtils.isNotEmpty(env) && env.equals("true");
|
||||
Map<String, String> mapKey = ConfigUtil.get("website_map_key");
|
||||
String value = mapKey.get("tencent_map_key");
|
||||
value = envStatus ? "******" : value;
|
||||
mapKey.put("tencent_map_key", value);
|
||||
return mapKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置地图的配置
|
||||
*
|
||||
* @param
|
||||
* @return Object
|
||||
* @author fzr
|
||||
*/
|
||||
@PostMapping("/setMapKey")
|
||||
public void setMapKey(@RequestBody Map<String, String> params) {
|
||||
for (Map.Entry<String, String> entry : params.entrySet()) {
|
||||
ConfigUtil.set("website_map_key", entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.system.ISystemAuthAdminService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.system.SystemAuthAdminParam;
|
||||
import com.hcy.admin.vo.system.SystemAuthAdminVo;
|
||||
import com.hcy.admin.vo.system.SystemAuthSelfVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统管理员管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/system/admin")
|
||||
public class AuthAdminController {
|
||||
|
||||
@Resource
|
||||
ISystemAuthAdminService iSystemAuthAdminService;
|
||||
|
||||
/**
|
||||
* 管理员列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<SystemAuthAdminVo> list = iSystemAuthAdminService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员信息
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/self")
|
||||
public Object self() {
|
||||
Integer adminId = AdminThreadLocal.getAdminId();
|
||||
SystemAuthSelfVo vo = iSystemAuthAdminService.self(adminId);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
SystemAuthAdminVo vo = iSystemAuthAdminService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthAdminParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "管理员新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = SystemAuthAdminParam.create.class) @RequestBody SystemAuthAdminParam systemAuthAdminParam) {
|
||||
iSystemAuthAdminService.add(systemAuthAdminParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthAdminParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "管理员编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SystemAuthAdminParam.update.class) @RequestBody SystemAuthAdminParam systemAuthAdminParam) {
|
||||
iSystemAuthAdminService.edit(systemAuthAdminParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前管理员更新
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "管理员更新")
|
||||
@PostMapping("/upInfo")
|
||||
public Object upInfo(@Validated(value = SystemAuthAdminParam.upInfo.class) @RequestBody SystemAuthAdminParam systemAuthAdminParam) {
|
||||
Integer adminId = AdminThreadLocal.getAdminId();
|
||||
iSystemAuthAdminService.upInfo(systemAuthAdminParam, adminId);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员删除
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "管理员删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SystemAuthAdminParam.delete.class) @RequestBody SystemAuthAdminParam systemAuthAdminParam) {
|
||||
iSystemAuthAdminService.del(systemAuthAdminParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员状态切换
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "管理员状态切换")
|
||||
@PostMapping("/disable")
|
||||
public Object disable(@Validated(value = SystemAuthAdminParam.delete.class) @RequestBody SystemAuthAdminParam systemAuthAdminParam) {
|
||||
iSystemAuthAdminService.disable(systemAuthAdminParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.hcy.admin.service.system.ISystemAuthDeptService;
|
||||
import com.hcy.admin.validate.system.SystemAuthDeptParam;
|
||||
import com.hcy.admin.vo.system.SystemAuthDeptVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统部门管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/system/dept")
|
||||
public class AuthDeptController {
|
||||
|
||||
@Resource
|
||||
ISystemAuthDeptService iSystemAuthDeptService;
|
||||
|
||||
/**
|
||||
* 部门所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/all")
|
||||
public Object all() {
|
||||
List<SystemAuthDeptVo> vos = iSystemAuthDeptService.all();
|
||||
return AjaxResult.success(vos);
|
||||
}
|
||||
|
||||
/**
|
||||
* 部门列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@RequestParam Map<String, String> params) {
|
||||
JSONArray list = iSystemAuthDeptService.list(params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 部门详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
SystemAuthDeptVo vo = iSystemAuthDeptService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 部门新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthDeptParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = SystemAuthDeptParam.create.class) @RequestBody SystemAuthDeptParam systemAuthDeptParam) {
|
||||
iSystemAuthDeptService.add(systemAuthDeptParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 部门编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthDeptParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SystemAuthDeptParam.update.class) @RequestBody SystemAuthDeptParam systemAuthDeptParam) {
|
||||
iSystemAuthDeptService.edit(systemAuthDeptParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 部门删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthDeptParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SystemAuthDeptParam.delete.class) @RequestBody SystemAuthDeptParam systemAuthDeptParam) {
|
||||
iSystemAuthDeptService.del(systemAuthDeptParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.system.ISystemAuthMenuService;
|
||||
import com.hcy.admin.validate.system.SystemAuthMenuParam;
|
||||
import com.hcy.admin.vo.system.SystemAuthMenuVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 系统菜单管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/system/menu")
|
||||
public class AuthMenuController {
|
||||
|
||||
@Resource
|
||||
ISystemAuthMenuService iSystemAuthMenuService;
|
||||
|
||||
/**
|
||||
* 获取菜单路由
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/route")
|
||||
public Object route() {
|
||||
Integer roleId = AdminThreadLocal.getRoleId();
|
||||
JSONArray lists = iSystemAuthMenuService.selectMenuByRoleId(roleId);
|
||||
return AjaxResult.success(lists);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list() {
|
||||
JSONArray lists = iSystemAuthMenuService.list();
|
||||
return AjaxResult.success(lists);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
SystemAuthMenuVo vo = iSystemAuthMenuService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增菜单
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "菜单新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = SystemAuthMenuParam.create.class) @RequestBody SystemAuthMenuParam systemAuthMenuParam) {
|
||||
iSystemAuthMenuService.add(systemAuthMenuParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新菜单
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "菜单编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SystemAuthMenuParam.update.class) @RequestBody SystemAuthMenuParam systemAuthMenuParam) {
|
||||
iSystemAuthMenuService.edit(systemAuthMenuParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "菜单删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SystemAuthMenuParam.delete.class) @RequestBody SystemAuthMenuParam systemAuthMenuParam) {
|
||||
iSystemAuthMenuService.del(systemAuthMenuParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.hcy.admin.service.system.ISystemAuthPostService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.system.SystemAuthPostParam;
|
||||
import com.hcy.admin.vo.system.SystemAuthPostVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统岗位管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/system/post")
|
||||
public class AuthPostController {
|
||||
|
||||
@Resource
|
||||
ISystemAuthPostService iSystemAuthPostService;
|
||||
|
||||
/**
|
||||
* 岗位所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/all")
|
||||
public Object all() {
|
||||
List<SystemAuthPostVo> vos = iSystemAuthPostService.all();
|
||||
return AjaxResult.success(vos);
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位列表
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<SystemAuthPostVo> list = iSystemAuthPostService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
SystemAuthPostVo vo = iSystemAuthPostService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthPostParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = SystemAuthPostParam.create.class) @RequestBody SystemAuthPostParam systemAuthPostParam) {
|
||||
iSystemAuthPostService.add(systemAuthPostParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthPostParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SystemAuthPostParam.update.class) @RequestBody SystemAuthPostParam systemAuthPostParam) {
|
||||
iSystemAuthPostService.edit(systemAuthPostParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthPostParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SystemAuthPostParam.delete.class) @RequestBody SystemAuthPostParam systemAuthPostParam) {
|
||||
iSystemAuthPostService.del(systemAuthPostParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.system.ISystemAuthRoleService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.system.SystemAuthRoleParam;
|
||||
import com.hcy.admin.vo.system.SystemAuthRoleVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统角色管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/system/role")
|
||||
public class AuthRoleController {
|
||||
|
||||
@Resource
|
||||
ISystemAuthRoleService iSystemAuthRoleService;
|
||||
|
||||
/**
|
||||
* 角色所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/all")
|
||||
public Object all() {
|
||||
List<Map<String, Object>> list = iSystemAuthRoleService.all();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 角色列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "角色列表")
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam) {
|
||||
PageResult<SystemAuthRoleVo> lists = iSystemAuthRoleService.list(pageParam);
|
||||
return AjaxResult.success(lists);
|
||||
}
|
||||
|
||||
/**
|
||||
* 角色详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "角色详情")
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
SystemAuthRoleVo vo = iSystemAuthRoleService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增角色
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthRoleParam 角色参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "角色新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = SystemAuthRoleParam.create.class) @RequestBody SystemAuthRoleParam systemAuthRoleParam) {
|
||||
iSystemAuthRoleService.add(systemAuthRoleParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑角色
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthRoleParam 角色参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "角色编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SystemAuthRoleParam.create.class) @RequestBody SystemAuthRoleParam systemAuthRoleParam) {
|
||||
iSystemAuthRoleService.edit(systemAuthRoleParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除角色
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemAuthRoleParam 角色参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "角色删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SystemAuthRoleParam.delete.class) @RequestBody SystemAuthRoleParam systemAuthRoleParam) {
|
||||
iSystemAuthRoleService.del(systemAuthRoleParam.getId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.hcy.admin.service.system.ISystemLoginService;
|
||||
import com.hcy.admin.validate.system.SystemLoginParam;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.exception.LoginException;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统登录管理
|
||||
*/
|
||||
@RestController("systemLoginController")
|
||||
@RequestMapping("api/system")
|
||||
public class LoginController {
|
||||
|
||||
@Resource
|
||||
ISystemLoginService iSystemLoginService;
|
||||
|
||||
/**
|
||||
* 登录系统
|
||||
*
|
||||
* @author fzr
|
||||
* @param systemLoginParam 登录参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/login")
|
||||
public Object login(@Validated() @RequestBody SystemLoginParam systemLoginParam) {
|
||||
try {
|
||||
Map<String, Object> map = iSystemLoginService.login(systemLoginParam);
|
||||
return AjaxResult.success(map);
|
||||
} catch (LoginException e) {
|
||||
return AjaxResult.failed(e.getCode(), e.getMsg());
|
||||
} catch (OperateException e) {
|
||||
return AjaxResult.failed(e.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出登录
|
||||
*
|
||||
* @author fzr
|
||||
* @param request 请求接口
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/logout")
|
||||
public Object logout(HttpServletRequest request) {
|
||||
try {
|
||||
iSystemLoginService.logout(request.getHeader("token"));
|
||||
return AjaxResult.success();
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.failed(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.hcy.admin.service.system.ISystemLogsServer;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.system.LogLoginVo;
|
||||
import com.hcy.admin.vo.system.LogOperateVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统日志管理
|
||||
*/
|
||||
@RestController("systemLogController")
|
||||
@RequestMapping("api/system/log")
|
||||
public class LogsController {
|
||||
|
||||
@Resource
|
||||
ISystemLogsServer iSystemLogsServer;
|
||||
|
||||
/**
|
||||
* 系统操作日志
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/operate")
|
||||
public Object operate(@Validated PageParam pageParam, @RequestParam Map<String, String> params) {
|
||||
PageResult<LogOperateVo> list = iSystemLogsServer.operate(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统登录日志
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/login")
|
||||
public Object login(@Validated PageParam pageParam, @RequestParam Map<String, String> params) {
|
||||
PageResult<LogLoginVo> list = iSystemLogsServer.login(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
package com.hcy.admin.controller.user;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.user.IUserService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.user.UserVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 用户管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/user")
|
||||
public class UserController {
|
||||
|
||||
@Resource
|
||||
IUserService iUserService;
|
||||
|
||||
/**
|
||||
* 用户列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<UserVo> list = iUserService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
UserVo vo = iUserService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@RequestBody Map<String, String> params) {
|
||||
Assert.notNull(params.get("id"), "id参数缺失");
|
||||
Assert.notNull(params.get("field"), "field参数缺失");
|
||||
Assert.notNull(params.get("value"), "value参数缺失");
|
||||
iUserService.edit(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取未绑定分销商用户信息
|
||||
* @param pageParam 分页参数
|
||||
* @param params 参数
|
||||
* @return PageResult<UserVo>
|
||||
*/
|
||||
@Log(title = "用户列表-获取未绑定分销商用户信息")
|
||||
@GetMapping("/getNotBindingDistributorUser")
|
||||
public Object getNotBindingDistributorUser(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<UserVo> list = iUserService.getNotBindingDistributorUser(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取未绑定师傅用户信息
|
||||
* @param pageParam 分页参数
|
||||
* @param params 参数
|
||||
* @return PageResult<UserVo>
|
||||
*/
|
||||
@Log(title = "用户列表-获取未绑定师傅用户信息")
|
||||
@GetMapping("/getNotBindingStaffUser")
|
||||
public Object getNotBindingStaffUser(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<UserVo> list = iUserService.getNotBindingStaffUser(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.hcy.admin.service.account;
|
||||
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.account.AccountLogListVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author kn4im3
|
||||
* @date 2023/3/8 09:28
|
||||
*/
|
||||
public interface IAccountLogService {
|
||||
|
||||
/**
|
||||
* 余额明细列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
PageResult<AccountLogListVo> list(PageParam pageParam, Map<String, String> params);
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
package com.hcy.admin.service.account.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.query.MPJQueryWrapper;
|
||||
import com.hcy.admin.service.account.IAccountLogService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.account.AccountLogListVo;
|
||||
import com.hcy.common.config.GlobalConfig;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.account.AccountLog;
|
||||
import com.hcy.common.mapper.account.AccountLogMapper;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.UrlUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author kn4im3
|
||||
* @date 2023/3/8 09:29
|
||||
*/
|
||||
@Service
|
||||
public class AccountLogServiceImpl implements IAccountLogService {
|
||||
|
||||
@Resource
|
||||
private AccountLogMapper accountLogMapper;
|
||||
|
||||
/**
|
||||
* 余额信息列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Override
|
||||
public PageResult<AccountLogListVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
Integer pageNo = pageParam.getPageNo();
|
||||
Integer pageSize = pageParam.getPageSize();
|
||||
MPJQueryWrapper<AccountLog> mpjQueryWrapper = new MPJQueryWrapper<>();
|
||||
mpjQueryWrapper.selectAll(AccountLog.class)
|
||||
.select("u.nickname as nickname", "u.avatar as avatar", "u.sn as userSn")
|
||||
.innerJoin("?_account_log al ON al.user_id = u.id".replace("?_", GlobalConfig.tablePrefix))
|
||||
.orderByDesc("id");
|
||||
if (StringUtil.isNotEmpty(params.get("userInfo"))) {
|
||||
String userInfo = params.get("userInfo");
|
||||
mpjQueryWrapper.nested(wq -> wq
|
||||
.like("u.sn", userInfo).or()
|
||||
.like("u.nickname", userInfo).or()
|
||||
.like("u.mobile", userInfo));
|
||||
}
|
||||
accountLogMapper.setSearch(mpjQueryWrapper, params, new String[]{
|
||||
"=:changeType@t.change_type:int",
|
||||
"datetime:startTime-endTime@t.create_time:str"
|
||||
});
|
||||
IPage<AccountLogListVo> iPage = accountLogMapper.selectJoinPage(
|
||||
new Page<>(pageNo, pageSize),
|
||||
AccountLogListVo.class,
|
||||
mpjQueryWrapper);
|
||||
LinkedList<AccountLogListVo> list = new LinkedList<>();
|
||||
iPage.getRecords().forEach(item -> {
|
||||
item.setAvatar(UrlUtil.toAbsoluteUrl(item.getAvatar()));
|
||||
item.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
|
||||
list.add(item);
|
||||
});
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package com.hcy.admin.service.activity;
|
||||
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.activity.ActivityParam;
|
||||
import com.hcy.admin.vo.activity.ActivityListVo;
|
||||
import com.hcy.admin.vo.activity.ActivityDetailVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 活动服务接口类
|
||||
*/
|
||||
public interface IActivityService {
|
||||
|
||||
/**
|
||||
* 活动列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<ActivityVo>
|
||||
*/
|
||||
PageResult<ActivityListVo> list(PageParam pageParam, Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 活动详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Activity
|
||||
*/
|
||||
ActivityDetailVo detail(Integer id);
|
||||
|
||||
/**
|
||||
* 活动新增
|
||||
*
|
||||
* @param activityParam 参数
|
||||
*/
|
||||
void add(ActivityParam activityParam);
|
||||
|
||||
/**
|
||||
* 活动编辑
|
||||
*
|
||||
* @param activityParam 参数
|
||||
*/
|
||||
void edit(ActivityParam activityParam);
|
||||
|
||||
|
||||
/**
|
||||
* 活动删除
|
||||
* @param ids
|
||||
*/
|
||||
void del(List<Integer> ids);
|
||||
}
|
|
@ -0,0 +1,180 @@
|
|||
package com.hcy.admin.service.activity.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.query.MPJQueryWrapper;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.hcy.admin.service.activity.IActivityService;
|
||||
import com.hcy.admin.service.goods.IGoodsService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.activity.ActivityParam;
|
||||
import com.hcy.admin.vo.activity.ActivityListVo;
|
||||
import com.hcy.admin.vo.activity.ActivityDetailVo;
|
||||
import com.hcy.admin.vo.goods.GoodsDetailVo;
|
||||
import com.hcy.admin.vo.goods.OrderGoodsListVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.activity.Activity;
|
||||
import com.hcy.common.entity.goods.Goods;
|
||||
import com.hcy.common.entity.goods.OrderGoods;
|
||||
import com.hcy.common.entity.staff.Staff;
|
||||
import com.hcy.common.enums.GoodsCategoryStatusEnum;
|
||||
import com.hcy.common.enums.staff.StaffFeedbackEnum;
|
||||
import com.hcy.common.mapper.activity.ActivityMapper;
|
||||
import com.hcy.common.utils.ArrayUtil;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.UrlUtil;
|
||||
import com.hcy.common.config.GlobalConfig;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 活动实现类
|
||||
*/
|
||||
@Service
|
||||
public class ActivityServiceImpl implements IActivityService {
|
||||
|
||||
@Resource
|
||||
ActivityMapper activityMapper;
|
||||
|
||||
@Resource
|
||||
private IGoodsService goodsService;
|
||||
|
||||
/**
|
||||
* 活动列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* Map<String, String> params : 模糊查询参数
|
||||
* 例如:key:name value:测试1 或者 key:status value:0
|
||||
* @return PageResult<ActivityListVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<ActivityListVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
Integer page = pageParam.getPageNo();//页码
|
||||
Integer limit = pageParam.getPageSize();//每页显示的数量
|
||||
|
||||
|
||||
QueryWrapper<Activity> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_delete", GlobalConstant.NOT_DELETE);//is_delete等于0,查询没有删除的数据
|
||||
queryWrapper.orderByDesc("id");//根据id降序查询
|
||||
|
||||
//模糊查询
|
||||
activityMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:name:str",
|
||||
"=:surfacePlot@surface_plot:str",
|
||||
"=:status:int",
|
||||
"=:goodsIds@goods_ids:str",
|
||||
});
|
||||
|
||||
IPage<Activity> iPage = activityMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
|
||||
List<ActivityListVo> list = new LinkedList<>();
|
||||
|
||||
//封装数据
|
||||
for (Activity item : iPage.getRecords()) {
|
||||
ActivityListVo vo = new ActivityListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setName(item.getName());
|
||||
vo.setSurfacePlot(item.getSurfacePlot());
|
||||
vo.setStatus(item.getStatus());
|
||||
vo.setGoodsIds(item.getGoodsIds());
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动详情
|
||||
* 根据id查询一个活动
|
||||
* @param id 主键参数
|
||||
* @return Activity
|
||||
*/
|
||||
@Override
|
||||
public ActivityDetailVo detail(Integer id) {
|
||||
Activity model = activityMapper.selectOne(
|
||||
new QueryWrapper<Activity>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
|
||||
ActivityDetailVo vo = new ActivityDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
|
||||
List<Long> goodsIds = Lists.newArrayList();
|
||||
//根据字符串分割获取服务类别id
|
||||
List<String> goodsIdsStr = Arrays.asList(StringUtils.split(model.getGoodsIds(), ","));
|
||||
//Lambda表达式 将goodsIdsStr中的每个字符串元素转换为长整型,并将转换后的元素存储在goodsIds列表中。
|
||||
CollectionUtils.collect(goodsIdsStr, input -> Long.valueOf(input.toString()), goodsIds);
|
||||
|
||||
List<GoodsDetailVo> goodsDetailVoList = goodsService.detailByIds(goodsIds);
|
||||
vo.setGoodsList(goodsDetailVoList);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动新增
|
||||
*
|
||||
* @param activityParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void add(ActivityParam activityParam) {
|
||||
Activity model = new Activity();
|
||||
model.setName(activityParam.getName());
|
||||
model.setSurfacePlot(activityParam.getSurfacePlot());
|
||||
model.setStatus(activityParam.getStatus());
|
||||
model.setGoodsIds(activityParam.getGoodsIds());
|
||||
activityMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动编辑
|
||||
*
|
||||
* @param activityParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void edit(ActivityParam activityParam) {
|
||||
Activity model = activityMapper.selectOne(
|
||||
new QueryWrapper<Activity>()
|
||||
.eq("id", activityParam.getId())
|
||||
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
|
||||
model.setId(activityParam.getId());
|
||||
model.setName(activityParam.getName());
|
||||
model.setSurfacePlot(activityParam.getSurfacePlot());
|
||||
model.setStatus(activityParam.getStatus());
|
||||
model.setGoodsIds(activityParam.getGoodsIds());
|
||||
activityMapper.updateById(model);
|
||||
}
|
||||
|
||||
public void del(List<Integer> ids) {
|
||||
List<Activity> modelList = activityMapper.selectList(
|
||||
new QueryWrapper<Activity>()
|
||||
.in("id", ids));
|
||||
|
||||
Assert.notNull(modelList, "数据不存在!");
|
||||
// GlobalConstant.NOT_DELETE 调用未删除常量
|
||||
// GlobalConstant.DELETE 删除标识
|
||||
|
||||
for (Activity activity : modelList) {
|
||||
activity.setIsDelete(GlobalConstant.DELETE);
|
||||
activityMapper.updateById(activity);// 进行伪删除 根据活动id把is_delete修改成1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
package com.hcy.admin.service.article;
|
||||
|
||||
import com.hcy.admin.validate.article.ArticleParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.article.ArticleDetailVo;
|
||||
import com.hcy.admin.vo.article.ArticleListVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 文章服务接口类
|
||||
*/
|
||||
public interface IArticleArchivesService {
|
||||
|
||||
/**
|
||||
* 文章列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<ArticleListVo>
|
||||
*/
|
||||
PageResult<ArticleListVo> list(PageParam pageParam, Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 文章详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键ID
|
||||
*/
|
||||
ArticleDetailVo detail(Integer id);
|
||||
|
||||
/**
|
||||
* 文章新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
*/
|
||||
void add(ArticleParam articleParam);
|
||||
|
||||
/**
|
||||
* 文章编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
*/
|
||||
void edit(ArticleParam articleParam);
|
||||
|
||||
/**
|
||||
* 文章删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 文章主键
|
||||
*/
|
||||
void del(Integer id);
|
||||
|
||||
/**
|
||||
* 文章状态
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 文章主键
|
||||
*/
|
||||
void change(Integer id);
|
||||
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
package com.hcy.admin.service.article;
|
||||
|
||||
import com.hcy.admin.validate.article.CategoryParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.article.ArticleCateVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 文章分类服接口务类
|
||||
*/
|
||||
public interface IArticleCategoryService {
|
||||
|
||||
/**
|
||||
* 分类所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return List<CategoryVo>
|
||||
*/
|
||||
List<ArticleCateVo> all();
|
||||
|
||||
/**
|
||||
* 分类列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<CategoryVo>
|
||||
*/
|
||||
PageResult<ArticleCateVo> list(PageParam pageParam, Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 分类详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 分类ID
|
||||
*/
|
||||
ArticleCateVo detail(Integer id);
|
||||
|
||||
/**
|
||||
* 分类新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类参数
|
||||
*/
|
||||
void add(CategoryParam categoryParam);
|
||||
|
||||
/**
|
||||
* 分类编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类参数
|
||||
*/
|
||||
void edit(CategoryParam categoryParam);
|
||||
|
||||
/**
|
||||
* 分类删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 分类ID
|
||||
*/
|
||||
void del(Integer id);
|
||||
|
||||
/**
|
||||
* 分类状态
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 分类ID
|
||||
*/
|
||||
void change(Integer id);
|
||||
|
||||
}
|
|
@ -0,0 +1,210 @@
|
|||
package com.hcy.admin.service.article.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.query.MPJQueryWrapper;
|
||||
import com.hcy.admin.service.article.IArticleArchivesService;
|
||||
import com.hcy.admin.validate.article.ArticleParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.article.ArticleDetailVo;
|
||||
import com.hcy.admin.vo.article.ArticleListVo;
|
||||
import com.hcy.common.config.GlobalConfig;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.article.Article;
|
||||
import com.hcy.common.entity.article.ArticleCategory;
|
||||
import com.hcy.common.mapper.article.ArticleCategoryMapper;
|
||||
import com.hcy.common.mapper.article.ArticleMapper;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.UrlUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 文章服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class ArticleArchivesServiceImpl implements IArticleArchivesService {
|
||||
|
||||
@Resource
|
||||
ArticleMapper articleMapper;
|
||||
|
||||
@Resource
|
||||
ArticleCategoryMapper articleCategoryMapper;
|
||||
|
||||
/**
|
||||
* 文章列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<ArticleListVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<ArticleListVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
Integer pageNo = pageParam.getPageNo();
|
||||
Integer pageSize = pageParam.getPageSize();
|
||||
|
||||
MPJQueryWrapper<Article> mpjQueryWrapper = new MPJQueryWrapper<Article>()
|
||||
.selectAll(Article.class)
|
||||
.select("ac.name as category")
|
||||
.innerJoin("?_article_category ac ON ac.id=t.cid".replace("?_", GlobalConfig.tablePrefix))
|
||||
.eq("t.is_delete", 0)
|
||||
.orderByDesc(Arrays.asList("t.sort", "t.id"));
|
||||
|
||||
articleMapper.setSearch(mpjQueryWrapper, params, new String[]{
|
||||
"like:title@t.title:str",
|
||||
"=:cid@t.cid:int",
|
||||
"=:isShow@t.is_show:int",
|
||||
"datetime:startTime-endTime@t.create_time:str"
|
||||
});
|
||||
|
||||
IPage<ArticleListVo> iPage = articleMapper.selectJoinPage(
|
||||
new Page<>(pageNo, pageSize),
|
||||
ArticleListVo.class,
|
||||
mpjQueryWrapper);
|
||||
|
||||
for (ArticleListVo vo : iPage.getRecords()) {
|
||||
vo.setImage(UrlUtil.toAbsoluteUrl(vo.getImage()));
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime()));
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键ID
|
||||
*/
|
||||
@Override
|
||||
public ArticleDetailVo detail(Integer id) {
|
||||
Article model = articleMapper.selectOne(
|
||||
new QueryWrapper<Article>()
|
||||
.select(Article.class, info->
|
||||
!info.getColumn().equals("is_delete") &&
|
||||
!info.getColumn().equals("delete_time"))
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(model, "文章不存在");
|
||||
|
||||
ArticleDetailVo vo = new ArticleDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
vo.setContent(StringUtil.isNull(model.getContent()) ? "" : model.getContent());
|
||||
vo.setImage(UrlUtil.toAbsoluteUrl(model.getImage()));
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime()));
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
*/
|
||||
@Override
|
||||
public void add(ArticleParam articleParam) {
|
||||
Article model = new Article();
|
||||
model.setCid(articleParam.getCid());
|
||||
model.setTitle(articleParam.getTitle());
|
||||
model.setImage(UrlUtil.toRelativeUrl(articleParam.getImage()));
|
||||
model.setIntro(articleParam.getIntro());
|
||||
model.setContent(articleParam.getContent());
|
||||
model.setSummary(articleParam.getSummary());
|
||||
model.setSort(articleParam.getSort());
|
||||
model.setIsShow(articleParam.getIsShow());
|
||||
model.setAuthor(articleParam.getAuthor());
|
||||
model.setVisit(articleParam.getVisit());
|
||||
model.setCreateTime(TimeUtil.timestamp());
|
||||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
articleMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param articleParam 文章参数
|
||||
*/
|
||||
@Override
|
||||
public void edit(ArticleParam articleParam) {
|
||||
Article model = articleMapper.selectOne(
|
||||
new QueryWrapper<Article>()
|
||||
.eq("id", articleParam.getId())
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(model, "文章不存在!");
|
||||
|
||||
Assert.notNull(articleCategoryMapper.selectOne(
|
||||
new QueryWrapper<ArticleCategory>()
|
||||
.eq("id", articleParam.getCid())
|
||||
.eq("is_delete", 0)), "分类不存在");
|
||||
|
||||
model.setCid(articleParam.getCid());
|
||||
model.setTitle(articleParam.getTitle());
|
||||
model.setImage(UrlUtil.toRelativeUrl(articleParam.getImage()));
|
||||
model.setIntro(articleParam.getIntro());
|
||||
model.setContent(articleParam.getContent());
|
||||
model.setSummary(articleParam.getSummary());
|
||||
model.setVisit(articleParam.getVisit());
|
||||
model.setIsShow(articleParam.getIsShow());
|
||||
model.setAuthor(articleParam.getAuthor());
|
||||
model.setSort(articleParam.getSort());
|
||||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
articleMapper.updateById(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章删除
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 文章ID
|
||||
*/
|
||||
@Override
|
||||
public void del(Integer id) {
|
||||
Article article = articleMapper.selectOne(
|
||||
new QueryWrapper<Article>()
|
||||
.select("id,is_show")
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(article, "文章不存在!");
|
||||
|
||||
article.setIsDelete(1);
|
||||
article.setDeleteTime(TimeUtil.timestamp());
|
||||
articleMapper.updateById(article);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章状态
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 文章主键
|
||||
*/
|
||||
@Override
|
||||
public void change(Integer id) {
|
||||
Article article = articleMapper.selectOne(
|
||||
new QueryWrapper<Article>()
|
||||
.select("id,is_show")
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(article, "文章不存在!");
|
||||
|
||||
article.setIsShow(article.getIsShow()==0?1:0);
|
||||
article.setUpdateTime(TimeUtil.timestamp());
|
||||
articleMapper.updateById(article);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,229 @@
|
|||
package com.hcy.admin.service.article.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.admin.service.article.IArticleCategoryService;
|
||||
import com.hcy.admin.validate.article.CategoryParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.article.ArticleCateVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.article.Article;
|
||||
import com.hcy.common.entity.article.ArticleCategory;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.article.ArticleCategoryMapper;
|
||||
import com.hcy.common.mapper.article.ArticleMapper;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 文章分类服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class ArticleCategoryServiceImpl implements IArticleCategoryService {
|
||||
|
||||
@Resource
|
||||
ArticleCategoryMapper articleCategoryMapper;
|
||||
|
||||
@Resource
|
||||
ArticleMapper articleMapper;
|
||||
|
||||
/**
|
||||
* 分类所有
|
||||
*
|
||||
* @author fzr
|
||||
* @return List<CategoryVo>
|
||||
*/
|
||||
@Override
|
||||
public List<ArticleCateVo> all() {
|
||||
QueryWrapper<ArticleCategory> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("id", "name", "sort", "is_show", "create_time", "update_time")
|
||||
.eq("is_delete", 0)
|
||||
.orderByDesc(Arrays.asList("sort", "id"));
|
||||
|
||||
List<ArticleCategory> lists = articleCategoryMapper.selectList(queryWrapper);
|
||||
|
||||
List<ArticleCateVo> vos = new ArrayList<>();
|
||||
for (ArticleCategory category : lists) {
|
||||
ArticleCateVo vo = new ArticleCateVo();
|
||||
BeanUtils.copyProperties(category, vo);
|
||||
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime()));
|
||||
vos.add(vo);
|
||||
}
|
||||
|
||||
return vos;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<CategoryVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<ArticleCateVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
Integer pageNo = pageParam.getPageNo();
|
||||
Integer pageSize = pageParam.getPageSize();
|
||||
|
||||
QueryWrapper<ArticleCategory> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("id", "name", "sort", "is_show", "create_time", "update_time")
|
||||
.eq("is_delete", 0)
|
||||
.orderByDesc(Arrays.asList("sort", "id"));
|
||||
|
||||
articleCategoryMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:name:str",
|
||||
"=:isShow@is_show:int"
|
||||
});
|
||||
|
||||
IPage<ArticleCategory> iPage = articleCategoryMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||
|
||||
List<ArticleCateVo> list = new ArrayList<>();
|
||||
for (ArticleCategory category : iPage.getRecords()) {
|
||||
ArticleCateVo vo = new ArticleCateVo();
|
||||
BeanUtils.copyProperties(category, vo);
|
||||
|
||||
Integer number = articleMapper.selectCount(new QueryWrapper<Article>()
|
||||
.eq("cid", category.getId())
|
||||
.eq("is_delete", 0));
|
||||
|
||||
vo.setNumber(number);
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime()));
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 分类ID
|
||||
* @return CategoryVo
|
||||
*/
|
||||
@Override
|
||||
public ArticleCateVo detail(Integer id) {
|
||||
ArticleCategory model = articleCategoryMapper.selectOne(
|
||||
new QueryWrapper<ArticleCategory>()
|
||||
.select(ArticleCategory.class, info->
|
||||
!info.getColumn().equals("is_delete") &&
|
||||
!info.getColumn().equals("delete_time"))
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(model, "分类不存在");
|
||||
|
||||
ArticleCateVo vo = new ArticleCateVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime()));
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类新增
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类参数
|
||||
*/
|
||||
@Override
|
||||
public void add(CategoryParam categoryParam) {
|
||||
if (categoryParam.getName().trim().equals("")) {
|
||||
throw new OperateException("名称不允许为空值!");
|
||||
}
|
||||
|
||||
ArticleCategory model = new ArticleCategory();
|
||||
model.setId(categoryParam.getId());
|
||||
model.setName(categoryParam.getName());
|
||||
model.setSort(categoryParam.getSort());
|
||||
model.setIsShow(model.getIsShow());
|
||||
model.setCreateTime(TimeUtil.timestamp());
|
||||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
articleCategoryMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类编辑
|
||||
*
|
||||
* @author fzr
|
||||
* @param categoryParam 分类参数
|
||||
*/
|
||||
@Override
|
||||
public void edit(CategoryParam categoryParam) {
|
||||
if (categoryParam.getName().trim().equals("")) {
|
||||
throw new OperateException("名称不允许为空值!");
|
||||
}
|
||||
|
||||
ArticleCategory model = articleCategoryMapper.selectOne(
|
||||
new QueryWrapper<ArticleCategory>()
|
||||
.select(ArticleCategory.class, info->
|
||||
!info.getColumn().equals("is_delete") &&
|
||||
!info.getColumn().equals("delete_time"))
|
||||
.eq("id", categoryParam.getId())
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(model, "分类不存在");
|
||||
|
||||
model.setName(categoryParam.getName());
|
||||
model.setSort(categoryParam.getSort());
|
||||
model.setIsShow(categoryParam.getIsShow());
|
||||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
articleCategoryMapper.updateById(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类参数
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 分类ID
|
||||
*/
|
||||
@Override
|
||||
public void del(Integer id) {
|
||||
ArticleCategory model = articleCategoryMapper.selectOne(
|
||||
new QueryWrapper<ArticleCategory>()
|
||||
.select("id,is_show")
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(model, "分类不存在");
|
||||
|
||||
model.setIsDelete(1);
|
||||
model.setDeleteTime(TimeUtil.timestamp());
|
||||
articleCategoryMapper.updateById(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类状态
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 分类ID
|
||||
*/
|
||||
@Override
|
||||
public void change(Integer id) {
|
||||
ArticleCategory model = articleCategoryMapper.selectOne(
|
||||
new QueryWrapper<ArticleCategory>()
|
||||
.select("id,is_show")
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0));
|
||||
|
||||
Assert.notNull(model, "分类不存在");
|
||||
|
||||
model.setIsShow(model.getIsShow()==0?1:0);
|
||||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
articleCategoryMapper.updateById(model);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.hcy.admin.service.category;
|
||||
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.category.GoodsCategoryParam;
|
||||
import com.hcy.admin.vo.category.GoodsCategoryListVo;
|
||||
import com.hcy.admin.vo.category.GoodsCategoryDetailVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.category.GoodsCategory;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 服务分类服务接口类
|
||||
*/
|
||||
public interface IGoodsCategoryService {
|
||||
|
||||
/**
|
||||
* 服务分类列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<GoodsCategoryVo>
|
||||
*/
|
||||
PageResult<GoodsCategoryListVo> list(PageParam pageParam, Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 服务分类详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return GoodsCategory
|
||||
*/
|
||||
GoodsCategoryDetailVo detail(Long id);
|
||||
|
||||
/**
|
||||
* 服务分类新增
|
||||
*
|
||||
* @param goodsCategoryParam 参数
|
||||
*/
|
||||
void add(GoodsCategoryParam goodsCategoryParam);
|
||||
|
||||
/**
|
||||
* 服务分类编辑
|
||||
*
|
||||
* @param goodsCategoryParam 参数
|
||||
*/
|
||||
void edit(GoodsCategoryParam goodsCategoryParam);
|
||||
|
||||
/**
|
||||
* 服务分类删除
|
||||
*
|
||||
* @param id 主键ID
|
||||
*/
|
||||
void del(Long id);
|
||||
|
||||
List<GoodsCategoryListVo> listPid();
|
||||
|
||||
void updateStatus(Long id, Integer isShow);
|
||||
|
||||
List<GoodsCategory> listByIds(List<Long> categoryIds);
|
||||
}
|
|
@ -0,0 +1,305 @@
|
|||
package com.hcy.admin.service.category.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.hcy.admin.service.category.IGoodsCategoryService;
|
||||
import com.hcy.admin.validate.category.GoodsCategoryParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.vo.category.GoodsCategoryDetailVo;
|
||||
import com.hcy.admin.vo.category.GoodsCategoryListVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.category.GoodsCategory;
|
||||
import com.hcy.common.entity.goods.Goods;
|
||||
import com.hcy.common.enums.RecommendEnum;
|
||||
import com.hcy.common.enums.ShowEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.category.GoodsCategoryMapper;
|
||||
import com.hcy.common.mapper.goods.GoodsMapper;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.UrlUtil;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 服务分类实现类
|
||||
*/
|
||||
@Service
|
||||
public class GoodsCategoryServiceImpl extends ServiceImpl<GoodsCategoryMapper, GoodsCategory> implements IGoodsCategoryService {
|
||||
|
||||
@Resource
|
||||
GoodsCategoryMapper goodsCategoryMapper;
|
||||
|
||||
@Resource
|
||||
private GoodsMapper goodsMapper;
|
||||
|
||||
/**
|
||||
* 服务分类列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<GoodsCategoryListVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<GoodsCategoryListVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
Integer page = pageParam.getPageNo();
|
||||
Integer limit = pageParam.getPageSize();
|
||||
|
||||
QueryWrapper<GoodsCategory> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_delete", GlobalConstant.NOT_DELETE);
|
||||
queryWrapper.eq("pid", 0);
|
||||
queryWrapper.orderByDesc("sort");
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
|
||||
goodsCategoryMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:name:str",
|
||||
"=:pid:long",
|
||||
"=:level:int",
|
||||
"=:image:str",
|
||||
"=:sort:int",
|
||||
"=:isShow@is_show:int",
|
||||
"=:isRecommend@is_recommend:int",
|
||||
});
|
||||
|
||||
// IPage<GoodsCategory> iPage = goodsCategoryMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
IPage<GoodsCategory> iPage = goodsCategoryMapper.selectPage(new Page<>(page, 200), queryWrapper);
|
||||
|
||||
List<GoodsCategoryListVo> list = new LinkedList<>();
|
||||
List<Long> pidIds = iPage.getRecords().stream().map(GoodsCategory::getId).distinct().collect(Collectors.toList());
|
||||
List<GoodsCategory> pidGoods = Lists.newArrayList();
|
||||
if (CollectionUtils.isNotEmpty(pidIds)) {
|
||||
LambdaQueryWrapper<GoodsCategory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(GoodsCategory::getPid, pidIds);
|
||||
lambdaQueryWrapper.eq(GoodsCategory::getIsDelete, GlobalConstant.NOT_DELETE);
|
||||
pidGoods = goodsCategoryMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
Map<Long, List<GoodsCategory>> pidGroupGoodsMap = Maps.newHashMap();
|
||||
if (CollectionUtils.isNotEmpty(pidGoods)) {
|
||||
pidGroupGoodsMap = pidGoods.stream().collect(Collectors.groupingBy(GoodsCategory::getPid));
|
||||
}
|
||||
Map<Integer, String> recommendMap = RecommendEnum.getMap();
|
||||
Map<Integer, String> showMap = ShowEnum.getMap();
|
||||
for (GoodsCategory item : iPage.getRecords()) {
|
||||
GoodsCategoryListVo vo = new GoodsCategoryListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setImage(UrlUtil.toAbsoluteUrl(item.getImage()));
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
|
||||
vo.setIsRecommendName(recommendMap.get(vo.getIsRecommend()));
|
||||
vo.setIsShowName(showMap.get(vo.getIsShow()));
|
||||
if (pidGroupGoodsMap.containsKey(item.getId())) {
|
||||
List<GoodsCategory> categoryList = pidGroupGoodsMap.get(item.getId());
|
||||
List<GoodsCategoryListVo> sons = Lists.newArrayList();
|
||||
for (GoodsCategory category : categoryList) {
|
||||
GoodsCategoryListVo son = new GoodsCategoryListVo();
|
||||
BeanUtils.copyProperties(category, son);
|
||||
son.setImage(UrlUtil.toAbsoluteUrl(category.getImage()));
|
||||
son.setIsRecommendName(recommendMap.get(son.getIsRecommend()));
|
||||
son.setIsShowName(showMap.get(son.getIsShow()));
|
||||
son.setCreateTime(TimeUtil.timestampToDate(category.getCreateTime()));
|
||||
son.setUpdateTime(TimeUtil.timestampToDate(category.getUpdateTime()));
|
||||
sons.add(son);
|
||||
}
|
||||
vo.setSons(sons);
|
||||
}
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类详情
|
||||
*
|
||||
* @param id 主键参数
|
||||
* @return GoodsCategory
|
||||
*/
|
||||
@Override
|
||||
public GoodsCategoryDetailVo detail(Long id) {
|
||||
GoodsCategory model = goodsCategoryMapper.selectOne(
|
||||
new QueryWrapper<GoodsCategory>()
|
||||
.eq("id", id)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
GoodsCategoryDetailVo vo = new GoodsCategoryDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
vo.setIsShowName(ShowEnum.getMap().get(vo.getIsShow()));
|
||||
vo.setIsRecommendName(RecommendEnum.getMap().get(vo.getIsRecommend()));
|
||||
vo.setImage(UrlUtil.toAbsoluteUrl(model.getImage()));
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类新增
|
||||
*
|
||||
* @param goodsCategoryParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void add(GoodsCategoryParam goodsCategoryParam) {
|
||||
String name = goodsCategoryParam.getName();
|
||||
LambdaQueryWrapper<GoodsCategory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(GoodsCategory::getName, name);
|
||||
lambdaQueryWrapper.eq(GoodsCategory::getIsDelete, 0);
|
||||
lambdaQueryWrapper.last("limit 1");
|
||||
GoodsCategory category = super.getOne(lambdaQueryWrapper);
|
||||
Assert.isNull(category, "此分类名称已存在,请重新输入!");
|
||||
GoodsCategory model = new GoodsCategory();
|
||||
model.setName(goodsCategoryParam.getName());
|
||||
model.setPid(goodsCategoryParam.getPid());
|
||||
model.setLevel(goodsCategoryParam.getLevel());
|
||||
model.setImage(UrlUtil.toRelativeUrl(goodsCategoryParam.getImage()));
|
||||
model.setSort(goodsCategoryParam.getSort());
|
||||
model.setIsShow(goodsCategoryParam.getIsShow());
|
||||
model.setIsRecommend(goodsCategoryParam.getIsRecommend());
|
||||
model.setCreateTime(TimeUtil.timestamp());
|
||||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
goodsCategoryMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类编辑
|
||||
*
|
||||
* @param goodsCategoryParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void edit(GoodsCategoryParam goodsCategoryParam) {
|
||||
GoodsCategory model = goodsCategoryMapper.selectOne(
|
||||
new QueryWrapper<GoodsCategory>()
|
||||
.eq("id", goodsCategoryParam.getId())
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
if (goodsCategoryParam.getId().equals(goodsCategoryParam.getPid())) {
|
||||
throw new OperateException("不能选择自己作为父级");
|
||||
}
|
||||
model.setId(goodsCategoryParam.getId());
|
||||
model.setName(goodsCategoryParam.getName());
|
||||
model.setPid(goodsCategoryParam.getPid());
|
||||
model.setLevel(goodsCategoryParam.getLevel());
|
||||
model.setImage(UrlUtil.toRelativeUrl(goodsCategoryParam.getImage()));
|
||||
model.setSort(goodsCategoryParam.getSort());
|
||||
model.setIsShow(goodsCategoryParam.getIsShow());
|
||||
model.setIsRecommend(goodsCategoryParam.getIsRecommend());
|
||||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
goodsCategoryMapper.updateById(model);
|
||||
if (goodsCategoryParam.getPid() == 0) {
|
||||
List<GoodsCategory> list = goodsCategoryMapper.selectList(
|
||||
new QueryWrapper<GoodsCategory>()
|
||||
.eq("pid", goodsCategoryParam.getId()));
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
for (GoodsCategory goodsCategory : list) {
|
||||
goodsCategory.setIsRecommend(goodsCategoryParam.getIsRecommend());
|
||||
goodsCategory.setUpdateTime(TimeUtil.timestamp());
|
||||
goodsCategoryMapper.updateById(goodsCategory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类删除
|
||||
*
|
||||
* @param id 主键ID
|
||||
*/
|
||||
@Override
|
||||
public void del(Long id) {
|
||||
GoodsCategory model = goodsCategoryMapper.selectOne(
|
||||
new QueryWrapper<GoodsCategory>()
|
||||
.eq("id", id)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
|
||||
LambdaQueryWrapper<Goods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(Goods::getCategoryId, id);
|
||||
lambdaQueryWrapper.eq(Goods::getIsDelete, 0);
|
||||
lambdaQueryWrapper.last("limit 1");
|
||||
Goods goods = goodsMapper.selectOne(lambdaQueryWrapper);
|
||||
Assert.isNull(goods, "服务分类正在使用中,无法删除,请清空分类中的服务再删除");
|
||||
model.setDeleteTime(TimeUtil.timestamp());
|
||||
model.setIsDelete(GlobalConstant.DELETE);
|
||||
goodsCategoryMapper.updateById(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GoodsCategoryListVo> listPid() {
|
||||
LambdaQueryWrapper<GoodsCategory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(GoodsCategory::getPid, GlobalConstant.DEFAULT_GOODS_PID);
|
||||
lambdaQueryWrapper.eq(GoodsCategory::getIsDelete, 0);
|
||||
List<GoodsCategory> list = goodsCategoryMapper.selectList(lambdaQueryWrapper);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
List<Long> pidIds = list.stream().map(GoodsCategory::getId).distinct().collect(Collectors.toList());
|
||||
Map<Long, List<GoodsCategory>> groupMap = Maps.newHashMap();
|
||||
if (CollectionUtils.isNotEmpty(pidIds)) {
|
||||
LambdaQueryWrapper<GoodsCategory> sonLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sonLambdaQueryWrapper.in(GoodsCategory::getPid, pidIds);
|
||||
sonLambdaQueryWrapper.eq(GoodsCategory::getIsDelete, 0);
|
||||
List<GoodsCategory> sonList = goodsCategoryMapper.selectList(sonLambdaQueryWrapper);
|
||||
groupMap = sonList.stream().collect(Collectors.groupingBy(GoodsCategory::getPid));
|
||||
}
|
||||
|
||||
Map<Integer, String> recommendMap = RecommendEnum.getMap();
|
||||
Map<Integer, String> showMap = ShowEnum.getMap();
|
||||
List<GoodsCategoryListVo> targetList = Lists.newArrayList();
|
||||
for (GoodsCategory goodsCategory : list) {
|
||||
GoodsCategoryListVo vo = new GoodsCategoryListVo();
|
||||
BeanUtils.copyProperties(goodsCategory, vo);
|
||||
vo.setIsShowName(showMap.get(vo.getIsShow()));
|
||||
vo.setIsRecommendName(recommendMap.get(vo.getIsRecommend()));
|
||||
vo.setImage(UrlUtil.toAbsoluteUrl(goodsCategory.getImage()));
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(goodsCategory.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(goodsCategory.getUpdateTime()));
|
||||
if (groupMap.containsKey(goodsCategory.getId())) {
|
||||
List<GoodsCategoryListVo> sonList = Lists.newArrayList();
|
||||
List<GoodsCategory> categoryList = groupMap.get(goodsCategory.getId());
|
||||
for (GoodsCategory category : categoryList) {
|
||||
GoodsCategoryListVo sonVo = new GoodsCategoryListVo();
|
||||
BeanUtils.copyProperties(category, sonVo);
|
||||
sonVo.setImage(UrlUtil.toAbsoluteUrl(category.getImage()));
|
||||
sonVo.setIsShowName(showMap.get(sonVo.getIsShow()));
|
||||
sonVo.setIsRecommendName(recommendMap.get(sonVo.getIsRecommend()));
|
||||
sonList.add(sonVo);
|
||||
}
|
||||
vo.setSons(sonList);
|
||||
}
|
||||
targetList.add(vo);
|
||||
}
|
||||
return targetList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStatus(Long id, Integer isShow) {
|
||||
GoodsCategory goodsCategory = goodsCategoryMapper.selectById(id);
|
||||
Assert.notNull(goodsCategory, "数据不存在");
|
||||
goodsCategory.setId(id);
|
||||
goodsCategory.setIsShow(isShow);
|
||||
goodsCategory.setUpdateTime(TimeUtil.timestamp());
|
||||
goodsCategoryMapper.updateById(goodsCategory);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GoodsCategory> listByIds(List<Long> categoryIds) {
|
||||
if (CollectionUtils.isEmpty(categoryIds)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
return super.listByIds(categoryIds);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.hcy.admin.service.channel;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* H5渠道设置服务接口类
|
||||
*/
|
||||
public interface IChannelH5Service {
|
||||
|
||||
/**
|
||||
* H5设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
Map<String, Object> detail();
|
||||
|
||||
/**
|
||||
* H5设置保存
|
||||
*
|
||||
* @author fzr
|
||||
*/
|
||||
void save(Map<String, String> param);
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.hcy.admin.service.channel;
|
||||
|
||||
import com.hcy.admin.vo.channel.ChannelMpVo;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 微信小程序渠道服务接口类
|
||||
*/
|
||||
public interface IChannelMpService {
|
||||
|
||||
/**
|
||||
* 微信小程序设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
ChannelMpVo detail();
|
||||
|
||||
/**
|
||||
* 微信小程序设置保存
|
||||
*
|
||||
* @author fzr
|
||||
*/
|
||||
void save(Map<String, String> param);
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue