package com.matrix.system.app.action; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.app.dto.AddVipDto; import com.matrix.system.app.dto.ModifyVipDto; import com.matrix.system.app.dto.QuestionAnswerDto; import com.matrix.system.app.dto.VipInfoListDto; import com.matrix.system.app.mapper.MoneyCardUseMapper; import com.matrix.system.app.mapper.QuestionMapper; import com.matrix.system.app.vo.*; import com.matrix.system.common.bean.CustomerDataDictionary; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.dao.CustomerDataDictionaryDao; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.hive.action.BaseController; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.VipAnswerDao; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.service.MoneyCardUseService; import com.matrix.system.hive.service.QuestionSerivce; import com.matrix.system.hive.service.SysVipInfoService; import com.matrix.system.hive.service.SysVipLevelService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author wzy * @date 2020-12-21 **/ @Api(value = "ApiVipInfoAction", tags = "会员接口类") @RestController @RequestMapping(value = "/api/vip") public class ApiVipInfoAction extends BaseController { @Autowired private SysVipInfoService sysVipInfoService; @Autowired private SysVipLevelService sysVipLevelService; @Autowired private CustomerDataDictionaryDao customerDataDictionaryDao; @Autowired private MoneyCardUseService moneyCardUseService; @Autowired private QuestionSerivce questionSerivce; @Autowired private VipAnswerDao vipAnswerDao; @ApiOperation(value = "获取会员通讯录列表", notes = "获取会员通讯录列表") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = VipInfoListVo.class) }) @PostMapping(value = "/findVipInfoList") public AjaxResult findVipInfoList(@RequestBody VipInfoListDto vipInfoListDto) { if (StringUtils.isBlank(vipInfoListDto.getSort())) { vipInfoListDto.setSort("zjm"); } if (StringUtils.isBlank(vipInfoListDto.getOrder())) { vipInfoListDto.setOrder("asc"); } int offset = (vipInfoListDto.getPageNum() - 1) * vipInfoListDto.getPageSize(); int limit = vipInfoListDto.getPageSize(); vipInfoListDto.setOffset(offset); vipInfoListDto.setLimit(limit); return AjaxResult.buildSuccessInstance(sysVipInfoService.findVipAddressBook(vipInfoListDto)); } @ApiOperation(value = "根据id查询用户信息(通讯录及个人中心)", notes = "根据id查询用户信息") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = VipInfoVo.class) }) @GetMapping(value = "/findVipInfoById/{id}") public AjaxResult findVipInfoById(@PathVariable("id") Long id) { AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); VipInfoVo vipInfoVo = sysVipInfoService.findApiVipInfoById(id); ajaxResult.putInMap("vipInfo", vipInfoVo); return ajaxResult; } @ApiOperation(value = "根据id查询用户详细信息") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = VipInfoDetailVo.class) }) @GetMapping(value = "/findVipInfoDetailById/{id}") public AjaxResult findVipInfoDetailById(@PathVariable("id") Long id) { VipInfoDetailVo vipInfoDetailVo = sysVipInfoService.findVipInfoDetail(id); AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); ajaxResult.putInMap("vipInfo", vipInfoDetailVo); return ajaxResult; } @ApiOperation(value = "查询会员类型", notes = "查询会员类型") @ApiResponses( @ApiResponse(code = 200, message = "ok", response = SysVipLevel.class) ) @GetMapping(value = "/findVipType") public AjaxResult findVipType() { SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); SysVipLevel sysVipLevel = new SysVipLevel(); if(!DataAuthUtil.hasAllShopAuth()) { sysVipLevel.setShopId(sysUsers.getShopId()); } return AjaxResult.buildSuccessInstance(sysVipLevelService.findByModel(sysVipLevel)); } @ApiOperation(value = "获取到店途径列表", notes = "获取到店途径列表") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = CustomerDataDictionary.class) }) @GetMapping(value = "/findArrivalWayList") public AjaxResult findArrivalWayList() { List ddtj = customerDataDictionaryDao.selectByParentCode("DDTJ", getMe().getCompanyId()); return AjaxResult.buildSuccessInstance(ddtj); } @ApiOperation(value = "添加会员", notes = "添加会员") @PostMapping(value = "/addVip") public AjaxResult addVip(@RequestBody @Validated AddVipDto addVipDto) { int i = sysVipInfoService.apiAddVip(addVipDto); if (i > 0) { return AjaxResult.buildSuccessInstance("新增成功"); } return AjaxResult.buildFailInstance("新增失败"); } @ApiOperation(value = "编辑会员", notes = "编辑会员") @PostMapping(value = "/modifyVip") public AjaxResult modifyVip(@RequestBody ModifyVipDto modifyVipDto) { int i = sysVipInfoService.apiModifyVip(modifyVipDto); if (i > 0) { return AjaxResult.buildSuccessInstance("修改成功"); } return AjaxResult.buildFailInstance("修改失败"); } @ApiOperation(value = "获取用户信息列表", notes = "获取用户信息列表") @GetMapping(value = "/findAllVipInfo") public AjaxResult findAllVipInfo() { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); SysVipInfo sysVipInfo = new SysVipInfo(); if(!DataAuthUtil.hasAllShopAuth()) { sysVipInfo.setShopId(user.getShopId()); } QueryUtil.setQueryLimitCom(sysVipInfo); return AjaxResult.buildSuccessInstance(sysVipInfoService.findAll(sysVipInfo)); } @ApiOperation(value = "卡项 - 获取会员卡项列表", notes = "卡项 - 获取会员卡项列表") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = VipCardListVo.class) }) @GetMapping(value = "/findVipCardInfo/{vipId}") public AjaxResult findVipCardInfo(@PathVariable("vipId") Long vipId) { MoneyCardUse moneyCardUse = new MoneyCardUse(); moneyCardUse.setVipId(vipId); List list = moneyCardUseService.findVipCardUseInPage(moneyCardUse, null); List dataList = MoneyCardUseMapper.INSTANCE.entitiesToCardListVos(list); return AjaxResult.buildSuccessInstance(dataList); } @ApiOperation(value = "会员档案 - 获取客户档案问题", notes = "会员档案 - 获取客户档案问题") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = QuestionVo.class) }) @GetMapping(value = "/findVipQuestions/{vipId}") public AjaxResult findVipQuestions(@PathVariable("vipId") Long vipId) { // 获取会员所有的答案,分类型 SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); List questions = questionSerivce.findByVipId(vipId,user.getCompanyId()); AjaxResult result = AjaxResult.buildSuccessInstance("获取成功"); List list = QuestionMapper.INSTANCE.entitiesToVos(questions); result.putInMap("questions", list); return result; } @ApiOperation(value = "会员档案 - 提交会员档案", notes = "会员档案 - 提交会员档案") @PostMapping(value = "/saveVipQuestionsAnswer") public AjaxResult saveVipQuestionsAnswer(@RequestBody QuestionAnswerDto questionAnswerDto) { VipAnswer delAnswer = new VipAnswer(); delAnswer.setVipId(questionAnswerDto.getVipId()); vipAnswerDao.deleteByModel(delAnswer); if (CollectionUtils.isNotEmpty(questionAnswerDto.getItems())) { List vipAnswers = QuestionMapper.INSTANCE.dtosToVipAnswers(questionAnswerDto.getItems()); vipAnswerDao.batchInsert(vipAnswers); } return AjaxResult.buildSuccessInstance("档案更新成功"); } @ApiOperation(value = "用户是否存在资金密码", notes = "用户是否存在资金密码") @GetMapping(value = "/isExistFundPassword/{vipId}") public AjaxResult isExistFundPassword(@PathVariable(value = "vipId") Long vipId) { SysVipInfo vipInfo = sysVipInfoService.findById(vipId); AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); if (StringUtils.isNotBlank(vipInfo.getPassWord())) { ajaxResult.putInMap("isExist", true); } else { ajaxResult.putInMap("isExist", false); } return ajaxResult; } }