【admin】新增#1、福源家政、无师傅、无优惠券、无分销

dev
renfan 2025-01-13 16:49:52 +08:00
commit 150e62aa25
1147 changed files with 76910 additions and 0 deletions

12
.gitignore vendored 100644
View File

@ -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/

55
admin/pom.xml 100644
View File

@ -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>

View File

@ -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启动成功 ლ(´ڡ`ლ)゙");
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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", // 所有文章分类
};
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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 "";
}

View File

@ -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());
}
}
}

View File

@ -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());
}
}
}

View File

@ -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;
}
}

View File

@ -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));
}
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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 {
/**
* WebMvcConfigurationSupportyml
*
* @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);
}
}

View File

@ -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", "");
}
}

View File

@ -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;
}

View File

@ -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)
*
*
*
*
* APIUSERPAYING
* 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("成功");
}
}

View File

@ -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);
}
}

View File

@ -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());
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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());
}
}
}

View File

@ -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));
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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);
}*/
}

View File

@ -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);
}
}

View File

@ -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);
}
/**
* status0
* @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();
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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());
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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("操作成功");
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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());
}
}

View File

@ -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();
}
}

View File

@ -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());
}
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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());
}
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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
}
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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