diff --git a/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java b/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java index b15d80d..f8cac30 100644 --- a/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java +++ b/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java @@ -1,8 +1,5 @@ package com.ff.base.config; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.constant.Constants; import com.ff.base.interceptor.DataSourceSwitchInterceptor; import com.ff.base.interceptor.RepeatSubmitInterceptor; @@ -10,8 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.CacheControl; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @@ -19,7 +14,6 @@ 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 java.util.List; import java.util.concurrent.TimeUnit; /** @@ -36,6 +30,9 @@ public class ResourcesConfig implements WebMvcConfigurer @Autowired private DataSourceSwitchInterceptor dataSourceSwitchInterceptor; + + + @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { diff --git a/ff-base/src/main/java/com/ff/base/enums/Status.java b/ff-base/src/main/java/com/ff/base/enums/Status.java new file mode 100644 index 0000000..3999313 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/enums/Status.java @@ -0,0 +1,18 @@ +package com.ff.base.enums; + +import lombok.Getter; + +@Getter +public enum Status { + PENDING(1, "待处理"), + PROCESSED(2, "已处理"); + + private final Integer value; + private final String description; + + Status(Integer value, String description) { + this.value = value; + this.description = description; + } + +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java b/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java index 5b1c0ec..2bde598 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java @@ -143,7 +143,7 @@ public class SysUser extends BaseEntity { /** - * 登录类型 0 后台 1 代理 2 租户 + * 登录类型 0 后台 1 租户 2 代理 */ private Integer loginType; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java new file mode 100644 index 0000000..0a9f8fe --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java @@ -0,0 +1,39 @@ +package com.ff.base.system.domain; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 租户白名单对象 ff_tenant_white + * + * @author shi + * @date 2025-02-27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantWhite extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 租户id */ + @JsonSerialize(using = ToStringSerializer.class) + @Excel(name = "租户id", width = 30, dateFormat = "yyyy-MM-dd") + private Long tenantId; + + /** 白名单ip地址 */ + @Excel(name = "白名单ip地址") + private String whiteIp; + + +} diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java new file mode 100644 index 0000000..310db8a --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java @@ -0,0 +1,61 @@ +package com.ff.base.system.mapper; + +import java.util.List; +import com.ff.base.system.domain.TenantWhite; + +/** + * 租户白名单Mapper接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface TenantWhiteMapper +{ + /** + * 查询租户白名单 + * + * @param id 租户白名单主键 + * @return 租户白名单 + */ + TenantWhite selectTenantWhiteById(Long id); + + /** + * 查询租户白名单列表 + * + * @param tenantWhite 租户白名单 + * @return 租户白名单集合 + */ + List selectTenantWhiteList(TenantWhite tenantWhite); + + /** + * 新增租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int insertTenantWhite(TenantWhite tenantWhite); + + /** + * 修改租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int updateTenantWhite(TenantWhite tenantWhite); + + /** + * 删除租户白名单 + * + * @param id 租户白名单主键 + * @return 结果 + */ + int deleteTenantWhiteById(Long id); + + /** + * 批量删除租户白名单 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantWhiteByIds(Long[] ids); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java new file mode 100644 index 0000000..75061a5 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java @@ -0,0 +1,61 @@ +package com.ff.base.system.service; + +import java.util.List; +import com.ff.base.system.domain.TenantWhite; + +/** + * 租户白名单Service接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface ITenantWhiteService +{ + /** + * 查询租户白名单 + * + * @param id 租户白名单主键 + * @return 租户白名单 + */ + TenantWhite selectTenantWhiteById(Long id); + + /** + * 查询租户白名单列表 + * + * @param tenantWhite 租户白名单 + * @return 租户白名单集合 + */ + List selectTenantWhiteList(TenantWhite tenantWhite); + + /** + * 新增租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int insertTenantWhite(TenantWhite tenantWhite); + + /** + * 修改租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int updateTenantWhite(TenantWhite tenantWhite); + + /** + * 批量删除租户白名单 + * + * @param ids 需要删除的租户白名单主键集合 + * @return 结果 + */ + int deleteTenantWhiteByIds(Long[] ids); + + /** + * 删除租户白名单信息 + * + * @param id 租户白名单主键 + * @return 结果 + */ + int deleteTenantWhiteById(Long id); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java new file mode 100644 index 0000000..46c1d6b --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.base.system.service.impl; + +import java.util.List; +import com.ff.base.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ff.base.system.mapper.TenantWhiteMapper; +import com.ff.base.system.domain.TenantWhite; +import com.ff.base.system.service.ITenantWhiteService; +import cn.hutool.core.util.IdUtil; + + +/** + * 租户白名单Service业务层处理 + * + * @author shi + * @date 2025-02-27 + */ +@Service +public class TenantWhiteServiceImpl implements ITenantWhiteService +{ + @Autowired + private TenantWhiteMapper tenantWhiteMapper; + + /** + * 查询租户白名单 + * + * @param id 租户白名单主键 + * @return 租户白名单 + */ + @Override + public TenantWhite selectTenantWhiteById(Long id) + { + return tenantWhiteMapper.selectTenantWhiteById(id); + } + + /** + * 查询租户白名单列表 + * + * @param tenantWhite 租户白名单 + * @return 租户白名单 + */ + @Override + public List selectTenantWhiteList(TenantWhite tenantWhite) + { + return tenantWhiteMapper.selectTenantWhiteList(tenantWhite); + } + + /** + * 新增租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + @Override + public int insertTenantWhite(TenantWhite tenantWhite) + { + tenantWhite.setId(IdUtil.getSnowflakeNextId()); + tenantWhite.setCreateTime(DateUtils.getNowDate()); + return tenantWhiteMapper.insertTenantWhite(tenantWhite); + } + + /** + * 修改租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + @Override + public int updateTenantWhite(TenantWhite tenantWhite) + { + tenantWhite.setUpdateTime(DateUtils.getNowDate()); + return tenantWhiteMapper.updateTenantWhite(tenantWhite); + } + + /** + * 批量删除租户白名单 + * + * @param ids 需要删除的租户白名单主键 + * @return 结果 + */ + @Override + public int deleteTenantWhiteByIds(Long[] ids) + { + return tenantWhiteMapper.deleteTenantWhiteByIds(ids); + } + + /** + * 删除租户白名单信息 + * + * @param id 租户白名单主键 + * @return 结果 + */ + @Override + public int deleteTenantWhiteById(Long id) + { + return tenantWhiteMapper.deleteTenantWhiteById(id); + } +} diff --git a/ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml b/ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml new file mode 100644 index 0000000..2efcf14 --- /dev/null +++ b/ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + select id, tenant_id, white_ip, create_by, create_time, update_by, update_time from ff_tenant_white + + + + + + + + insert into ff_tenant_white + + id, + tenant_id, + white_ip, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{tenantId}, + #{whiteIp}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_tenant_white + + tenant_id = #{tenantId}, + white_ip = #{whiteIp}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_tenant_white where id = #{id} + + + + delete from ff_tenant_white where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java index b6f05d6..707eb99 100644 --- a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java +++ b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java @@ -1,6 +1,11 @@ package com.ff.annotation; +import cn.hutool.core.util.IdUtil; import com.ff.base.constant.Constants; +import com.ff.base.system.domain.TenantWhite; +import com.ff.base.system.service.ITenantWhiteService; +import com.ff.base.utils.ip.IpUtils; +import com.ff.base.utils.uuid.IdUtils; import com.ff.config.KeyConfig; import com.ff.base.utils.sign.Md5Utils; import com.ff.base.system.domain.TenantSecretKey; @@ -15,6 +20,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * 标题检查方面 @@ -29,6 +35,9 @@ public class HeaderCheckAspect { @Resource private ITenantSecretKeyService tenantSecretKeyService; + @Resource + private ITenantWhiteService tenantWhiteService; + @Resource private KeyConfig keyUtils; @@ -63,6 +72,12 @@ public class HeaderCheckAspect { Assert.isTrue(tenantSecretKey.getTenantStatus(), "当前租户已停用"); + List tenantWhites = tenantWhiteService.selectTenantWhiteList(TenantWhite.builder() + .tenantId(tenantSecretKey.getId()) + .whiteIp(IpUtils.getIpAddr()) + .build()); + Assert.isTrue(!tenantWhites.isEmpty(), "当前租户不在白名单内"); + String keyG = Md5Utils.md5New(random + key + tenantSecretKey.getTenantSecret()); Assert.isTrue(keyG.equals(sign), "签名错误"); //保存 diff --git a/ff-game/src/main/java/com/ff/sys/controller/SysFeedbackController.java b/ff-game/src/main/java/com/ff/sys/controller/SysFeedbackController.java new file mode 100644 index 0000000..04a8171 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/controller/SysFeedbackController.java @@ -0,0 +1,98 @@ +package com.ff.sys.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ff.base.enums.Status; +import com.ff.base.utils.SecurityUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ff.base.annotation.Log; +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.base.enums.BusinessType; +import com.ff.sys.domain.SysFeedback; +import com.ff.sys.service.ISysFeedbackService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 系统反馈Controller + * + * @author shi + * @date 2025-02-27 + */ +@RestController +@RequestMapping("/sys/feedback") +public class SysFeedbackController extends BaseController +{ + @Autowired + private ISysFeedbackService sysFeedbackService; + + /** + * 查询系统反馈列表 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:list')") + @GetMapping("/list") + public TableDataInfo list(SysFeedback sysFeedback) + { + startPage(); + List list = sysFeedbackService.selectSysFeedbackList(sysFeedback); + return getDataTable(list); + } + + + /** + * 获取系统反馈详细信息 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(sysFeedbackService.selectSysFeedbackById(id)); + } + + /** + * 新增系统反馈 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:add')") + @Log(title = "系统反馈", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysFeedback sysFeedback) + { + sysFeedback.setUserId(getUserId()); + sysFeedback.setUserType(SecurityUtils.getLoginUser().getUser().getLoginType()); + return toAjax(sysFeedbackService.insertSysFeedback(sysFeedback)); + } + + /** + * 修改系统反馈 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:edit')") + @Log(title = "系统反馈", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SysFeedback sysFeedback) + { + sysFeedback.setStatus(Status.PROCESSED.getValue()); + return toAjax(sysFeedbackService.updateSysFeedback(sysFeedback)); + } + + /** + * 删除系统反馈 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:remove')") + @Log(title = "系统反馈", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(sysFeedbackService.deleteSysFeedbackByIds(ids)); + } +} diff --git a/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java b/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java new file mode 100644 index 0000000..118e849 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java @@ -0,0 +1,52 @@ +package com.ff.sys.domain; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.Data; +/** + * 系统反馈对象 ff_sys_feedback + * + * @author shi + * @date 2025-02-27 + */ +@Data +public class SysFeedback extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 用户类型 1 租户 2代理 */ + @Excel(name = "用户类型 1 租户 2代理 ") + private Integer userType; + + /** 用户id */ + @JsonSerialize(using = ToStringSerializer.class) + @Excel(name = "用户id", width = 30, dateFormat = "yyyy-MM-dd") + private Long userId; + + /** 标题 */ + @Excel(name = "标题") + private String title; + + /** 手机号 */ + @Excel(name = "手机号") + private String phone; + + /** 反馈内容 */ + @Excel(name = "反馈内容") + private String content; + + /** 状态 1待处理 2已处理 */ + @Excel(name = "状态 1待处理 2已处理") + private Integer status; + + /** 回复内容 */ + @Excel(name = "回复内容") + private String replyContent; + + +} diff --git a/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java b/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java new file mode 100644 index 0000000..79cdd25 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java @@ -0,0 +1,61 @@ +package com.ff.sys.mapper; + +import java.util.List; +import com.ff.sys.domain.SysFeedback; + +/** + * 系统反馈Mapper接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface SysFeedbackMapper +{ + /** + * 查询系统反馈 + * + * @param id 系统反馈主键 + * @return 系统反馈 + */ + SysFeedback selectSysFeedbackById(Long id); + + /** + * 查询系统反馈列表 + * + * @param sysFeedback 系统反馈 + * @return 系统反馈集合 + */ + List selectSysFeedbackList(SysFeedback sysFeedback); + + /** + * 新增系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int insertSysFeedback(SysFeedback sysFeedback); + + /** + * 修改系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int updateSysFeedback(SysFeedback sysFeedback); + + /** + * 删除系统反馈 + * + * @param id 系统反馈主键 + * @return 结果 + */ + int deleteSysFeedbackById(Long id); + + /** + * 批量删除系统反馈 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteSysFeedbackByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java b/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java new file mode 100644 index 0000000..1a5a43b --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java @@ -0,0 +1,61 @@ +package com.ff.sys.service; + +import java.util.List; +import com.ff.sys.domain.SysFeedback; + +/** + * 系统反馈Service接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface ISysFeedbackService +{ + /** + * 查询系统反馈 + * + * @param id 系统反馈主键 + * @return 系统反馈 + */ + SysFeedback selectSysFeedbackById(Long id); + + /** + * 查询系统反馈列表 + * + * @param sysFeedback 系统反馈 + * @return 系统反馈集合 + */ + List selectSysFeedbackList(SysFeedback sysFeedback); + + /** + * 新增系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int insertSysFeedback(SysFeedback sysFeedback); + + /** + * 修改系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int updateSysFeedback(SysFeedback sysFeedback); + + /** + * 批量删除系统反馈 + * + * @param ids 需要删除的系统反馈主键集合 + * @return 结果 + */ + int deleteSysFeedbackByIds(Long[] ids); + + /** + * 删除系统反馈信息 + * + * @param id 系统反馈主键 + * @return 结果 + */ + int deleteSysFeedbackById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java b/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java new file mode 100644 index 0000000..478565a --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.sys.service.impl; + +import java.util.List; +import com.ff.base.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ff.sys.mapper.SysFeedbackMapper; +import com.ff.sys.domain.SysFeedback; +import com.ff.sys.service.ISysFeedbackService; +import cn.hutool.core.util.IdUtil; + + +/** + * 系统反馈Service业务层处理 + * + * @author shi + * @date 2025-02-27 + */ +@Service +public class SysFeedbackServiceImpl implements ISysFeedbackService +{ + @Autowired + private SysFeedbackMapper sysFeedbackMapper; + + /** + * 查询系统反馈 + * + * @param id 系统反馈主键 + * @return 系统反馈 + */ + @Override + public SysFeedback selectSysFeedbackById(Long id) + { + return sysFeedbackMapper.selectSysFeedbackById(id); + } + + /** + * 查询系统反馈列表 + * + * @param sysFeedback 系统反馈 + * @return 系统反馈 + */ + @Override + public List selectSysFeedbackList(SysFeedback sysFeedback) + { + return sysFeedbackMapper.selectSysFeedbackList(sysFeedback); + } + + /** + * 新增系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + @Override + public int insertSysFeedback(SysFeedback sysFeedback) + { + sysFeedback.setId(IdUtil.getSnowflakeNextId()); + sysFeedback.setCreateTime(DateUtils.getNowDate()); + return sysFeedbackMapper.insertSysFeedback(sysFeedback); + } + + /** + * 修改系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + @Override + public int updateSysFeedback(SysFeedback sysFeedback) + { + sysFeedback.setUpdateTime(DateUtils.getNowDate()); + return sysFeedbackMapper.updateSysFeedback(sysFeedback); + } + + /** + * 批量删除系统反馈 + * + * @param ids 需要删除的系统反馈主键 + * @return 结果 + */ + @Override + public int deleteSysFeedbackByIds(Long[] ids) + { + return sysFeedbackMapper.deleteSysFeedbackByIds(ids); + } + + /** + * 删除系统反馈信息 + * + * @param id 系统反馈主键 + * @return 结果 + */ + @Override + public int deleteSysFeedbackById(Long id) + { + return sysFeedbackMapper.deleteSysFeedbackById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java new file mode 100644 index 0000000..322d9a5 --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java @@ -0,0 +1,74 @@ +package com.ff.tenant.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ff.base.annotation.Log; +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.base.enums.BusinessType; +import com.ff.base.system.domain.TenantWhite; +import com.ff.base.system.service.ITenantWhiteService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 租户白名单Controller + * + * @author shi + * @date 2025-02-27 + */ +@RestController +@RequestMapping("/tenant/white") +public class TenantWhiteController extends BaseController +{ + @Autowired + private ITenantWhiteService tenantWhiteService; + + /** + * 查询租户白名单列表 + */ + @PreAuthorize("@ss.hasPermi('tenant:white:list')") + @GetMapping("/list") + public TableDataInfo list(TenantWhite tenantWhite) + { + startPage(); + tenantWhite.setTenantId(getUserId()); + List list = tenantWhiteService.selectTenantWhiteList(tenantWhite); + return getDataTable(list); + } + + + /** + * 新增租户白名单 + */ + @PreAuthorize("@ss.hasPermi('tenant:white:add')") + @Log(title = "租户白名单", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TenantWhite tenantWhite) + { + tenantWhite.setTenantId(getUserId()); + tenantWhite.setCreateBy(getUsername()); + return toAjax(tenantWhiteService.insertTenantWhite(tenantWhite)); + } + + /** + * 删除租户白名单 + */ + @PreAuthorize("@ss.hasPermi('tenant:white:remove')") + @Log(title = "租户白名单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tenantWhiteService.deleteTenantWhiteByIds(ids)); + } +} diff --git a/ff-game/src/main/resources/mapper/sys/SysFeedbackMapper.xml b/ff-game/src/main/resources/mapper/sys/SysFeedbackMapper.xml new file mode 100644 index 0000000..d4341a2 --- /dev/null +++ b/ff-game/src/main/resources/mapper/sys/SysFeedbackMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + select id, user_type, user_id, title, phone, content, status, reply_content, create_by, create_time, update_by, update_time from ff_sys_feedback + + + + + + + + insert into ff_sys_feedback + + id, + user_type, + user_id, + title, + phone, + content, + status, + reply_content, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{userType}, + #{userId}, + #{title}, + #{phone}, + #{content}, + #{status}, + #{replyContent}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_sys_feedback + + user_type = #{userType}, + user_id = #{userId}, + title = #{title}, + phone = #{phone}, + content = #{content}, + status = #{status}, + reply_content = #{replyContent}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_sys_feedback where id = #{id} + + + + delete from ff_sys_feedback where id in + + #{id} + + + \ No newline at end of file