package com.kiisoo.ic.system.controller; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.kiisoo.ic.common.BaseController; import com.kiisoo.ic.system.bean.AccountBean; import com.kiisoo.ic.system.bean.ImportAccountErrorBean; import com.kiisoo.ic.system.bean.ModifyAccountInput; import com.kiisoo.ic.system.bean.SaveAccountInput; import com.kiisoo.ic.system.enums.AccountEnum; import com.kiisoo.ic.system.service.PrivilageAccountService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; /** * 账号 前端控制器 * @author jinchaofan * @since 2020-02-19 */ @Slf4j @RestController @RequestMapping("/account") public class PrivilageAccountController extends BaseController { private final PrivilageAccountService privilageAccountService; @Autowired public PrivilageAccountController(PrivilageAccountService privilageAccountService) { this.privilageAccountService = privilageAccountService; } /** * 查询账号信息 * @param pageNum 页码 * @param pageSize 每页条数 * @param searchContent 查询内容 * @param roleId 角色id * @param shopId 店铺id * @return 请求状态码,账号信息集合 */ @ResponseBody @PostMapping("/info/list") public Map listAccountInfoList(@RequestParam(value = "pageNum", required = false, defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", required = false, defaultValue = "12") int pageSize, @RequestParam(value = "searchContent", required = false) String searchContent, @RequestParam(value = "roleId", required = false) Long roleId, @RequestParam(value = "shopId", required = false) Long shopId) { try { IPage accountBeanIPage = privilageAccountService.listAccountInfo(pageNum, 10, searchContent, roleId, shopId); return data(accountBeanIPage); } catch (Exception e) { log.error("查询账号信息出错", e); return fail(); } } /** * 账号管理-保存账号 * @param addFrom 账号输入 * @return 成功0000,失败0001,已存在0002 */ @ResponseBody @PostMapping("/save") public Map saveAccountInput(@RequestParam("addFrom")String addFrom) { try { JSONObject saveAccountInputJSON = JSONObject.parseObject(addFrom); SaveAccountInput saveAccountInput1 = saveAccountInputJSON.toJavaObject(SaveAccountInput.class); boolean flag = privilageAccountService.saveAccount(saveAccountInput1); //成功为0000,存在业务不能新增为0002 return flag ? data(Boolean.TRUE) : fail(0); } catch (Exception e) { log.error("账号管理-保存账号出错", e); return fail(); } } /** * 删除账号 * @param accountId 账号id * @param userId 用户id * @return 是否成功 */ @ResponseBody @PostMapping("/remove") public Map removeAccout(@RequestParam("accountId") Long accountId, @RequestParam("userId") Long userId) { try { boolean flag = privilageAccountService.removeAccout(accountId, userId); if(flag){ return success(); }else { return fail(); } } catch (Exception e) { log.error("删除账号出错", e); return fail(); } } /** * 修改账号 * @param modifyForm 修改账号输入类 * @return 标识码 */ @ResponseBody @PostMapping("/modify") public Map modifyAccount(@RequestParam("modifyForm") String modifyForm) { try { JSONObject modifyJson = JSONObject.parseObject(modifyForm); ModifyAccountInput modifyAccountInput = modifyJson.toJavaObject(ModifyAccountInput.class); int code = privilageAccountService.modifyAccount(modifyAccountInput); if(code == AccountEnum.ACCOUNT_MODIFY_STATUS_EXISTS.getType()) { return fail(AccountEnum.ACCOUNT_MODIFY_STATUS_EXISTS.getType()); } //成功 return data(Boolean.TRUE); } catch (Exception e) { log.error("修改账号出错", e); return fail(); } } /** * 上传账户信息 * * @param files 文件 * @param userId 用户id * @return 成功或者失败原因 */ @RequestMapping(value = "/upload", method = RequestMethod.POST, produces = "application/json;charset=utf8") @ResponseBody public Map uploadShops(@RequestParam("file") MultipartFile[] files, @RequestParam("userId") Long userId) { try { List errorBean = privilageAccountService.uploadAccount(files, userId); if(errorBean.isEmpty()){ return success(); }else { return data(errorBean); } } catch (Exception e) { log.error("上传失败", e); return fail(); } } }