zhangjinli 3 years ago
parent 030988f0e4
commit 2544b22428

@ -17,7 +17,7 @@ import java.lang.annotation.Target;
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface adminTokenValid {
public @interface adminNeedNoTokenValid {
/**
*
*

@ -1,7 +1,7 @@
package com.zh.project0512.aop;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zh.project0512.annotation.adminTokenValid;
import com.zh.project0512.annotation.adminNeedNoTokenValid;
import com.zh.project0512.utils.JwtUtil;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
@ -30,8 +30,8 @@ public class AdminLoginTokenInterceptor implements HandlerInterceptor {
// 判断访问的方法上是否有@needToken注解
HandlerMethod handlerMethod = (HandlerMethod) handler;
boolean tokenValid = handlerMethod.hasMethodAnnotation(adminTokenValid.class);
if (!tokenValid) {
boolean tokenValid = handlerMethod.hasMethodAnnotation(adminNeedNoTokenValid.class);
if (tokenValid) {
return true;
}
String token = request.getHeader(TOKEN);

@ -0,0 +1,114 @@
package com.zh.project0512.controller.manage;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zh.project0512.annotation.adminNeedNoTokenValid;
import com.zh.project0512.model.Admin;
import com.zh.project0512.model.User;
import com.zh.project0512.service.IAdminService;
import com.zh.project0512.service.IUserService;
import com.zh.project0512.utils.*;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
/**
* <p>
*
* </p>
*
* @author zh
* @since 2022-05-18
*/
@Tag(name = "后台账号管理")
@RestController
@RequestMapping("manage/admin")
public class AdminController {
@Autowired
private IAdminService adminService;
@Data
static class LoginParam {
@NotNull(message = "name不能为空")
@Schema(title = "账号名称")
private String name;
@NotNull(message = "密码不能为空")
@Schema(title = "密码")
private String password;
}
@Operation(summary = "登录")
@PostMapping("/login")
@adminNeedNoTokenValid
public Result login(@Validated @RequestBody LoginParam param) {
String name = param.getName();
String password = param.getPassword();
QueryWrapper<Admin> qw = new QueryWrapper<>();
qw.eq("name",name);
Admin admin = adminService.getOne(qw);
if(null == admin){
return Result.fail(HttpStatusEnum.USER_NOT_EXIST, "未注册!");
}
if(!password.equals(admin.getPassword())){
return Result.fail(HttpStatusEnum.USER_NOT_EXIST, "密码错误!");
}
String token = new JwtUtil().createAdminJWT(admin.getId().toString());
admin.setToken(token).setLastLoginAt(LocalDateTime.now());
adminService.updateById(admin);
return Result.success(admin);
}
// @Operation(summary = "小程序注册", parameters = {
// @Parameter(name = "code", description = "login返回的code未使用过"),
// @Parameter(name = "userInfo", description = "getUserInfo接口的iv和encryptedData"),
// @Parameter(name = "phone", description = "getPhoneNumber接口的iv和encryptedData")
// })
// @PostMapping("register")
// public Result register(@RequestBody @Parameter(hidden = true) JSONObject obj) {
// JSONObject res = weChatUtil.auth(obj.getString("code"));
// String openid = res.getString("openid");
// if (null == openid) {
// return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "无效的openid");
// }
// if (null != userService.selByOpenid(openid)) {
// return Result.fail(HttpStatusEnum.TEL_REGISTERED, "已注册");
// }
// String session_key = (String) res.get("session_key");
// JSONObject userinfo = obj.getJSONObject("userinfo");
// JSONObject phone = obj.getJSONObject("phone");
// String info = CoderUtil.decrypt(session_key, userinfo.getString("iv"), userinfo.getString("encryptedData"));
// String info2 = CoderUtil.decrypt(session_key, phone.getString("iv"), phone.getString("encryptedData"));
// JSONObject j = JSONObject.parseObject(info);
// JSONObject k = JSONObject.parseObject(info2);
// if (null == j || null == k) {
// return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "session_key解析失败");
// }
// User u = new User();
// u.setAvatar((String) j.get("avatarUrl"));
// u.setName((String) j.get("nickName"));
// u.setGender((Integer) j.get("gender"));
// u.setOpenid(openid);
// u.setTel(k.getString("phoneNumber"));
// u.setToken(new JwtUtil().createJWT(openid));
//// u.setToken(new JwtUtils().generateToken(openid, new Date().getTime()));
// u.setCreatAt(LocalDateTime.now());
// userService.save(u);
// return Result.success(u);
// }
}

@ -2,9 +2,11 @@ package com.zh.project0512.controller.manage;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zh.project0512.model.Brand;
import com.zh.project0512.service.IBrandService;
import com.zh.project0512.utils.MybatisPlusUtil;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -48,7 +50,7 @@ public class BrandController {
@Operation(summary = "新增品牌")
@PostMapping("/add")
public Result add(@Validated @RequestBody AddBParam param) {
brandService.save(new Brand().setName(param.getName()).setCreatAt(LocalDateTime.now()));
brandService.addBrand(new Brand().setName(param.getName()).setCreatAt(LocalDateTime.now()));
return Result.success("添加完成");
}
@ -86,6 +88,33 @@ public class BrandController {
@Operation(summary = "品牌列表")
@PostMapping("/list")
public Result list(@RequestBody(required = false) @Parameter(hidden = true) JSONObject obj) {
return Result.success(brandService.pageMaps(MybatisPlusUtil.SetPage(obj)));
QueryWrapper<Brand> qw = new QueryWrapper<>();
qw.orderByAsc("sortWeight").orderByDesc("updateAt","creatAt");
return Result.success(brandService.pageMaps(MybatisPlusUtil.SetPage(obj),qw));
}
@Data
static class UpdBSParam {
@NotNull(message = "id不能为空")
@Min(value = 1, message = "id最小值为1")
@Schema(title = "品牌id")
private Integer id;
@NotNull(message = "排序权重不能为空")
@Min(value = 1, message = "排序权重最小值为1")
@Schema(title = "排序权重:数字越小排序靠前")
private Integer sortWeight;
}
@Operation(summary = "修改品牌排序")
@PostMapping("/updSort")
public Result updSort(@Validated @RequestBody UpdBSParam param) {
Brand brand = brandService.getById(param.getId());
int origin = brand.getSortWeight();
int current = param.getSortWeight();
if(origin==current){
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION,"权重无变化");
}
brandService.updSort(origin,current,origin>current);
return Result.success("修改完成");
}
}

@ -2,10 +2,12 @@ package com.zh.project0512.controller.manage;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zh.project0512.model.ReferenceGroup;
import com.zh.project0512.service.IReferenceGroupService;
import com.zh.project0512.utils.MybatisPlusUtil;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -34,7 +36,7 @@ import java.time.LocalDateTime;
*/
@Validated
@RestController
@RequestMapping("/referenceGroup")
@RequestMapping("/manage/referenceGroup")
@Tag(name = "素材分组")
public class ReferenceGroupController {
@Autowired
@ -52,7 +54,7 @@ public class ReferenceGroupController {
@Operation(summary = "新增分组")
@PostMapping("/add")
public Result add(@Validated @RequestBody AddRGParam param) {
referenceGroupService.save(new ReferenceGroup().setName(param.getName()).setCoverUrl(param.getCoverUrl()).setCreatAt(LocalDateTime.now()));
referenceGroupService.addReferenceGroup(new ReferenceGroup().setName(param.getName()).setCoverUrl(param.getCoverUrl()).setCreatAt(LocalDateTime.now()));
return Result.success("添加完成!");
}
@ -92,7 +94,33 @@ public class ReferenceGroupController {
@Operation(summary = "分组列表")
@PostMapping("/list")
public Result list(@RequestBody(required = false) @Parameter(hidden = true) JSONObject obj) {
return Result.success(referenceGroupService.selectPage(MybatisPlusUtil.SetPage(obj), null));
QueryWrapper<ReferenceGroup> qw = new QueryWrapper<>();
qw.orderByAsc("sortWeight").orderByDesc("updateAt","creatAt");
return Result.success(referenceGroupService.pageMaps(MybatisPlusUtil.SetPage(obj),qw));
}
@Data
static class UpdBSParam {
@NotNull(message = "id不能为空")
@Min(value = 1, message = "id最小值为1")
@Schema(title = "标签id")
private Integer id;
@NotNull(message = "排序权重不能为空")
@Min(value = 1, message = "排序权重最小值为1")
@Schema(title = "排序权重:数字越小排序靠前")
private Integer sortWeight;
}
@Operation(summary = "修改标签排序")
@PostMapping("/updSort")
public Result updSort(@Validated @RequestBody TagController.UpdBSParam param) {
ReferenceGroup referenceGroup = referenceGroupService.getById(param.getId());
int origin = referenceGroup.getSortWeight();
int current = param.getSortWeight();
if(origin==current){
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION,"权重无变化");
}
referenceGroupService.updSort(origin,current,origin>current);
return Result.success("修改完成");
}
}

@ -2,9 +2,12 @@ package com.zh.project0512.controller.manage;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zh.project0512.model.Brand;
import com.zh.project0512.model.Tag;
import com.zh.project0512.service.ITagService;
import com.zh.project0512.utils.MybatisPlusUtil;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
@ -47,7 +50,7 @@ public class TagController {
@Operation(summary = "创建标签")
@PostMapping("/add")
public Result add(@Validated @RequestBody AddTagParam param) {
tagService.save(new Tag().setTitle(param.getTitle()).setCreatAt(LocalDateTime.now()));
tagService.addTag(new Tag().setTitle(param.getTitle()).setCreatAt(LocalDateTime.now()));
return Result.success("添加完成");
}
@ -85,6 +88,33 @@ public class TagController {
@Operation(summary = "标签列表")
@PostMapping("/list")
public Result list(@RequestBody(required = false) JSONObject obj) {
return Result.success(tagService.pageMaps(MybatisPlusUtil.SetPage(obj)));
QueryWrapper<Tag> qw = new QueryWrapper<>();
qw.orderByAsc("sortWeight").orderByDesc("updateAt","creatAt");
return Result.success(tagService.pageMaps(MybatisPlusUtil.SetPage(obj),qw));
}
@Data
static class UpdBSParam {
@NotNull(message = "id不能为空")
@Min(value = 1, message = "id最小值为1")
@Schema(title = "标签id")
private Integer id;
@NotNull(message = "排序权重不能为空")
@Min(value = 1, message = "排序权重最小值为1")
@Schema(title = "排序权重:数字越小排序靠前")
private Integer sortWeight;
}
@Operation(summary = "修改标签排序")
@PostMapping("/updSort")
public Result updSort(@Validated @RequestBody UpdBSParam param) {
Tag tag = tagService.getById(param.getId());
int origin = tag.getSortWeight();
int current = param.getSortWeight();
if(origin==current){
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION,"权重无变化");
}
tagService.updSort(origin,current,origin>current);
return Result.success("修改完成");
}
}

@ -277,7 +277,16 @@ public class TaskController {
@Operation(summary = "线索搜集列表")
@PostMapping("/customerNoteList")
public Result customerNote(@RequestBody JSONObject obj) {
IPage<Map> iPage = customerActionNoteService.pageList(MybatisPlusUtil.SetPage(obj),null);
QueryWrapper<CustomerActionNote> qw = new QueryWrapper<>();
String keywords = obj.getString("keywords");
if(keywords != null) {
qw.and(
wrapper ->
wrapper.like("t1.customerName", keywords).or().like("t3.title", keywords).like("t1.tel", keywords)
.or().like("t1.area", keywords).or().like("t1.remarks", keywords).or().like("t1.brandList", keywords)
);
}
IPage<Map> iPage = customerActionNoteService.pageList(MybatisPlusUtil.SetPage(obj),null,qw);
List<Map> records = iPage.getRecords();
for(Map m:records){
if(m.get("brandList") !=null){

@ -83,7 +83,7 @@ public class UserAccountController {
@Operation(summary = "关联账号审核")
@PostMapping("/valid")
public Result pass(@Validated @RequestBody PassUAParam param) {
public Result valid(@Validated @RequestBody PassUAParam param) {
UserAccount ua = userAccountService.getById(param.getId());
if(ua ==null){
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION,"未找到指定账号");

@ -1,93 +0,0 @@
package com.zh.project0512.controller.manage;
import com.alibaba.fastjson.JSONObject;
import com.zh.project0512.model.User;
import com.zh.project0512.service.IUserService;
import com.zh.project0512.utils.*;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
/**
* <p>
*
* </p>
*
* @author zh
* @since 2022-05-18
*/
@Tag(name = "用户")
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@Autowired
private WeChatUtil weChatUtil;
@Operation(summary = "小程序登录", parameters = {@Parameter(name = "code", description = "login返回的code未使用过")})
@PostMapping("/login")
public Result login(@RequestBody @Parameter(hidden = true) JSONObject obj) {
JSONObject res = weChatUtil.auth(obj.getString("code"));
String openid = res.getString("openid");
User u = userService.selByOpenid(openid);
if (null == u) {
return Result.fail(HttpStatusEnum.USER_NOT_EXIST, "未注册!");
}
String token = new JwtUtil().createJWT(openid);
userService.updByOpenid(openid, token, LocalDateTime.now());
Map map = new HashMap();
map.put("token", token);
map.put("user", u);
return Result.success(map);
}
@Operation(summary = "小程序注册", parameters = {
@Parameter(name = "code", description = "login返回的code未使用过"),
@Parameter(name = "userInfo", description = "getUserInfo接口的iv和encryptedData"),
@Parameter(name = "phone", description = "getPhoneNumber接口的iv和encryptedData")
})
@PostMapping("register")
public Result register(@RequestBody @Parameter(hidden = true) JSONObject obj) {
JSONObject res = weChatUtil.auth(obj.getString("code"));
String openid = res.getString("openid");
if (null == openid) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "无效的openid");
}
if (null != userService.selByOpenid(openid)) {
return Result.fail(HttpStatusEnum.TEL_REGISTERED, "已注册");
}
String session_key = (String) res.get("session_key");
JSONObject userinfo = obj.getJSONObject("userinfo");
JSONObject phone = obj.getJSONObject("phone");
String info = CoderUtil.decrypt(session_key, userinfo.getString("iv"), userinfo.getString("encryptedData"));
String info2 = CoderUtil.decrypt(session_key, phone.getString("iv"), phone.getString("encryptedData"));
JSONObject j = JSONObject.parseObject(info);
JSONObject k = JSONObject.parseObject(info2);
if (null == j || null == k) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "session_key解析失败");
}
User u = new User();
u.setAvatar((String) j.get("avatarUrl"));
u.setName((String) j.get("nickName"));
u.setGender((Integer) j.get("gender"));
u.setOpenid(openid);
u.setTel(k.getString("phoneNumber"));
u.setToken(new JwtUtil().createJWT(openid));
// u.setToken(new JwtUtils().generateToken(openid, new Date().getTime()));
u.setCreatAt(LocalDateTime.now());
userService.save(u);
return Result.success(u);
}
}

@ -2,6 +2,7 @@ package com.zh.project0512.controller.wxApp;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zh.project0512.model.ReferenceGroup;
import com.zh.project0512.service.IReferenceGroupService;
@ -42,6 +43,8 @@ public class ReferenceGroupUController {
@Operation(summary = "分组列表")
@PostMapping("/list")
public Result list(@RequestBody(required = false) @Parameter(hidden = true) JSONObject obj) {
return Result.success(referenceGroupService.selectPage(MybatisPlusUtil.SetPage(obj), null));
QueryWrapper<ReferenceGroup> qw = new QueryWrapper<>();
qw.orderByAsc("sortWeight").orderByDesc("updateAt","creatAt");
return Result.success(referenceGroupService.pageMaps(MybatisPlusUtil.SetPage(obj),qw));
}
}

@ -167,7 +167,16 @@ public class TaskUController {
@PostMapping("/customerNoteList")
@tokenValid
public Result customerNote(@Validated @RequestBody JSONObject obj, @RequestHeader(value = "token") @Parameter(name = "登录token") String token) {
IPage<Map> iPage = customerActionNoteService.pageList(MybatisPlusUtil.SetPage(obj), new JwtUtil().parseOpenid(token));
QueryWrapper<CustomerActionNote> qw = new QueryWrapper<>();
String keywords = obj.getString("keywords");
if(keywords != null) {
qw.and(
wrapper ->
wrapper.like("t1.customerName", keywords).or().like("t3.title", keywords).like("t1.tel", keywords)
.or().like("t1.area", keywords).or().like("t1.remarks", keywords).or().like("t1.brandList", keywords)
);
}
IPage<Map> iPage = customerActionNoteService.pageList(MybatisPlusUtil.SetPage(obj), new JwtUtil().parseOpenid(token),qw);
List<Map> records = iPage.getRecords();
for (Map m : records) {
if (m.get("brandList") != null) {

@ -23,7 +23,9 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;
/**
@ -55,30 +57,64 @@ public class UserReferenceUController {
@tokenValid
@PostMapping("/add")
public Result add(@Validated @RequestBody AddURParam param, @RequestHeader("token") @Parameter(name = "登录token") String token) {
Claims claims = new JwtUtil().parseJWT(token);
Integer userId = userService.selByOpenid(claims.getId()).getId();
if(userId == null){
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION,"用户不存在");
}
QueryWrapper<UserReference> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("id",param.getId()).eq();
// userReferenceService.listObjs(queryWrapper)
if (null != userReferenceService.getMap(new QueryWrapper<UserReference>().eq("userId", userId).eq("referenceId", param.getReferenceId()))) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION,"数据已存在");
Integer userId = userService.selByOpenid(new JwtUtil().parseOpenid(token)).getId();
if (userId == null) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "用户不存在");
}
userReferenceService.save(new UserReference().setUserId(userId).setReferenceId(param.getReferenceId()));
return Result.success("添加完成");
}
@Data
static class AddUGRParam {
@Schema(title = "素材id列表")
@NotEmpty(message = "referenceId数组不能为空")
private List<Integer> referenceIdList;
}
@Operation(summary = "批量添加到素材收藏夹")
@tokenValid
@PostMapping("/addGroup")
public Result addGroup(@Validated @RequestBody AddUGRParam param, @RequestHeader("token") @Parameter(name = "登录token") String token) {
Integer userId = userService.selByOpenid(new JwtUtil().parseOpenid(token)).getId();
if (userId == null) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "用户不存在");
}
userReferenceService.addGroup(userId, param.getReferenceIdList(), LocalDateTime.now());
return Result.success("添加完成");
}
@Operation(summary = "从素材收藏夹删除")
@tokenValid
@PostMapping("/del")
public Result del(@Validated @RequestBody AddURParam param, @RequestHeader("token") @Parameter(name = "登录token") String token) {
Integer userId = userService.selByOpenid(new JwtUtil().parseOpenid(token)).getId();
if (userId == null) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "用户不存在");
}
return MybatisPlusUtil.sqlResult(userReferenceService.remove(new QueryWrapper<UserReference>().eq("userId", userId).eq("referenceId", param.getReferenceId())), "删除");
}
@Operation(summary = "批量从素材收藏夹删除")
@tokenValid
@PostMapping("/delGroup")
public Result delGroup(@Validated @RequestBody AddUGRParam param, @RequestHeader("token") @Parameter(name = "登录token") String token) {
Integer userId = userService.selByOpenid(new JwtUtil().parseOpenid(token)).getId();
if (userId == null) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "用户不存在");
}
return MybatisPlusUtil.sqlResult(userReferenceService.remove(new QueryWrapper<UserReference>().eq("userId", userId).in("referenceId", param.getReferenceIdList())), "批量删除");
}
@Operation(summary = "用户素材列表")
@tokenValid
@PostMapping("/list")
public Result list(@RequestBody(required = false) JSONObject obj, @RequestHeader("token") @Parameter(name = "登录token") String token) {
String openid = new JwtUtil().parseOpenid(token);
IPage iPage = userReferenceService.dateList(MybatisPlusUtil.SetPage(obj),openid);
IPage iPage = userReferenceService.dateList(MybatisPlusUtil.SetPage(obj), openid);
List list = iPage.getRecords();
if (list.size() > 0) {
iPage.setRecords(userReferenceService.list(new JwtUtil().parseOpenid(token),list));
iPage.setRecords(userReferenceService.list(new JwtUtil().parseOpenid(token), list));
}
return Result.success(iPage);
}

@ -0,0 +1,16 @@
package com.zh.project0512.mapper;
import com.zh.project0512.model.Admin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper
* </p>
*
* @author zh
* @since 2022-06-10
*/
public interface AdminMapper extends BaseMapper<Admin> {
}

@ -2,15 +2,29 @@ package com.zh.project0512.mapper;
import com.zh.project0512.model.Brand;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Update;
/**
* <p>
* Mapper
* Mapper
* </p>
*
* @author zh
* @since 2022-05-26
*/
public interface BrandMapper extends BaseMapper<Brand> {
@Update("update brand set sortWeight = sortWeight + 1;\n" +
"insert into brand ( name, creatAt,sortWeight) VALUES ( #{name}, #{creatAt},1 );")
void addBrand(Brand brand);
@Update("<script>" +
"update brand set sortWeight = -1 where sortWeight = #{origin};\n" +
"<if test='originHigherCurrent'> " +
"update brand set sortWeight = sortWeight + 1 where sortWeight &gt;= #{current} and sortWeight &lt; #{origin};"+
"</if>" +
"<if test='!originHigherCurrent'> " +
"update brand set sortWeight = sortWeight - 1 where sortWeight &gt; #{origin} and sortWeight &lt;= #{current};\n" +
"</if>" +
"update brand set sortWeight = #{current} where sortWeight = -1;" +
"</script>")
void updSort(int origin, int current, boolean originHigherCurrent);
}

@ -1,8 +1,11 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.model.CustomerActionNote;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.Reference;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Map;
@ -21,8 +24,16 @@ public interface CustomerActionNoteMapper extends BaseMapper<CustomerActionNote>
"from customerActionNote as t1\n" +
"LEFT JOIN user as t2 on t1.provideId = t2.id\n" +
"LEFT JOIN task as t3 on t1.taskId = t3.id\n"+
"<if test='openid!=null'>and t2.openid =#{openid} </if>" +
"<if test='openid!=null'>where t2.openid =#{openid} </if>" +
"<if test='ew != null'>" +
"<if test='ew.nonEmptyOfWhere'>" +
"AND " +
"</if> " +
"${ew.SqlSegment}" +
"</if> " +
"order by t1.creatAt desc"+
"</script>")
IPage<Map> pageList(IPage page,String openid);
IPage<Map> pageList(IPage page,String openid, @Param("ew") Wrapper<CustomerActionNote> queryWrapper);
}

@ -2,10 +2,12 @@ package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.model.Brand;
import com.zh.project0512.model.ReferenceGroup;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.Task;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/**
* <p>
@ -16,5 +18,19 @@ import org.apache.ibatis.annotations.Param;
* @since 2022-05-24
*/
public interface ReferenceGroupMapper extends BaseMapper<ReferenceGroup> {
IPage<ReferenceGroup> selectPage(IPage<ReferenceGroup> page, @Param("ew") Wrapper<ReferenceGroup> queryWrapper);
// IPage<ReferenceGroup> selectPage(IPage<ReferenceGroup> page, @Param("ew") Wrapper<ReferenceGroup> queryWrapper);
@Update("update referenceGroup set sortWeight = sortWeight + 1;\n" +
"insert into referenceGroup ( name,coverUrl, creatAt,sortWeight) VALUES ( #{name}, #{coverUrl},#{creatAt},1 );")
void addReferenceGroup(ReferenceGroup referenceGroup);
@Update("<script>" +
"update referenceGroup set sortWeight = -1 where sortWeight = #{origin};\n" +
"<if test='originHigherCurrent'> " +
"update referenceGroup set sortWeight = sortWeight + 1 where sortWeight &gt;= #{current} and sortWeight &lt; #{origin};"+
"</if>" +
"<if test='!originHigherCurrent'> " +
"update referenceGroup set sortWeight = sortWeight - 1 where sortWeight &gt; #{origin} and sortWeight &lt;= #{current};\n" +
"</if>" +
"update referenceGroup set sortWeight = #{current} where sortWeight = -1;" +
"</script>")
void updSort(int origin, int current, boolean originHigherCurrent);
}

@ -1,7 +1,9 @@
package com.zh.project0512.mapper;
import com.zh.project0512.model.Brand;
import com.zh.project0512.model.Tag;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Update;
/**
* <p>
@ -12,5 +14,18 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2022-05-22
*/
public interface TagMapper extends BaseMapper<Tag> {
@Update("update tag set sortWeight = sortWeight + 1;\n" +
"insert into tag ( title, creatAt,sortWeight) VALUES ( #{title}, #{creatAt},1 );")
void addTag(Tag tag);
@Update("<script>" +
"update tag set sortWeight = -1 where sortWeight = #{origin};\n" +
"<if test='originHigherCurrent'> " +
"update tag set sortWeight = sortWeight + 1 where sortWeight &gt;= #{current} and sortWeight &lt; #{origin};"+
"</if>" +
"<if test='!originHigherCurrent'> " +
"update tag set sortWeight = sortWeight - 1 where sortWeight &gt; #{origin} and sortWeight &lt;= #{current};\n" +
"</if>" +
"update tag set sortWeight = #{current} where sortWeight = -1;" +
"</script>")
void updSort(int origin, int current, boolean originHigherCurrent);
}

@ -44,6 +44,7 @@ public interface TaskMapper extends BaseMapper<Task> {
"</if> " +
"${ew.SqlSegment}" +
"</if> " +
"ORDER BY t1.updateAt DESC,t1.creatAt DESC" +
"</script>")
IPage<Integer> idList(IPage iPage, List<Integer> tagIdList, List<Integer> brandIdList, @Param("ew") Wrapper<Reference> queryWrapper);

@ -3,11 +3,14 @@ package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.model.Reference;
import com.zh.project0512.model.UserAccount;
import com.zh.project0512.model.UserReference;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@ -20,13 +23,19 @@ import java.util.Map;
* @since 2022-05-26
*/
public interface UserReferenceMapper extends BaseMapper<UserReference> {
@Insert("<script> " +
"insert into userReference (userId,referenceId,creatAt) values\n"+
" <foreach collection= 'referenceIdList' item= 'item' separator=','>\n" +
"(#{userId},#{item},#{creatAt})\n"+
"</foreach> \n"+
"</script>")
void addGroup(int userId,List<Integer> referenceIdList, LocalDateTime creatAt);
@Select("<script>" +
"SELECT date_format(t1.creatAt, '%Y-%m-%d') dat " +
"SELECT date_format(t2.creatAt, '%Y-%m-%d') dat " +
"from reference t1 " +
"left join userReference as t2 on t1.id = t2.referenceId left JOIN user as t3 on t3.id = t2.userId "+
"where t3.openid = #{openid} "+
" group by dat " +
"right join (SELECT t2.* from userReference as t2 left JOIN user as t3 on t3.id = t2.userId WHERE t3.openid = #{openid} GROUP BY referenceId) as t2 on t1.id = t2.referenceId " +
"WHERE t1.id "+
"group by dat " +
"ORDER BY dat DESC" +
"</script>")
IPage<String> dateList(IPage iPage,String openid);

@ -0,0 +1,94 @@
package com.zh.project0512.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zh
* @since 2022-06-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class Admin extends Model {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
*
*/
private String name;
/**
*
*/
private String tel;
/**
*
*/
private String password;
/**
* 1.2.
*/
private Integer type;
/**
* 1.0.
*/
@TableField("isDelete")
private Integer isDelete;
/**
* id
*/
@TableField("creatId")
private Integer creatId;
/**
* token
*/
private String token;
/**
*
*/
@TableField("creatAt")
private LocalDateTime creatAt;
/**
*
*/
@TableField("updateAt")
private LocalDateTime updateAt;
/**
*
*/
@TableField("lastLoginAt")
private LocalDateTime lastLoginAt;
/**
* 1.2.
*/
private Integer status;
}

@ -56,5 +56,10 @@ public class Brand extends Model {
@Schema(title = "点击数")
private Integer hits;
/**
* :
*/
@Schema(title = "排序权重:数字越小排序靠前")
@TableField("sortWeight")
private Integer sortWeight;
}

@ -53,5 +53,10 @@ public class ReferenceGroup extends Model {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateAt;
/**
* :
*/
@Schema(title = "排序权重:数字越小排序靠前")
@TableField("sortWeight")
private Integer sortWeight;
}

@ -45,4 +45,10 @@ public class Tag extends Model {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateAt;
/**
* :
*/
@Schema(title = "排序权重:数字越小排序靠前")
@TableField("sortWeight")
private Integer sortWeight;
}

@ -0,0 +1,16 @@
package com.zh.project0512.service;
import com.zh.project0512.model.Admin;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
*
* </p>
*
* @author zh
* @since 2022-06-10
*/
public interface IAdminService extends IService<Admin> {
}

@ -12,5 +12,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2022-05-26
*/
public interface IBrandService extends IService<Brand> {
void addBrand(Brand brand);
void updSort(int origin, int current, boolean originHigherCurrent);
}

@ -1,8 +1,11 @@
package com.zh.project0512.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.model.CustomerActionNote;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zh.project0512.model.Reference;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
@ -15,5 +18,5 @@ import java.util.Map;
* @since 2022-05-30
*/
public interface ICustomerActionNoteService extends IService<CustomerActionNote> {
IPage<Map> pageList(IPage page,String openid);
IPage<Map> pageList(IPage page,String openid, @Param("ew") Wrapper<CustomerActionNote> queryWrapper);
}

@ -2,6 +2,7 @@ package com.zh.project0512.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.model.Brand;
import com.zh.project0512.model.ReferenceGroup;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zh.project0512.model.Task;
@ -16,5 +17,7 @@ import org.apache.ibatis.annotations.Param;
* @since 2022-05-24
*/
public interface IReferenceGroupService extends IService<ReferenceGroup> {
IPage<ReferenceGroup> selectPage(IPage<ReferenceGroup> page, @Param("ew") Wrapper<ReferenceGroup> queryWrapper);
// IPage<ReferenceGroup> selectPage(IPage<ReferenceGroup> page, @Param("ew") Wrapper<ReferenceGroup> queryWrapper);
void addReferenceGroup(ReferenceGroup referenceGroup);
void updSort(int origin, int current, boolean originHigherCurrent);
}

@ -1,5 +1,6 @@
package com.zh.project0512.service;
import com.zh.project0512.model.Brand;
import com.zh.project0512.model.Tag;
import com.baomidou.mybatisplus.extension.service.IService;
@ -12,5 +13,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2022-05-22
*/
public interface ITagService extends IService<Tag> {
void addTag(Tag tag);
void updSort(int origin, int current, boolean originHigherCurrent);
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.model.UserReference;
import com.baomidou.mybatisplus.extension.service.IService;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@ -16,6 +17,7 @@ import java.util.Map;
* @since 2022-05-26
*/
public interface IUserReferenceService extends IService<UserReference> {
void addGroup(int userId,List<Integer> referenceIdList, LocalDateTime creatAt);
IPage<String> dateList(IPage iPage, String openid);
List<Map> list(String openid,List<String> list);
}

@ -0,0 +1,20 @@
package com.zh.project0512.serviceImpl;
import com.zh.project0512.model.Admin;
import com.zh.project0512.mapper.AdminMapper;
import com.zh.project0512.service.IAdminService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
*
* </p>
*
* @author zh
* @since 2022-06-10
*/
@Service
public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements IAdminService {
}

@ -4,11 +4,12 @@ import com.zh.project0512.model.Brand;
import com.zh.project0512.mapper.BrandMapper;
import com.zh.project0512.service.IBrandService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* <p>
*
*
* </p>
*
* @author zh
@ -16,5 +17,12 @@ import org.springframework.stereotype.Service;
*/
@Service
public class BrandServiceImpl extends ServiceImpl<BrandMapper, Brand> implements IBrandService {
@Autowired
private BrandMapper brandMapper;
public void addBrand(Brand brand){
brandMapper.addBrand(brand);
}
public void updSort(int origin, int current, boolean originHigherCurrent) {
brandMapper.updSort(origin, current, originHigherCurrent);
}
}

@ -1,10 +1,13 @@
package com.zh.project0512.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.model.CustomerActionNote;
import com.zh.project0512.mapper.CustomerActionNoteMapper;
import com.zh.project0512.model.Reference;
import com.zh.project0512.service.ICustomerActionNoteService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -22,7 +25,7 @@ import java.util.Map;
public class CustomerActionNoteServiceImpl extends ServiceImpl<CustomerActionNoteMapper, CustomerActionNote> implements ICustomerActionNoteService {
@Autowired
private CustomerActionNoteMapper customerActionNoteMapper;
public IPage<Map> pageList(IPage page,String openid){
return customerActionNoteMapper.pageList(page,openid);
public IPage<Map> pageList(IPage page,String openid, @Param("ew") Wrapper<CustomerActionNote> queryWrapper){
return customerActionNoteMapper.pageList(page,openid,queryWrapper);
}
}

@ -2,6 +2,8 @@ package com.zh.project0512.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zh.project0512.mapper.BrandMapper;
import com.zh.project0512.model.Brand;
import com.zh.project0512.model.ReferenceGroup;
import com.zh.project0512.mapper.ReferenceGroupMapper;
import com.zh.project0512.model.Task;
@ -23,7 +25,13 @@ import org.springframework.stereotype.Service;
public class ReferenceGroupServiceImpl extends ServiceImpl<ReferenceGroupMapper, ReferenceGroup> implements IReferenceGroupService {
@Autowired
private ReferenceGroupMapper referenceGroupMapper;
public IPage<ReferenceGroup> selectPage(IPage<ReferenceGroup> page, @Param("ew") Wrapper<ReferenceGroup> queryWrapper){
return referenceGroupMapper.selectPage(page,queryWrapper);
// public IPage<ReferenceGroup> selectPage(IPage<ReferenceGroup> page, @Param("ew") Wrapper<ReferenceGroup> queryWrapper){
// return referenceGroupMapper.selectPage(page,queryWrapper);
// }
public void addReferenceGroup(ReferenceGroup referenceGroup){
referenceGroupMapper.addReferenceGroup(referenceGroup);
}
public void updSort(int origin, int current, boolean originHigherCurrent) {
referenceGroupMapper.updSort(origin, current, originHigherCurrent);
}
}

@ -1,9 +1,12 @@
package com.zh.project0512.serviceImpl;
import com.zh.project0512.mapper.BrandMapper;
import com.zh.project0512.model.Brand;
import com.zh.project0512.model.Tag;
import com.zh.project0512.mapper.TagMapper;
import com.zh.project0512.service.ITagService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -16,5 +19,12 @@ import org.springframework.stereotype.Service;
*/
@Service
public class TagServiceImpl extends ServiceImpl<TagMapper, Tag> implements ITagService {
@Autowired
private TagMapper tagMapper;
public void addTag(Tag tag){
tagMapper.addTag(tag);
}
public void updSort(int origin, int current, boolean originHigherCurrent) {
tagMapper.updSort(origin, current, originHigherCurrent);
}
}

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@ -23,7 +24,9 @@ import java.util.Map;
public class UserReferenceServiceImpl extends ServiceImpl<UserReferenceMapper, UserReference> implements IUserReferenceService {
@Autowired
private UserReferenceMapper userReferenceMapper;
public void addGroup(int userId,List<Integer> referenceIdList, LocalDateTime creatAt){
userReferenceMapper.addGroup(userId, referenceIdList, creatAt);
}
public IPage<String> dateList(IPage iPage, String openid){
return userReferenceMapper.dateList(iPage,openid);
}

@ -15,7 +15,7 @@ import java.util.Map;
public class JwtUtil {
private String secret = "secret";
private String adminSecret = "adminSecret";
private long expire = 24*60*60;
/**
@ -34,6 +34,16 @@ public class JwtUtil {
return jwt;
}
public String createAdminJWT(String id) {
Date date = new Date();
Date expireDate = new Date(date.getTime() + expire*1000);
String jwt= Jwts.builder().setId(id) .setSubject("admin-token")
.setExpiration(expireDate)
.signWith(SignatureAlgorithm.HS256,adminSecret)
.compact();
return jwt;
}
/**
* JWT
*
@ -48,6 +58,15 @@ public class JwtUtil {
}
}
public Claims parseAdminJWT(String jwt) {
try {
return Jwts.parser().setSigningKey(adminSecret).parseClaimsJws(jwt).getBody();
}catch (Exception e){
return null;
}
}
/**
* JWT openid
*

@ -4,7 +4,7 @@ server:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://121.41.171.43:3306/project0512?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
url: jdbc:mysql://121.41.171.43:3306/project0512?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: project0512
password: zhang123.
hikari:

@ -4,7 +4,7 @@ server:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://mysql:3306/project0512?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
url: jdbc:mysql://mysql:3306/project0512?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: project0512
password: zhang123.
hikari:

@ -12,16 +12,16 @@
<result column="groupId" property="groupId"/>
<result column="creatAt" property="creatAt"/>
<result column="updateAt" property="updateAt"/>
<result column="collectedAt" property="collectedAt"/>
</collection>
</resultMap>
<select id="list" resultMap="UserReferenceListMap">
SELECT date_format(t1.creatAt, '%Y-%m-%d') dat, t1.*,t2.userId,t3.name
SELECT date_format(t2.creatAt, '%Y-%m-%d') dat,t2.creatAt as collectedAt, t1.*,t2.userId
from reference as t1
left join userReference as t2 on t1.id = t2.referenceId
left JOIN user as t3 on t3.id = t2.userId
where t3.openid = #{openid}
and date_format(t1.creatAt, '%Y-%m-%d') in
left join (SELECT userReference.* from userReference left JOIN user on user.id = userReference.userId WHERE user.openid = #{openid} GROUP BY referenceId) as t2 on t1.id = t2.referenceId
where date_format(t2.creatAt, '%Y-%m-%d') in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">#{item}</foreach>
ORDER BY updateAt DESC,creatAt DESC
GROUP BY referenceId
ORDER BY dat DESC,collectedAt DESC,updateAt DESC,creatAt DESC
</select>
</mapper>

Loading…
Cancel
Save