Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
modeng-service
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
邢保振
modeng-service
Commits
075d9c0d
Commit
075d9c0d
authored
Dec 10, 2023
by
zhaoqingwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
阿拉丁-魔登
parent
170092de
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
606 additions
and
0 deletions
+606
-0
pom.xml
pom.xml
+12
-0
AdsUserBusiness.java
...java/com/ruoyi/adsdesk/business/user/AdsUserBusiness.java
+38
-0
AdsBaseEntity.java
src/main/java/com/ruoyi/adsdesk/common/AdsBaseEntity.java
+56
-0
GlobalResponseBodyHandler.java
...m/ruoyi/adsdesk/config/web/GlobalResponseBodyHandler.java
+51
-0
AdsUserController.java
.../com/ruoyi/adsdesk/controller/user/AdsUserController.java
+35
-0
AdsUser.java
src/main/java/com/ruoyi/adsdesk/domain/AdsUser.java
+117
-0
AdsListBaseParam.java
src/main/java/com/ruoyi/adsdesk/param/AdsListBaseParam.java
+21
-0
PageDomain.java
src/main/java/com/ruoyi/adsdesk/param/PageDomain.java
+92
-0
UserListParam.java
src/main/java/com/ruoyi/adsdesk/param/UserListParam.java
+34
-0
AdsPageUtil.java
src/main/java/com/ruoyi/adsdesk/util/AdsPageUtil.java
+81
-0
AdsUserVo.java
src/main/java/com/ruoyi/adsdesk/vo/AdsUserVo.java
+69
-0
No files found.
pom.xml
View file @
075d9c0d
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
<poi.version>
4.1.2
</poi.version>
<poi.version>
4.1.2
</poi.version>
<oshi.version>
6.4.8
</oshi.version>
<oshi.version>
6.4.8
</oshi.version>
<velocity.version>
2.3
</velocity.version>
<velocity.version>
2.3
</velocity.version>
<mybatis-plus.version>
3.5.2
</mybatis-plus.version>
</properties>
</properties>
<dependencies>
<dependencies>
...
@@ -236,6 +237,17 @@
...
@@ -236,6 +237,17 @@
</exclusions>
</exclusions>
</dependency>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<!-- mybatis-plus 增强CRUD -->
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-boot-starter
</artifactId>
<version>
${mybatis-plus.version}
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
src/main/java/com/ruoyi/adsdesk/business/user/AdsUserBusiness.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
business
.
user
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.ruoyi.adsdesk.domain.AdsUser
;
import
com.ruoyi.adsdesk.param.UserListParam
;
import
org.apache.commons.compress.utils.Lists
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Ads登录用户
*
* @author Xingbz
*/
@Service
public
class
AdsUserBusiness
{
public
IPage
<
AdsUser
>
list
(
UserListParam
param
)
{
AdsUser
u1
=
new
AdsUser
();
u1
.
setId
(
1L
);
u1
.
setCustomerId
(
1L
);
u1
.
setName
(
"zqw"
);
u1
.
setRole
(
"MANAGER"
);
u1
.
setEmail
(
"zhaoqingwei@reyun.com"
);
List
<
AdsUser
>
list
=
Lists
.
newArrayList
();
list
.
add
(
u1
);
Page
result
=
new
Page
<>(
1
,
10
,
1
);
result
.
setRecords
(
list
);
return
result
;
}
}
src/main/java/com/ruoyi/adsdesk/common/AdsBaseEntity.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
common
;
import
com.alibaba.fastjson2.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* Ads实体通用信息
* @author Xingbz
* 006 06-06
*/
@Data
public
class
AdsBaseEntity
<
T
>
implements
Serializable
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
T
id
;
/**
* 创建人
*/
@TableField
(
value
=
"create_by"
,
fill
=
FieldFill
.
INSERT
)
private
Long
createBy
;
/**
* 创建时间
*/
@TableField
(
value
=
"gmt_create"
,
fill
=
FieldFill
.
INSERT
)
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
gmtCreate
;
/**
* 修改人
*/
@TableField
(
value
=
"update_by"
,
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Long
updateBy
;
/**
* 修改时间
*/
@TableField
(
value
=
"gmt_modified"
,
fill
=
FieldFill
.
INSERT_UPDATE
)
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
gmtModified
;
/**
* 是否删除(1是 0否)
*/
@TableLogic
@TableField
(
value
=
"is_delete"
)
private
Boolean
isDelete
;
}
src/main/java/com/ruoyi/adsdesk/config/web/GlobalResponseBodyHandler.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
config
.
web
;
import
com.alibaba.fastjson2.JSON
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.ruoyi.adsdesk.util.AdsPageUtil
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
lombok.extern.slf4j.Slf4j
;
import
org.jetbrains.annotations.NotNull
;
import
org.springframework.core.MethodParameter
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.converter.HttpMessageConverter
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.http.server.ServerHttpResponse
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
;
/**
* 全局响应处理器
* 由于Ads编码风格和若依略有不同, 为复用前端逻辑, 在此做下转换处理
* @author Xingbz
* 007 06-07
*/
@Slf4j
@ControllerAdvice
(
"com.ruoyi.adsdesk.controller"
)
public
class
GlobalResponseBodyHandler
implements
ResponseBodyAdvice
<
Object
>
{
@Override
public
boolean
supports
(
@NotNull
MethodParameter
returnType
,
@NotNull
Class
<?
extends
HttpMessageConverter
<?>>
converterType
)
{
// Class<?> returnClass = Optional.ofNullable(returnType.getMethod()).map(Method::getReturnType).orElse(null);
// return Objects.nonNull(returnClass) && Objects.equals(returnClass, IPage.class);
return
true
;
}
@Override
public
Object
beforeBodyWrite
(
Object
body
,
@NotNull
MethodParameter
returnType
,
@NotNull
MediaType
selectedContentType
,
@NotNull
Class
<?
extends
HttpMessageConverter
<?>>
selectedConverterType
,
@NotNull
ServerHttpRequest
request
,
@NotNull
ServerHttpResponse
response
)
{
if
(
body
instanceof
AjaxResult
)
{
return
body
;
}
if
(
body
instanceof
IPage
)
{
return
AdsPageUtil
.
transformToTableData
((
IPage
<?>)
body
);
}
// String需要特殊处理, 否则会抛出java.lang.ClassCastException
if
(
body
instanceof
String
)
{
return
JSON
.
toJSONString
(
AjaxResult
.
success
(
body
));
}
return
AjaxResult
.
success
(
body
);
}
}
src/main/java/com/ruoyi/adsdesk/controller/user/AdsUserController.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
controller
.
user
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.ruoyi.adsdesk.business.user.AdsUserBusiness
;
import
com.ruoyi.adsdesk.domain.AdsUser
;
import
com.ruoyi.adsdesk.param.UserListParam
;
import
com.ruoyi.adsdesk.vo.AdsUserVo
;
import
com.ruoyi.common.core.controller.BaseController
;
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
java.util.List
;
/**
* Ads 用户控制层
*
* @author Xingbz
* 030 06-30
*/
@RestController
@RequestMapping
(
"/adsdesk/ads_user"
)
public
class
AdsUserController
{
@Resource
private
AdsUserBusiness
userBusiness
;
@PostMapping
(
"/list"
)
public
IPage
<
AdsUser
>
list
(
@RequestBody
UserListParam
param
)
{
return
userBusiness
.
list
(
param
);
}
}
src/main/java/com/ruoyi/adsdesk/domain/AdsUser.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.adsdesk.common.AdsBaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* Ads登录用户
* @author Xingbz
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
value
=
"ads_user"
)
public
class
AdsUser
extends
AdsBaseEntity
<
Long
>
{
/**
* 客户id
*/
@TableField
(
value
=
"customer_id"
)
private
Long
customerId
;
/**
* email
*/
@TableField
(
value
=
"email"
)
private
String
email
;
/**
* 密码
*/
@TableField
(
value
=
"`password`"
)
private
String
password
;
/**
* 姓名
*/
@TableField
(
value
=
"`name`"
)
private
String
name
;
/**
* 角色(OPERATE 优化师,MANAGER 优化经理,DESIGNER 设计师,ADMIN 默认主账号)
*/
@TableField
(
value
=
"`role`"
)
private
String
role
;
/**
* 组id
*/
@TableField
(
value
=
"group_id"
)
private
Long
groupId
;
/**
* 状态(DISABLE 暂停,ENABLE 启用)
*/
@TableField
(
value
=
"`status`"
)
private
String
status
;
/**
* 查看tkio数据(1是,0否)
*/
@TableField
(
value
=
"show_tkio"
)
private
Boolean
showTkio
;
/**
* 内部管理员
*/
@TableField
(
value
=
"is_super"
)
private
Boolean
isSuper
;
/**
* 是否设计经理(1是 0否)
*/
@TableField
(
value
=
"is_design_manager"
)
private
Boolean
isDesignManager
;
/**
* 查看返点数据(1是,0否)
*/
@TableField
(
value
=
"show_rebates"
)
private
Boolean
showRebates
;
public
static
final
String
COL_ID
=
"id"
;
public
static
final
String
COL_CUSTOMER_ID
=
"customer_id"
;
public
static
final
String
COL_EMAIL
=
"email"
;
public
static
final
String
COL_PASSWORD
=
"password"
;
public
static
final
String
COL_NAME
=
"name"
;
public
static
final
String
COL_ROLE
=
"role"
;
public
static
final
String
COL_GROUP_ID
=
"group_id"
;
public
static
final
String
COL_STATUS
=
"status"
;
public
static
final
String
COL_CREATE_BY
=
"create_by"
;
public
static
final
String
COL_GMT_CREATE
=
"gmt_create"
;
public
static
final
String
COL_UPDATE_BY
=
"update_by"
;
public
static
final
String
COL_GMT_MODIFIED
=
"gmt_modified"
;
public
static
final
String
COL_IS_DELETE
=
"is_delete"
;
public
static
final
String
COL_SHOW_TKIO
=
"show_tkio"
;
public
static
final
String
COL_IS_SUPER
=
"is_super"
;
public
static
final
String
COL_IS_DESIGN_MANAGER
=
"is_design_manager"
;
public
static
final
String
COL_SHOW_REBATES
=
"show_rebates"
;
}
\ No newline at end of file
src/main/java/com/ruoyi/adsdesk/param/AdsListBaseParam.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
param
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* Ads查询接口通用参数
* 分页字段
* 排序字段
* @author Xingbz
* 007 06-07
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
AdsListBaseParam
extends
PageDomain
{
public
void
initMaxPage
()
{
this
.
setPageNum
(
1
);
this
.
setPageSize
(
Integer
.
MAX_VALUE
);
}
}
src/main/java/com/ruoyi/adsdesk/param/PageDomain.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
param
;
import
com.ruoyi.common.utils.StringUtils
;
/**
* 分页数据
*
* @author ruoyi
*/
public
class
PageDomain
{
/** 当前记录起始索引 */
private
Integer
pageNum
;
/** 每页显示记录数 */
private
Integer
pageSize
;
/** 排序列 */
private
String
orderByColumn
;
/** 排序的方向desc或者asc */
private
String
isAsc
=
"asc"
;
/** 分页参数合理化 */
private
Boolean
reasonable
=
true
;
public
String
getOrderBy
()
{
if
(
StringUtils
.
isEmpty
(
orderByColumn
))
{
return
""
;
}
return
StringUtils
.
toUnderScoreCase
(
orderByColumn
)
+
" "
+
isAsc
;
}
public
Integer
getPageNum
()
{
return
pageNum
;
}
public
void
setPageNum
(
Integer
pageNum
)
{
this
.
pageNum
=
pageNum
;
}
public
Integer
getPageSize
()
{
return
pageSize
;
}
public
void
setPageSize
(
Integer
pageSize
)
{
this
.
pageSize
=
pageSize
;
}
public
String
getOrderByColumn
()
{
return
orderByColumn
;
}
public
String
getOrderByColumnUnderScore
()
{
return
StringUtils
.
toUnderScoreCase
(
this
.
getOrderByColumn
());
}
public
void
setOrderByColumn
(
String
orderByColumn
)
{
this
.
orderByColumn
=
orderByColumn
;
}
public
String
getIsAsc
()
{
return
isAsc
;
}
public
void
setIsAsc
(
String
isAsc
)
{
if
(
StringUtils
.
isNotEmpty
(
isAsc
))
{
// 兼容前端排序类型
if
(
"ascending"
.
equals
(
isAsc
))
{
isAsc
=
"asc"
;
}
else
if
(
"descending"
.
equals
(
isAsc
))
{
isAsc
=
"desc"
;
}
this
.
isAsc
=
isAsc
;
}
}
public
boolean
isAscSort
()
{
return
StringUtils
.
equalsAnyIgnoreCase
(
this
.
isAsc
,
"asc"
);
}
public
Boolean
getReasonable
()
{
if
(
StringUtils
.
isNull
(
reasonable
))
{
return
Boolean
.
TRUE
;
}
return
reasonable
;
}
public
void
setReasonable
(
Boolean
reasonable
)
{
this
.
reasonable
=
reasonable
;
}
}
src/main/java/com/ruoyi/adsdesk/param/UserListParam.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
param
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/**
* 用户查询param
* @author Xingbz
* 007 06-30
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
UserListParam
extends
AdsListBaseParam
{
private
String
ids
;
private
Long
customerId
;
private
List
<
Long
>
customerIds
;
private
String
customerName
;
private
String
email
;
private
String
name
;
private
String
role
;
private
String
beginCreateTime
;
private
String
endCreateTime
;
}
src/main/java/com/ruoyi/adsdesk/util/AdsPageUtil.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
util
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.ruoyi.adsdesk.param.AdsListBaseParam
;
import
com.ruoyi.common.constant.HttpStatus
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
java.util.List
;
import
java.util.function.BiFunction
;
import
static
java
.
util
.
stream
.
Collectors
.
toList
;
/**
* Ads分页相关工具
* @author Xingbz
* 2022-6-7
*/
public
interface
AdsPageUtil
{
static
<
T
>
Page
<
T
>
buildPage
(
AdsListBaseParam
baseParam
)
{
return
new
Page
<
T
>(
baseParam
.
getPageNum
(),
baseParam
.
getPageSize
());
}
static
<
T
,
R
>
IPage
<
R
>
convert
(
IPage
<
T
>
page
,
List
<
R
>
rList
)
{
return
new
Page
<
R
>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
()).
setRecords
(
rList
);
}
/**
* IPage 的泛型转换
*
* @param mapper 转换函数
* @param <R> 转换后的泛型
* @return 转换泛型后的 IPage
*/
@SuppressWarnings
(
"unchecked"
)
static
<
T
,
U
,
R
>
IPage
<
R
>
convert
(
IPage
<
T
>
page
,
U
u
,
BiFunction
<?
super
T
,
U
,
?
extends
R
>
mapper
)
{
List
<
R
>
collect
=
page
.
getRecords
().
stream
().
map
(
item
->
mapper
.
apply
(
item
,
u
)).
collect
(
toList
());
return
((
IPage
<
R
>)
page
).
setRecords
(
collect
);
}
/**
* 根据全量集合进行内存分页, 适用于API端没有分页的数据
* @param list 全量数据集合(如果频繁使用一定要缓存)
* @param current 当前页数
* @param size 每页大小
* @return 分页结果
*/
static
<
T
>
Page
<
T
>
pageByList
(
List
<
T
>
list
,
Integer
current
,
Integer
size
)
{
int
total
=
list
.
size
();
Page
<
T
>
page
=
new
Page
<>(
current
,
size
,
total
);
// 如果仅有一页或一页不到的数据, 但是查询了第二页之后的 , 直接返回空数据(但是要附上总记录数)
if
(
total
<=
size
&&
current
>
1
)
{
return
page
;
}
// 如果有一页以上的数据, 则根据前端的分页参数计算本页数据
if
(
total
>
size
)
{
int
fromIndex
=
(
current
-
1
)
*
size
;
// 如果仅有100条 , 但查询了11页(从101开始), 则直接返回空数据(附上总记录数)
if
(
fromIndex
>
total
)
{
return
page
;
}
int
toIndex
=
fromIndex
+
size
;
// Math.min 是为了预防记录数超出时(最后一页时记录数不满一页)报异常
list
=
list
.
subList
(
fromIndex
,
Math
.
min
(
toIndex
,
total
));
}
page
.
setRecords
(
list
);
return
page
;
}
static
TableDataInfo
transformToTableData
(
IPage
<?>
pageResult
)
{
TableDataInfo
tableDataInfo
=
new
TableDataInfo
();
tableDataInfo
.
setCode
(
HttpStatus
.
SUCCESS
);
tableDataInfo
.
setMsg
(
"查询成功"
);
tableDataInfo
.
setRows
(
pageResult
.
getRecords
());
tableDataInfo
.
setTotal
(
pageResult
.
getTotal
());
return
tableDataInfo
;
}
}
src/main/java/com/ruoyi/adsdesk/vo/AdsUserVo.java
0 → 100644
View file @
075d9c0d
package
com
.
ruoyi
.
adsdesk
.
vo
;
import
com.ruoyi.adsdesk.common.AdsBaseEntity
;
import
lombok.Data
;
/**
* @author :zhaoqingwei
* @date :Created in 2023/12/10 12:04
* @description:${description}
*/
@Data
public
class
AdsUserVo
extends
AdsBaseEntity
{
/**
* 客户id
*/
private
Long
customerId
;
/**
* email
*/
private
String
email
;
/**
* 密码
*/
private
String
password
;
/**
* 姓名
*/
private
String
name
;
/**
* 角色(OPERATE 优化师,MANAGER 优化经理,DESIGNER 设计师,ADMIN 默认主账号)
*/
private
String
role
;
/**
* 组id
*/
private
Long
groupId
;
/**
* 状态(DISABLE 暂停,ENABLE 启用)
*/
private
String
status
;
/**
* 查看tkio数据(1是,0否)
*/
private
Boolean
showTkio
;
/**
* 内部管理员
*/
private
Boolean
isSuper
;
/**
* 是否设计经理(1是 0否)
*/
private
Boolean
isDesignManager
;
/**
* 查看返点数据(1是,0否)
*/
private
Boolean
showRebates
;
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment