package com.mzl.flower.web.member; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.dto.request.menber.*; import com.mzl.flower.entity.menber.Member; import com.mzl.flower.entity.menber.MemberGrowthRecord; import com.mzl.flower.service.menber.MemberGrowthRecordService; import com.mzl.flower.service.menber.MemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull; /** * @author fanghaowei * @version version2.0 * @className MemberController * @date 2024/8/26 * @description 会员管理功能开发 */ @Api(value = "会员管理", tags = "会员管理") @RestController @RequestMapping("/api") @RequiredArgsConstructor public class MemberController extends BaseController { private final MemberService memberService; private final MemberGrowthRecordService memberGrowthRecordService; @PostMapping("/member/list") @ApiOperation(value = "会员列表", httpMethod = "POST") public ResponseEntity getMemberList(Page page, MemberQueryDTO dto) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.lambda().eq(isNotNull(dto.getLevelName()), Member::getName, dto.getLevelName()); page = (Page) memberService.page(page, queryWrapper); return returnData(R.SUCCESS.getCode(), page); } @DeleteMapping(value = "/member/delete/{id}") @ApiOperation(value = "删除会员 ", httpMethod = "DELETE", notes = "ID") public ResponseEntity delete(@PathVariable("id") Long id) { memberService.deleteMember(String.valueOf(id)); return returnData(R.SUCCESS.getCode(), null); } @PostMapping(value = "/member/save") @ApiOperation(value = "保存会员", httpMethod = "POST") public ResponseEntity insert(@RequestBody MemberDTO memberDTO) { Member member = new Member(); BeanUtils.copyProperties(memberDTO, member); member.create(SecurityUtils.getUserId()); memberService.saveMember(member); return returnData(R.SUCCESS.getCode(), null); } @PutMapping(value = "/member/update") @ApiOperation(value = "更新会员", httpMethod = "PUT") public ResponseEntity update(@RequestBody MemberDTO memberDTO) { memberService.updateMember(memberDTO); return returnData(R.SUCCESS.getCode(), null); } @PostMapping("/memberGrowthRecord/list") @ApiOperation(value = "会员记录列表", httpMethod = "POST") public ResponseEntity getMemberRecordList(Page page, MemberRecordQueryDTO dto) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.lambda().eq(isNotNull(dto.getType()), MemberGrowthRecord::getType, dto.getType()) .eq(isNotNull(dto.getSource()), MemberGrowthRecord::getSource, dto.getSource()) .ge(isNotNull(dto.getStartRecordDate()), MemberGrowthRecord::getRecordDate, dto.getStartRecordDate()) .le(isNotNull(dto.getEndRecordDate()), MemberGrowthRecord::getRecordDate, dto.getEndRecordDate()); page = (Page) memberGrowthRecordService.page(page, queryWrapper); return returnData(R.SUCCESS.getCode(), page); } @DeleteMapping(value = "/memberGrowthRecord/delete/{id}") @ApiOperation(value = "删除会员记录 ", httpMethod = "DELETE", notes = "ID") public ResponseEntity deleteGrowthRecord(@PathVariable("id") Long id) { memberGrowthRecordService.deleteMemberGrowthRecord(String.valueOf(id)); return returnData(R.SUCCESS.getCode(), null); } @PostMapping(value = "/memberGrowthRecord/save") @ApiOperation(value = "保存会员记录", httpMethod = "POST") public ResponseEntity insertGrowthRecord(@RequestBody MemberGrowthRecordDTO memberGrowthRecordDTO) { MemberGrowthRecord memberGrowthRecord = new MemberGrowthRecord(); BeanUtils.copyProperties(memberGrowthRecordDTO, memberGrowthRecord); memberGrowthRecord.create(SecurityUtils.getUserId()); memberGrowthRecordService.saveMemberGrowthRecord(memberGrowthRecord); return returnData(R.SUCCESS.getCode(), null); } @PutMapping(value = "/memberGrowthRecord/update") @ApiOperation(value = "更新会员记录", httpMethod = "PUT") public ResponseEntity updateGrowthRecord(@RequestBody MemberGrowthRecordDTO memberGrowthRecordDTO) { memberGrowthRecordService.updateMemberGrowthRecord(memberGrowthRecordDTO); return returnData(R.SUCCESS.getCode(), null); } @GetMapping(value = "/member/info/{userId}") @ApiOperation(value = "当前用户会员信息 ", httpMethod = "GET", notes = "ID") public ResponseEntity memberInfo(@PathVariable("userId") Long userId) { UserGrowthRecordDTO userGrowthRecordDTO = memberGrowthRecordService.getInfoByUserId(String.valueOf(userId)); return returnData(R.SUCCESS.getCode(), userGrowthRecordDTO); } }