241 lines
9.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.yzt.admin.controller;
import com.yzt.common.model.user.User;
import com.yzt.common.page.CommonPage;
import com.yzt.common.request.*;
import com.yzt.common.response.TopDetail;
import com.yzt.common.response.UserBrokerageRecordResponse;
import com.yzt.common.response.UserCenterResponse;
import com.yzt.common.response.UserResponse;
import com.yzt.common.result.CommonResult;
import com.yzt.service.service.UserBrokerageRecordService;
import com.yzt.service.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.List;
/**
* 用户表 前端控制器
*
*/
@Slf4j
@RestController
@RequestMapping("api/admin/user")
@Api(tags = "会员管理")
@Validated
public class UserController {
@Autowired
private UserService userService;
@Autowired
private UserBrokerageRecordService userBrokerageRecordService;
/**
* 分页显示用户表
* @param request 搜索条件
* @param pageParamRequest 分页参数
*/
@PreAuthorize("hasAuthority('admin:user:list')")
@ApiOperation(value = "分页列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public CommonResult<CommonPage<UserResponse>> getList(@ModelAttribute @Validated UserSearchRequest request,
@ModelAttribute PageParamRequest pageParamRequest) {
CommonPage<UserResponse> userCommonPage = CommonPage.restPage(userService.getList(request, pageParamRequest));
return CommonResult.success(userCommonPage);
}
@ApiOperation(value = "指定用户(uid)的被推广人列表")
@RequestMapping(value = "/promoted", method = RequestMethod.GET)
public CommonResult<CommonPage<UserResponse>> getPromotedUserList(@ModelAttribute @Validated UserSearchRequest request,
@ModelAttribute PageParamRequest pageParamRequest) {
CommonPage<UserResponse> userCommonPage = CommonPage.restPage(userService.getPromotedUserList(request, pageParamRequest));
return CommonResult.success(userCommonPage);
}
@ApiOperation(value = "获取指定用户的奖励记录列表")
@RequestMapping(value = "/brokerage/{uid}", method = RequestMethod.GET)
public CommonResult<CommonPage<UserBrokerageRecordResponse>> getUserBrokerageRecords(@PathVariable Integer uid,String customerName, String phone,
@ModelAttribute PageParamRequest pageParamRequest) {
CommonPage<UserBrokerageRecordResponse> userCommonPage = CommonPage.restPage(userBrokerageRecordService.getUserBrokerageRecords(uid, customerName,phone,pageParamRequest));
return CommonResult.success(userCommonPage);
}
/**
* 创建用户表
* @param userRequest 创建参数
*/
@ApiOperation(value = "创建")
@RequestMapping(value = "/create", method = RequestMethod.POST)
public CommonResult<String> create(@RequestBody @Validated UserCreateRequest userRequest) {
if (userService.createUser(userRequest)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* 修改用户表
* @param id integer id
* @param userRequest 修改参数
*/
@PreAuthorize("hasAuthority('admin:user:update')")
@ApiOperation(value = "修改")
@RequestMapping(value = "/update", method = RequestMethod.POST)
public CommonResult<String> update(@RequestParam Integer id, @RequestBody @Validated UserUpdateRequest userRequest) {
userRequest.setUid(id);
if (userService.updateUser(userRequest)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* 修改用户手机号
* @param id 用户uid
* @param phone 手机号
*/
@PreAuthorize("hasAuthority('admin:user:update:phone')")
@ApiOperation(value = "修改用户手机号")
@RequestMapping(value = "/update/phone", method = RequestMethod.GET)
public CommonResult<String> updatePhone(@RequestParam(name = "id") Integer id, @RequestParam(name = "phone") String phone) {
if (userService.updateUserPhone(id, phone)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* 用户详情
* @param id Integer
*/
@PreAuthorize("hasAuthority('admin:user:info')")
@ApiOperation(value = "详情")
@RequestMapping(value = "/info", method = RequestMethod.GET)
public CommonResult<User> info(@RequestParam(value = "id") Integer id) {
return CommonResult.success(userService.getInfoByUid(id));
}
/**
* 用户详情
* @param phone Integer
*/
@ApiOperation(value = "详情通过手机号查询")
@RequestMapping(value = "/by-phone", method = RequestMethod.GET)
public CommonResult<UserCenterResponse> infoByPhone(@RequestParam(value = "phone") String phone) {
return CommonResult.success(userService.getUserCenterResponseByPhone(phone));
}
/**
* 根据参数类型查询会员对应的信息
* @param userId Integer 会员id
* @param type int 类型 0=消费记录,1=积分明细,2=签到记录,3=持有优惠券,4=余额变动,5=好友关系
* @param pageParamRequest PageParamRequest 分页
*/
@PreAuthorize("hasAuthority('admin:user:infobycondition')")
@ApiOperation(value="会员详情")
@RequestMapping(value = "/infobycondition", method = RequestMethod.GET)
@ApiImplicitParams({
@ApiImplicitParam(name = "userId",example = "1", required = true),
@ApiImplicitParam(name = "type", value="0=消费记录,1=积分明细,2=签到记录,3=持有优惠券,4=余额变动,5=好友关系", example = "0"
, required = true)
})
public CommonResult<CommonPage<T>> infoByCondition(@RequestParam(name = "userId") @Valid Integer userId,
@RequestParam(name = "type") @Valid @Max(5) @Min(0) int type,
@ModelAttribute PageParamRequest pageParamRequest) {
return CommonResult.success(CommonPage.restPage((List<T>) userService.getInfoByCondition(userId,type,pageParamRequest)));
}
/**
* 会员详情页Top数据
*/
@PreAuthorize("hasAuthority('admin:user:topdetail')")
@ApiOperation(value = "会员详情页Top数据")
@RequestMapping(value = "topdetail", method = RequestMethod.GET)
public CommonResult<TopDetail> topDetail (@RequestParam @Valid Integer userId) {
return CommonResult.success(userService.getTopDetail(userId));
}
/**
* 操作积分
*/
@PreAuthorize("hasAuthority('admin:user:operate:founds')")
@ApiOperation(value = "积分余额")
@RequestMapping(value = "/operate/founds", method = RequestMethod.GET)
public CommonResult<Object> founds(@Validated UserOperateIntegralMoneyRequest request) {
if (userService.updateIntegralMoney(request)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* 会员分组
* @param id String id
* @param groupId Integer 分组Id
*/
@PreAuthorize("hasAuthority('admin:user:group')")
@ApiOperation(value = "分组")
@RequestMapping(value = "/group", method = RequestMethod.POST)
public CommonResult<String> group(@RequestParam String id, @RequestParam String groupId) {
if (userService.group(id, groupId)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* 会员标签
* @param id String id
* @param tagId Integer 标签id
*/
@PreAuthorize("hasAuthority('admin:user:tag')")
@ApiOperation(value = "标签")
@RequestMapping(value = "/tag", method = RequestMethod.POST)
public CommonResult<String> tag(@RequestParam String id, @RequestParam String tagId) {
if (userService.tag(id, tagId)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* 修改上级推广人
*/
@PreAuthorize("hasAuthority('admin:user:update:spread')")
@ApiOperation(value = "修改上级推广人")
@RequestMapping(value = "/update/spread", method = RequestMethod.POST)
public CommonResult<String> editSpread(@Validated @RequestBody UserUpdateSpreadRequest request) {
if (userService.editSpread(request)) {
return CommonResult.success("修改成功");
}
return CommonResult.failed("修改失败");
}
/**
* 更新用户会员等级
*/
@PreAuthorize("hasAuthority('admin:user:update:level')")
@ApiOperation(value = "更新用户会员等级")
@RequestMapping(value = "/update/level", method = RequestMethod.POST)
public CommonResult<Object> updateUserLevel(@Validated @RequestBody UpdateUserLevelRequest request) {
if (userService.updateUserLevel(request)) {
return CommonResult.success("更新成功");
}
return CommonResult.failed("更新失败");
}
}