package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.domain.TBoard; import com.ruoyi.system.domain.TShop; import com.ruoyi.system.dto.TShopDTO; import com.ruoyi.system.query.TShopQuery; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.TBoardService; import com.ruoyi.system.service.TShopService; import com.ruoyi.system.vo.TShopVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; /** *

* 店铺信息 前端控制器 *

* * @author xiaochen * @since 2024-08-14 */ @Api(tags = "店铺信息") @RestController @RequestMapping("/t-shop") public class TShopController { private final TShopService shopService; private final ISysUserService userService; private final TBoardService boardService; private final TokenService tokenService; @Autowired public TShopController(TShopService shopService, ISysUserService userService, TBoardService boardService, TokenService tokenService) { this.shopService = shopService; this.userService = userService; this.boardService = boardService; this.tokenService = tokenService; } /** * 查询店铺信息分页列表 */ @ApiOperation( value = "查询店铺信息分页列表") @PostMapping(value = "/pageList") public AjaxResult> pageList(@RequestBody TShopQuery query) { return AjaxResult.success(shopService.pageList(query)); } /** * 添加店铺信息 */ @ApiOperation( value = "添加店铺信息") @PostMapping(value = "/add") public AjaxResult add(@RequestBody TShopDTO dto) { shopService.save(dto); // 添加账号 Long userId = userService.addAccount(dto); dto.setUserId(userId); shopService.updateById(dto); return AjaxResult.success(); } /** * 编辑店铺信息 */ @ApiOperation( value = "编辑店铺信息") @PostMapping(value = "/edit") public AjaxResult edit(@RequestBody TShopDTO dto) { shopService.updateById(dto); userService.updateAccount(dto); return AjaxResult.success(); } /** * 查看店铺信息详情 */ @ApiOperation( value = "查看店铺信息详情") @GetMapping(value = "/getDetailById") public AjaxResult getDetailById(@RequestParam("id") Long id) { TShop shop = shopService.getById(id); TShopVO shopVO = new TShopVO(); BeanUtils.copyProperties(shop,shopVO); List list = boardService.list(Wrappers.lambdaQuery(TBoard.class) .eq(TBoard::getShopId, id)); shopVO.setBoards(list); return AjaxResult.success(shopVO); } /** * 用户查看店铺信息详情 */ @ApiOperation( value = "用户查看店铺信息详情") @GetMapping(value = "/getDetailByUserId") public AjaxResult getDetailByUserId() { Integer roleType = tokenService.getLoginUser().getRoleType(); if(roleType == 1){ return AjaxResult.error("该用户不是商家账号"); } return AjaxResult.success(shopService.getOne(Wrappers.lambdaQuery().eq(TShop::getUserId, tokenService.getLoginUser().getUserId()) .last("LIMIT 1"))); } /** * 删除店铺信息 */ @ApiOperation( value = "删除店铺信息") @DeleteMapping(value = "/deleteById") public AjaxResult deleteById(@RequestParam("id") Long id) { TShop shop = shopService.getById(id); // 查询账号 SysUser sysUser = userService.selectUserByUserName(shop.getAccount()); if(Objects.nonNull(sysUser)){ userService.deleteUserById(sysUser.getUserId()); } return AjaxResult.success(shopService.removeById(id)); } /** * 启用禁用店铺 */ @ApiOperation( value = "启用禁用店铺") @GetMapping(value = "/updateStatus") public AjaxResult updateStatus(@RequestParam(value = "id") Integer id, @RequestParam(value = "status") Integer status) { TShop shop = shopService.getById(id); shop.setStatus(status); shopService.updateById(shop); SysUser sysUser = userService.selectUserByUserName(shop.getAccount()); if(Objects.nonNull(sysUser)){ if(status == 1){ sysUser.setStatus("0"); }else { sysUser.setStatus("1"); } userService.updateUser(sysUser); } return AjaxResult.success(); } }