|
@@ -0,0 +1,157 @@
|
|
|
+package com.free.controller;
|
|
|
+
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import javax.validation.Valid;
|
|
|
+
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.DeleteMapping;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.PathVariable;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.free.annotation.PassToken;
|
|
|
+import com.free.config.CustomizationException;
|
|
|
+import com.free.config.ExceptionEnum;
|
|
|
+import com.free.config.ResponseFormat;
|
|
|
+import com.free.dto.UserGetInfoDTO;
|
|
|
+import com.free.entity.User;
|
|
|
+import com.free.service.UserService;
|
|
|
+import com.free.utils.JwtUtil;
|
|
|
+
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@RequestMapping("/user")
|
|
|
+@Api(tags = "使用用户")
|
|
|
+public class UserController {
|
|
|
+ @Autowired
|
|
|
+ private UserService service;
|
|
|
+ @PassToken
|
|
|
+ @ApiOperation("用户进入智能客服获取信息")
|
|
|
+ @PostMapping("/getInfo")
|
|
|
+ public Object getInfo(@RequestBody UserGetInfoDTO body) {
|
|
|
+ QueryWrapper qw = new QueryWrapper<>();
|
|
|
+ qw.eq("uid", body.getUid());
|
|
|
+ Map user = service.getMap(qw);
|
|
|
+ if (null == user) {
|
|
|
+ // 用户首次登录,需要获取用户信息
|
|
|
+ User newUser = new User();
|
|
|
+ newUser.setUid(body.getUid());
|
|
|
+ // TODO:获取用户信息并填充,缺字段再补
|
|
|
+ newUser.setName("游客");
|
|
|
+ service.save(newUser);
|
|
|
+ // 再将新创建的用户赋值回user中,后面统一处理
|
|
|
+ QueryWrapper nqw = new QueryWrapper<>();
|
|
|
+ nqw.eq("id", newUser.getId());
|
|
|
+ user = service.getMap(nqw);
|
|
|
+ }
|
|
|
+ // 将用户转换成token
|
|
|
+ String code = JwtUtil.sign(user);
|
|
|
+ return ResponseFormat.success(code);
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 创建数据 */
|
|
|
+ @ApiOperation("创建数据")
|
|
|
+ @PostMapping("")
|
|
|
+ public Object save(@RequestBody @Valid User data) {
|
|
|
+ QueryWrapper oqw = new QueryWrapper<>();
|
|
|
+ oqw.eq("uid", data.getUid());
|
|
|
+ Long num = service.count(oqw);
|
|
|
+ if(num>0) {
|
|
|
+ throw new CustomizationException(ExceptionEnum.UID_EXIST);
|
|
|
+ }
|
|
|
+ this.service.save(data);
|
|
|
+ QueryWrapper qw = new QueryWrapper<>();
|
|
|
+ qw.eq("id", data.getId());
|
|
|
+ Map returnData = this.service.getMap(qw);
|
|
|
+ return ResponseFormat.success(returnData);
|
|
|
+ // return ResponseFormat.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("修改数据")
|
|
|
+ @PostMapping("/{id}")
|
|
|
+ public Object update(@PathVariable String id, @RequestBody User data) {
|
|
|
+ QueryWrapper qw = new QueryWrapper<>();
|
|
|
+ qw.eq("id", id);
|
|
|
+ Long num = this.service.count(qw);
|
|
|
+ if (num <= 0) {
|
|
|
+ throw new CustomizationException(ExceptionEnum.NOT_FOUND);
|
|
|
+ }
|
|
|
+ // 需要清掉uid修改,不允许修改,要改就删了再加
|
|
|
+ data.setUid(null);
|
|
|
+ data.setId(id);
|
|
|
+ this.service.updateById(data);
|
|
|
+ Object newData = this.service.getById(id);
|
|
|
+ return ResponseFormat.success(newData);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("查询数据列表")
|
|
|
+ @SuppressWarnings({ "unchecked" })
|
|
|
+ @GetMapping()
|
|
|
+ public Object list(@RequestParam Map<String, Object> allParams) {
|
|
|
+ Long skip = null, limit = null;
|
|
|
+ Map map = new HashMap();
|
|
|
+ QueryWrapper qw = new QueryWrapper<>();
|
|
|
+ qw.select("id", "title", "platform", "is_use");
|
|
|
+ /** 参数处理处理 */
|
|
|
+ for (String key : allParams.keySet()) {
|
|
|
+ Object value = allParams.get(key);
|
|
|
+ if (key.equals("skip")) {
|
|
|
+ skip = Long.valueOf(String.valueOf(value));
|
|
|
+ } else if (key.equals("limit")) {
|
|
|
+ limit = Long.valueOf(String.valueOf(value));
|
|
|
+ } else {
|
|
|
+ if (key.equals("title") || key.equals("platform")) {
|
|
|
+ qw.like(key, value);
|
|
|
+ } else {
|
|
|
+ // 其他为查询条件
|
|
|
+ qw.eq(key, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /** 分页处理 */
|
|
|
+ if (null != skip && null != limit) {
|
|
|
+ IPage page = new Page<>(skip, limit);
|
|
|
+ IPage pageResult = service.page(page, qw);
|
|
|
+ List data = pageResult.getRecords();
|
|
|
+ long total = pageResult.getTotal();
|
|
|
+ map.put("data", data);
|
|
|
+ map.put("total", total);
|
|
|
+ } else {
|
|
|
+ List list = service.list(qw);
|
|
|
+ map.put("data", list);
|
|
|
+ }
|
|
|
+ return ResponseFormat.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("查询数据")
|
|
|
+ @GetMapping("/{id}")
|
|
|
+ public Object fetch(@PathVariable String id) {
|
|
|
+ Object newData = service.getById(id);
|
|
|
+ return ResponseFormat.success(newData);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("删除数据")
|
|
|
+ @DeleteMapping("/{id}")
|
|
|
+ public Object delete(@PathVariable String id) {
|
|
|
+ QueryWrapper qw = new QueryWrapper<>();
|
|
|
+ qw.eq("id", id);
|
|
|
+ Long num = service.count(qw);
|
|
|
+ if (num <= 0) {
|
|
|
+ throw new CustomizationException(ExceptionEnum.NOT_FOUND);
|
|
|
+ }
|
|
|
+ service.removeById(id);
|
|
|
+ return ResponseFormat.success();
|
|
|
+ }
|
|
|
+}
|