From ae806ba34535e4ed22563c4fc0629599e2eebcad Mon Sep 17 00:00:00 2001 From: Yen Date: Mon, 24 Apr 2023 18:00:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/qs/serve/common/model/dto/R.java | 4 +- .../common/model/dto/TargetObjectDTO.java | 17 +++ .../BmsSupplierVisitAddressController.java | 6 +- .../goods/service/GoodsCategoryService.java | 2 - .../impl/GoodsCategoryServiceImpl.java | 20 +-- .../qs/serve/modules/tag/TagTypeConst.java | 14 ++ .../tag/controller/TagCategoryController.java | 15 ++- .../tag/controller/TagDataController.java | 119 ++++++++++++++++- .../tag/controller/TagInfoController.java | 27 ++-- .../serve/modules/tag/entity/TagCategory.java | 1 + .../qs/serve/modules/tag/entity/TagData.java | 21 ++- .../qs/serve/modules/tag/entity/TagInfo.java | 17 +-- .../modules/tag/entity/bo/TagInfoBindBo.java | 34 +++++ .../modules/tag/entity/bo/TagInfoBo.java | 29 +---- .../modules/tag/service/TagInfoService.java | 2 + .../service/impl/TagCategoryServiceImpl.java | 53 +++++++- .../third/PortalFormPushController.java | 18 ++- .../wx/controller/WxFormPushController.java | 2 +- .../controller/WxFormPushTypeController.java | 123 ++++++++++++++++++ .../controller/WxFormPushUserController.java | 120 +++++++++++++++++ .../serve/modules/wx/entity/WxFormPush.java | 20 ++- .../modules/wx/entity/WxFormPushType.java | 93 +++++++++++++ .../modules/wx/entity/WxFormPushUser.java | 40 ++++-- .../modules/wx/entity/bo/WxFormPushBo.java | 3 + .../wx/entity/bo/WxFormPushTypeBo.java | 44 +++++++ .../wx/entity/bo/WxFormPushUserBo.java | 91 +++++++++++++ .../wx/entity/so/WxFormPushTypeSo.java | 36 +++++ .../wx/entity/so/WxFormPushUserSo.java | 83 ++++++++++++ .../wx/mapper/WxFormPushTypeMapper.java | 14 ++ .../wx/service/WxFormPushTypeService.java | 14 ++ .../impl/WxFormPushTypeServiceImpl.java | 22 ++++ 31 files changed, 995 insertions(+), 109 deletions(-) create mode 100644 src/main/java/com/qs/serve/common/model/dto/TargetObjectDTO.java create mode 100644 src/main/java/com/qs/serve/modules/tag/TagTypeConst.java create mode 100644 src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBindBo.java create mode 100644 src/main/java/com/qs/serve/modules/wx/controller/WxFormPushTypeController.java create mode 100644 src/main/java/com/qs/serve/modules/wx/controller/WxFormPushUserController.java create mode 100644 src/main/java/com/qs/serve/modules/wx/entity/WxFormPushType.java create mode 100644 src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushTypeBo.java create mode 100644 src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushUserBo.java create mode 100644 src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushTypeSo.java create mode 100644 src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushUserSo.java create mode 100644 src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushTypeMapper.java create mode 100644 src/main/java/com/qs/serve/modules/wx/service/WxFormPushTypeService.java create mode 100644 src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushTypeServiceImpl.java diff --git a/src/main/java/com/qs/serve/common/model/dto/R.java b/src/main/java/com/qs/serve/common/model/dto/R.java index 3ade45e4..ccbc9a04 100644 --- a/src/main/java/com/qs/serve/common/model/dto/R.java +++ b/src/main/java/com/qs/serve/common/model/dto/R.java @@ -126,7 +126,9 @@ public class R implements Serializable { public static R error() { return new R<>(FAILED_STATUS,FAILED_TIPS,null); } - + public static R errorNotFound() { + return new R<>(FAILED_STATUS,NOT_FOUND_TIPS,null); + } public static R error2() { return new R<>(FAILED_STATUS,FAILED_TIPS_2,null); } diff --git a/src/main/java/com/qs/serve/common/model/dto/TargetObjectDTO.java b/src/main/java/com/qs/serve/common/model/dto/TargetObjectDTO.java new file mode 100644 index 00000000..f2ea3331 --- /dev/null +++ b/src/main/java/com/qs/serve/common/model/dto/TargetObjectDTO.java @@ -0,0 +1,17 @@ +package com.qs.serve.common.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author YenHex + * @since 2023/4/7 + */ +@Data +public class TargetObjectDTO { + String targetType; + String targetId; + + String targetCode; + String targetName; +} diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java index c632a1b7..e72f43df 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java @@ -114,8 +114,10 @@ public class BmsSupplierVisitAddressController { List list = bmsSupplierVisitAddressService.list(lqw); for (BmsSupplierVisitAddress visitAddress : list) { BmsSupplier supplier = bmsSupplierService.getById(visitAddress.getSupplierId()); - visitAddress.setSupplierName(supplier.getName()); - visitAddress.setSupplierCode(supplier.getCode()); + if(supplier!=null){ + visitAddress.setSupplierName(supplier.getName()); + visitAddress.setSupplierCode(supplier.getCode()); + } } return R.byPageHelperList(list); } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsCategoryService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsCategoryService.java index 74c88e42..f31686e8 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsCategoryService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsCategoryService.java @@ -17,8 +17,6 @@ public interface GoodsCategoryService extends IService { void modify(GoodsCategory category); - void add(GoodsCategory category); - void modifyLevel(GoodsCategoryLevelBo category); } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java index cbd7c7d8..e562ff6a 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryServiceImpl.java @@ -50,24 +50,26 @@ public class GoodsCategoryServiceImpl extends ServiceImpl updateById(@RequestBody @Valid TagCategory param){ + if(param.getId()==null){ + return R.errorNotFound(); + } tagCategoryService.modify(param); return R.ok(); } @@ -106,10 +108,10 @@ public class TagCategoryController { */ @PostMapping("/save") @SysLog(module = SystemModule.Tag, title = "标签分类", biz = BizType.INSERT) - @PreAuthorize("hasRole('tag:category:insert')") public R save(@RequestBody @Valid TagCategory param){ + param.setId(null); tagCategoryService.modify(param); - return R.ok(); + return R.ok(param); } /** @@ -119,15 +121,14 @@ public class TagCategoryController { */ @DeleteMapping("/deleteById/{ids}") @SysLog(module = SystemModule.Tag, title = "标签分类", biz = BizType.DELETE) - @PreAuthorize("hasRole('tag:category:delete')") public R deleteById(@PathVariable("ids") String ids){ - List idsLong = StringUtils.splitIdLong(ids); + List idString = StringUtils.splitIdString(ids); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.in(TagInfo::getTagCategroyId,idsLong); + lqw.in(TagInfo::getTagCategoryId,idString); if(tagInfoService.count(lqw)>0){ return R.error("含有标签的类目无法删除"); } - boolean result = tagCategoryService.removeByIds(idsLong); + boolean result = tagCategoryService.removeByIds(idString); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java b/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java index f51a28cd..0cea5b65 100644 --- a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java +++ b/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java @@ -4,14 +4,28 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.dto.TargetObjectDTO; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.bms.entity.BmsChannel; +import com.qs.serve.modules.bms.entity.BmsChannelPoint; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsChannelPointService; +import com.qs.serve.modules.bms.service.BmsChannelService; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tag.TagTypeConst; +import com.qs.serve.modules.tag.entity.TagData; import com.qs.serve.modules.tag.entity.TagInfo; +import com.qs.serve.modules.tag.entity.bo.TagInfoBindBo; import com.qs.serve.modules.tag.entity.bo.TagInfoBo; import com.qs.serve.modules.tag.entity.so.TagInfoSo; +import com.qs.serve.modules.tag.service.TagDataService; import com.qs.serve.modules.tag.service.TagInfoService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -19,7 +33,9 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 标签 标签信息 @@ -32,7 +48,12 @@ import java.util.List; @RequestMapping("tag/data") public class TagDataController { + private TagDataService tagDataService; private TagInfoService tagInfoService; + private BmsSupplierService bmsSupplierService; + private BmsChannelPointService bmsChannelPointService; + private BmsChannelService bmsChannelService; + private SysUserService sysUserService; /** @@ -40,13 +61,99 @@ public class TagDataController { * @param param * @return */ - //@PostMapping("/save") + @PostMapping("/bind") @SysLog(module = SystemModule.Tag, title = "标签信息", biz = BizType.INSERT) - @PreAuthorize("hasRole('tag:info:insert')") - public R save(@RequestBody @Valid TagInfoBo param){ - TagInfo entity = CopierUtil.copy(param,new TagInfo()); - boolean result = tagInfoService.save(entity); - return R.isTrue(result); + public R save(@RequestBody @Valid TagInfoBindBo param){ + Integer saveType = param.getSaveType(); + List tagInfoList = tagInfoService.listByIds(param.getTagIds()); + for (TargetObjectDTO objectDTO : param.getTargetList()) { + if(objectDTO.getTargetType().equals(TagTypeConst.Customer)){ + BmsSupplier bmsSupplier = bmsSupplierService.getById(objectDTO.getTargetId()); + objectDTO.setTargetCode(bmsSupplier.getCode()); + objectDTO.setTargetName(bmsSupplier.getName()); + }else if (objectDTO.getTargetType().equals(TagTypeConst.Channel)){ + BmsChannel channel = bmsChannelService.getById(objectDTO.getTargetId()); + objectDTO.setTargetCode(channel.getChannelCode()); + objectDTO.setTargetName(channel.getChannelName()); + }else if (objectDTO.getTargetType().equals(TagTypeConst.Point)){ + BmsChannelPoint point = bmsChannelPointService.getById(objectDTO.getTargetId()); + objectDTO.setTargetCode(point.getPointCode()); + objectDTO.setTargetName(point.getPointName()); + }else{ + SysUser sysUser = sysUserService.getById(objectDTO.getTargetId()); + objectDTO.setTargetCode(sysUser.getCode()); + objectDTO.setTargetName(sysUser.getName()); + } + } + if(saveType==null||saveType.equals(0)){ + List tagDataList = new ArrayList<>(); + for (TagInfo tagInfo : tagInfoList) { + for (TargetObjectDTO objectDTO : param.getTargetList()) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TagData::getTagId,tagInfo.getId()); + lqw.eq(TagData::getTargetType,objectDTO.getTargetType()); + lqw.eq(TagData::getTargetId,objectDTO.getTargetId()); + if(tagDataService.count(lqw)>0){ + continue; + } + TagData data = new TagData(); + data.setTagName(tagInfo.getTagName()); + data.setTagId(tagInfo.getId()); + data.setTargetType(objectDTO.getTargetType()); + data.setTargetId(objectDTO.getTargetId()); + data.setTargetCode(objectDTO.getTargetCode()); + data.setTargetName(objectDTO.getTargetName()); + tagDataList.add(data); + } + } + if(CollectionUtil.isNotEmpty(tagDataList)){ + tagDataService.saveBatch(tagDataList); + } + }else if (saveType.equals(1)){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.in(TagData::getTagId,param.getTagIds()); + tagDataService.remove(lqw); + List tagDataList = new ArrayList<>(); + for (TagInfo tagInfo : tagInfoList) { + for (TargetObjectDTO objectDTO : param.getTargetList()) { + TagData data = new TagData(); + data.setTagName(tagInfo.getTagName()); + data.setTagId(tagInfo.getId()); + data.setTargetType(objectDTO.getTargetType()); + data.setTargetId(objectDTO.getTargetId()); + data.setTargetCode(objectDTO.getTargetCode()); + data.setTargetName(objectDTO.getTargetName()); + tagDataList.add(data); + } + } + if(CollectionUtil.isNotEmpty(tagDataList)){ + tagDataService.saveBatch(tagDataList); + } + }else if (saveType.equals(2)){ + List tagDataList = new ArrayList<>(); + for (TargetObjectDTO objectDTO : param.getTargetList()) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TagData::getTargetId,objectDTO.getTargetId()); + lqw.eq(TagData::getTargetType,objectDTO.getTargetType()); + tagDataService.remove(lqw); + for (TagInfo tagInfo : tagInfoList) { + TagData data = new TagData(); + data.setTagName(tagInfo.getTagName()); + data.setTagId(tagInfo.getId()); + data.setTargetType(objectDTO.getTargetType()); + data.setTargetId(objectDTO.getTargetId()); + data.setTargetCode(objectDTO.getTargetCode()); + data.setTargetName(objectDTO.getTargetName()); + tagDataList.add(data); + } + } + if(CollectionUtil.isNotEmpty(tagDataList)){ + tagDataService.saveBatch(tagDataList); + } + }else { + return R.error2(); + } + return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java b/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java index 8f55dd54..25de6590 100644 --- a/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java +++ b/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java @@ -9,6 +9,8 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.tag.entity.TagCategory; +import com.qs.serve.modules.tag.service.TagCategoryService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -34,18 +36,17 @@ import java.util.List; public class TagInfoController { private TagInfoService tagInfoService; + private TagCategoryService tagCategoryService; /** * 列表 * @param param * @return */ - //@GetMapping("/list") - @PreAuthorize("hasRole('tag:info:query')") + @GetMapping("/list") public R> getList(TagInfoSo param){ TagInfo entity = CopierUtil.copy(param,new TagInfo()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); List list = tagInfoService.list(lqw); return R.ok(list); } @@ -55,8 +56,7 @@ public class TagInfoController { * @param param * @return */ - //@GetMapping("/page") - @PreAuthorize("hasRole('tag:info:query')") + @GetMapping("/page") public R> getPage(TagInfoSo param){ TagInfo entity = CopierUtil.copy(param,new TagInfo()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); @@ -70,26 +70,24 @@ public class TagInfoController { * @param id * @return */ - //@GetMapping("/getById/{id}") + @GetMapping("/getById/{id}") @SysLog(module = SystemModule.Tag, title = "标签信息", biz = BizType.QUERY) - @PreAuthorize("hasRole('tag:info:query')") public R getById(@PathVariable("id") String id){ TagInfo tagInfo = tagInfoService.getById(id); return R.ok(tagInfo); } - - /** * 更新 * @param param * @return */ - //@PostMapping("/updateById") + @PostMapping("/updateById") @SysLog(module = SystemModule.Tag, title = "标签信息", biz = BizType.UPDATE) - @PreAuthorize("hasRole('tag:info:update')") public R updateById(@RequestBody @Valid TagInfoBo param){ TagInfo entity = CopierUtil.copy(param,new TagInfo()); + TagCategory tagCategory = tagCategoryService.getById(param.getTagCategoryId()); + entity.setTagCategoryName(tagCategory.getCategoryName()); boolean result = tagInfoService.updateById(entity); return R.isTrue(result); } @@ -99,11 +97,13 @@ public class TagInfoController { * @param param * @return */ - //@PostMapping("/save") + @PostMapping("/save") @SysLog(module = SystemModule.Tag, title = "标签信息", biz = BizType.INSERT) - @PreAuthorize("hasRole('tag:info:insert')") public R save(@RequestBody @Valid TagInfoBo param){ + param.setId(null); TagInfo entity = CopierUtil.copy(param,new TagInfo()); + TagCategory tagCategory = tagCategoryService.getById(param.getTagCategoryId()); + entity.setTagCategoryName(tagCategory.getCategoryName()); boolean result = tagInfoService.save(entity); return R.isTrue(result); } @@ -115,7 +115,6 @@ public class TagInfoController { */ @DeleteMapping("/deleteById/{ids}") @SysLog(module = SystemModule.Tag, title = "标签信息", biz = BizType.DELETE) - @PreAuthorize("hasRole('tag:info:delete')") public R deleteById(@PathVariable("ids") String ids){ List idsLong = StringUtils.splitIdLong(ids); boolean result = tagInfoService.removeByIds(idsLong); diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java b/src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java index 5aad5a8d..bede0084 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java +++ b/src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java @@ -33,6 +33,7 @@ public class TagCategory implements Serializable { /** 标签名 */ @Length(max = 255,message = "标签名长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String categoryName; /** 上级标签类目id */ diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagData.java b/src/main/java/com/qs/serve/modules/tag/entity/TagData.java index c0c0feaa..77f0e751 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagData.java +++ b/src/main/java/com/qs/serve/modules/tag/entity/TagData.java @@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank; /** * 标签数据 实体类 * @author YenHex - * @since 2023-04-23 + * @since 2023-04-24 */ @Data @TableName("tag_data") @@ -40,10 +40,19 @@ public class TagData implements Serializable { /** 业务类型 */ @Length(max = 30,message = "业务类型长度不能超过30字") - private String businessType; + private String targetType; /** 目标id */ - private Long businessTargetId; + @Length(max = 100,message = "目标id长度不能超过100字") + private String targetId; + + /** 目标编码 */ + @Length(max = 255,message = "目标编码长度不能超过255字") + private String targetCode; + + /** 目标名称 */ + @Length(max = 255,message = "目标名称长度不能超过255字") + private String targetName; /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") @@ -85,8 +94,10 @@ public class TagData implements Serializable { data.setId(source.getId()); data.setTagName(source.getTagName()); data.setTagId(source.getTagId()); - data.setBusinessType(source.getBusinessType()); - data.setBusinessTargetId(source.getBusinessTargetId()); + data.setTargetType(source.getTargetType()); + data.setTargetId(source.getTargetId()); + data.setTargetCode(source.getTargetCode()); + data.setTargetName(source.getTargetName()); data.setRemark(source.getRemark()); data.setCreateTime(source.getCreateTime()); data.setUpdateTime(source.getUpdateTime()); diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java b/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java index fd425727..e45fd8ed 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java +++ b/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java @@ -36,7 +36,7 @@ public class TagInfo implements Serializable { private String tagName; /** 标签类目id */ - private Long tagCategroyId; + private Long tagCategoryId; /** 标签类目名称 */ @Length(max = 255,message = "标签类目名称长度不能超过255字") @@ -77,21 +77,6 @@ public class TagInfo implements Serializable { private Boolean delFlag; - public static TagInfo toNewObject(TagInfo source){ - TagInfo info = new TagInfo(); - info.setId(source.getId()); - info.setTagName(source.getTagName()); - info.setTagCategroyId(source.getTagCategroyId()); - info.setTagCategoryName(source.getTagCategoryName()); - info.setRemark(source.getRemark()); - info.setCreateTime(source.getCreateTime()); - info.setUpdateTime(source.getUpdateTime()); - info.setCreateBy(source.getCreateBy()); - info.setUpdateBy(source.getUpdateBy()); - info.setTenantId(source.getTenantId()); - info.setDelFlag(source.getDelFlag()); - return info; - } } diff --git a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBindBo.java b/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBindBo.java new file mode 100644 index 00000000..7cb428e3 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBindBo.java @@ -0,0 +1,34 @@ +package com.qs.serve.modules.tag.entity.bo; + +import com.qs.serve.common.model.dto.TargetObjectDTO; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.io.Serializable; +import java.util.List; + +/** + * 标签信息 Bo + * @author YenHex + * @since 2023-04-23 + */ +@Data +public class TagInfoBindBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 标签地址 */ + private List tagIds; + + /** 目标数据。目标类型:customer、point、channel、salesman */ + private List targetList; + + /** + * 0:添加不进行删除 + * 1:以`标签`为参照物,删除历史`目标数据`,并重新添加新的`目标数据` + * 2:以`目标数据`为参照物,删除历史`标签`,并重新添加新的`标签` + */ + private Integer saveType; + +} + diff --git a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java b/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java index 306f43f3..fba5acad 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java +++ b/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java @@ -33,39 +33,12 @@ public class TagInfoBo implements Serializable { private String tagName; /** 标签类目id */ - private Long tagCategroyId; - - /** 标签类目名称 */ - @Length(max = 255,message = "标签类目名称长度不能超过255字") - private String tagCategoryName; + private String tagCategoryId; /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** 更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** 创建人 */ - private String createBy; - - /** 更新人 */ - private String updateBy; - - /** 租户id */ - @JsonIgnore - @JsonProperty - private String tenantId; - - /** 删除标识 */ - @JsonIgnore - @JsonProperty - private Boolean delFlag; } diff --git a/src/main/java/com/qs/serve/modules/tag/service/TagInfoService.java b/src/main/java/com/qs/serve/modules/tag/service/TagInfoService.java index 1f626a94..a88cb06b 100644 --- a/src/main/java/com/qs/serve/modules/tag/service/TagInfoService.java +++ b/src/main/java/com/qs/serve/modules/tag/service/TagInfoService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.tag.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.tag.entity.TagInfo; +import com.qs.serve.modules.tag.entity.bo.TagInfoBo; /** * 标签信息 服务接口 @@ -10,5 +11,6 @@ import com.qs.serve.modules.tag.entity.TagInfo; */ public interface TagInfoService extends IService { + } diff --git a/src/main/java/com/qs/serve/modules/tag/service/impl/TagCategoryServiceImpl.java b/src/main/java/com/qs/serve/modules/tag/service/impl/TagCategoryServiceImpl.java index 758327f9..fb31cd2b 100644 --- a/src/main/java/com/qs/serve/modules/tag/service/impl/TagCategoryServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tag/service/impl/TagCategoryServiceImpl.java @@ -1,12 +1,19 @@ package com.qs.serve.modules.tag.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.util.Assert; +import com.qs.serve.modules.goods.entity.GoodsCategory; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.qs.serve.modules.tag.entity.TagCategory; import com.qs.serve.modules.tag.service.TagCategoryService; import com.qs.serve.modules.tag.mapper.TagCategoryMapper; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; /** * 标签分类 服务实现类 @@ -19,8 +26,52 @@ import com.qs.serve.modules.tag.mapper.TagCategoryMapper; public class TagCategoryServiceImpl extends ServiceImpl implements TagCategoryService { @Override + @Transactional(rollbackFor = Exception.class) public void modify(TagCategory category) { - String id = category.getId(); + TagCategory dbData = this.getById(category.getId()); + TagCategory parent = null; + if(category.getPid()!=null&&!category.getPid().equals("0")){ + parent = this.getById(category.getPid()); + if(parent==null){ + Assert.throwEx("父级标签不存在"); + } + } + if(category.getId()==null){ + this.save(category); + } + if(parent==null){ + category.setPid("0"); + category.setPathIds(category.getId()); + }else { + category.setPathIds(parent.getPathIds()+"_"+category.getId()); + } + if(dbData==null){ + this.saveOrUpdate(category); + }else { + this.updateById(category); + boolean changePid = !dbData.getPid().equals(category.getPid()); + if(changePid){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.and(v1->{ + v1.eq(TagCategory::getPathIds,dbData.getPathIds()) + .or().likeRight(TagCategory::getPathIds,dbData.getPathIds()+"_"); + }); + List childList = this.list(lqw); + List categoryList = childList.stream().map(obj->{ + TagCategory par = new TagCategory(); + par.setId(obj.getId()); + par.setPathIds(obj.getPathIds().replace(dbData.getPathIds(),category.getPathIds())); + return par; + }).collect(Collectors.toList()); + this.updateBatchById(categoryList); + }else { + //不进行更新 + category.setPathIds(null); + category.setPid(null); + } + this.updateById(category); + + } } diff --git a/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java b/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java index 90b6d087..db013273 100644 --- a/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java +++ b/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java @@ -9,21 +9,19 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.wx.entity.WxFormPushType; import com.qs.serve.modules.wx.entity.WxFormPushUser; import com.qs.serve.modules.wx.entity.WxUser; import com.qs.serve.modules.wx.entity.bo.WxFormPushBo; import com.qs.serve.modules.wx.entity.dto.sms.WxSmsNewForm; import com.qs.serve.modules.wx.entity.vo.WxPushResultVo; -import com.qs.serve.modules.wx.service.WxFormPushUserService; -import com.qs.serve.modules.wx.service.WxPushService; -import com.qs.serve.modules.wx.service.WxUserService; +import com.qs.serve.modules.wx.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import com.qs.serve.modules.wx.entity.WxFormPush; -import com.qs.serve.modules.wx.service.WxFormPushService; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @@ -47,6 +45,7 @@ public class PortalFormPushController { private WxFormPushUserService wxFormPushUserService; private WxUserService wxUserService; private WxPushService wxPushService; + private WxFormPushTypeService wxFormPushTypeService; /** * 新增 @@ -58,6 +57,12 @@ public class PortalFormPushController { ThirdTokenUtil.checkToken(request); WxFormPush entity = CopierUtil.copy(param,new WxFormPush()); wxFormPushService.save(entity); + WxFormPushType pushType = null; + if(param.getTypeCode()!=null){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(WxFormPushType::getCode,param.getTypeCode()); + pushType = wxFormPushTypeService.getOne(lqw,false); + } List userCodes = param.getUserCodes().stream().distinct().collect(Collectors.toList()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(WxUser::getAppId,param.getAppId()); @@ -81,6 +86,11 @@ public class PortalFormPushController { pushUser.setUserId(wxUser.getSysUserId()); pushUser.setUserCode(wxUser.getSysUserCode()); pushUser.setUserName(wxUser.getEmpName()); + if(pushType!=null){ + pushUser.setTypeId(pushType.getId()); + pushUser.setTypeCode(pushType.getCode()); + pushUser.setTypeName(pushType.getTitle()); + } pushUserList.add(pushUser); } wxFormPushUserService.saveBatch(pushUserList); diff --git a/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java index 4ad52b06..8734ad8f 100644 --- a/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java +++ b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java @@ -108,7 +108,7 @@ public class WxFormPushController { * @param ids * @return */ - @DeleteMapping("/deleteById/{ids}") + //@DeleteMapping("/deleteById/{ids}") @SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.DELETE) public R deleteById(@PathVariable("ids") String ids){ List idsLong = StringUtils.splitIdLong(ids); diff --git a/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushTypeController.java b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushTypeController.java new file mode 100644 index 00000000..76141f72 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushTypeController.java @@ -0,0 +1,123 @@ +package com.qs.serve.modules.wx.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.wx.entity.WxFormPush; +import com.qs.serve.modules.wx.service.WxFormPushService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.wx.entity.so.WxFormPushTypeSo; +import com.qs.serve.modules.wx.entity.bo.WxFormPushTypeBo; +import com.qs.serve.modules.wx.entity.WxFormPushType; +import com.qs.serve.modules.wx.service.WxFormPushTypeService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 微信 表单类型 + * @author YenHex + * @since 2023-04-24 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("wx/formPushType") +public class WxFormPushTypeController { + + private WxFormPushTypeService wxFormPushTypeService; + private WxFormPushService wxFormPushService; + + + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/list") + public R> getList(WxFormPushTypeSo param){ + WxFormPushType entity = CopierUtil.copy(param,new WxFormPushType()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + List list = wxFormPushTypeService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(WxFormPushTypeSo param){ + WxFormPushType entity = CopierUtil.copy(param,new WxFormPushType()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = wxFormPushTypeService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Verification, title = "表单类型", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + WxFormPushType wxFormPushType = wxFormPushTypeService.getById(id); + return R.ok(wxFormPushType); + } + + + + /** + * 更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.Verification, title = "表单类型", biz = BizType.UPDATE) + public R updateById(@RequestBody @Valid WxFormPushTypeBo param){ + WxFormPushType entity = CopierUtil.copy(param,new WxFormPushType()); + boolean result = wxFormPushTypeService.updateById(entity); + return R.isTrue(result); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.Verification, title = "表单类型", biz = BizType.INSERT) + public R save(@RequestBody @Valid WxFormPushTypeBo param){ + WxFormPushType entity = CopierUtil.copy(param,new WxFormPushType()); + boolean result = wxFormPushTypeService.save(entity); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.Verification, title = "表单类型", biz = BizType.DELETE) + public R deleteById(@PathVariable("ids") String ids){ + List idsString = StringUtils.splitIdString(ids); + boolean result = wxFormPushTypeService.removeByIds(idsString); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushUserController.java b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushUserController.java new file mode 100644 index 00000000..14aef447 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushUserController.java @@ -0,0 +1,120 @@ +package com.qs.serve.modules.wx.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.wx.entity.so.WxFormPushUserSo; +import com.qs.serve.modules.wx.entity.bo.WxFormPushUserBo; +import com.qs.serve.modules.wx.entity.WxFormPushUser; +import com.qs.serve.modules.wx.service.WxFormPushUserService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 微信 表单推送用户 + * @author YenHex + * @since 2023-04-24 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("wx/formPushUser") +public class WxFormPushUserController { + + private WxFormPushUserService wxFormPushUserService; + + /** + * 列表 + * @param param + * @return + */ + //@GetMapping("/list") + public R> getList(WxFormPushUserSo param){ + WxFormPushUser entity = CopierUtil.copy(param,new WxFormPushUser()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = wxFormPushUserService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(WxFormPushUserSo param){ + WxFormPushUser entity = CopierUtil.copy(param,new WxFormPushUser()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = wxFormPushUserService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + //@GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Verification, title = "表单推送用户", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + WxFormPushUser wxFormPushUser = wxFormPushUserService.getById(id); + return R.ok(wxFormPushUser); + } + + + + /** + * 更新 + * @param param + * @return + */ + //@PostMapping("/updateById") + @SysLog(module = SystemModule.Verification, title = "表单推送用户", biz = BizType.UPDATE) + public R updateById(@RequestBody @Valid WxFormPushUserBo param){ + WxFormPushUser entity = CopierUtil.copy(param,new WxFormPushUser()); + boolean result = wxFormPushUserService.updateById(entity); + return R.isTrue(result); + } + + /** + * 新增 + * @param param + * @return + */ + //@PostMapping("/save") + @SysLog(module = SystemModule.Verification, title = "表单推送用户", biz = BizType.INSERT) + public R save(@RequestBody @Valid WxFormPushUserBo param){ + WxFormPushUser entity = CopierUtil.copy(param,new WxFormPushUser()); + boolean result = wxFormPushUserService.save(entity); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.Verification, title = "表单推送用户", biz = BizType.DELETE) + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = wxFormPushUserService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java b/src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java index 9c45c048..82f83a03 100644 --- a/src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java +++ b/src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java @@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank; /** * 表单推送 实体类 * @author YenHex - * @since 2023-04-19 + * @since 2023-04-24 */ @Data @TableName("wx_form_push") @@ -31,8 +31,23 @@ public class WxFormPush implements Serializable { @TableId(type = IdType.ASSIGN_UUID) private String id; + /** 分类id */ + @Length(max = 36,message = "分类id长度不能超过36字") + private String typeId; + + /** 分类编码 */ + @Length(max = 255,message = "分类编码长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) + private String typeCode; + + /** 分类 */ + @Length(max = 255,message = "分类长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) + private String typeName; + /** 标题 */ @Length(max = 255,message = "标题长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String title; /** 表单内容 */ @@ -79,6 +94,9 @@ public class WxFormPush implements Serializable { public static WxFormPush toNewObject(WxFormPush source){ WxFormPush formPush = new WxFormPush(); formPush.setId(source.getId()); + formPush.setTypeId(source.getTypeId()); + formPush.setTypeCode(source.getTypeCode()); + formPush.setTypeName(source.getTypeName()); formPush.setTitle(source.getTitle()); formPush.setFormContext(source.getFormContext()); formPush.setFormContextValue(source.getFormContextValue()); diff --git a/src/main/java/com/qs/serve/modules/wx/entity/WxFormPushType.java b/src/main/java/com/qs/serve/modules/wx/entity/WxFormPushType.java new file mode 100644 index 00000000..45aadcd2 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/entity/WxFormPushType.java @@ -0,0 +1,93 @@ +package com.qs.serve.modules.wx.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 表单类型 实体类 + * @author YenHex + * @since 2023-04-24 + */ +@Data +@TableName("wx_form_push_type") +public class WxFormPushType implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** 编码 */ + @Length(max = 255,message = "编码长度不能超过255字") + private String code; + + /** 标题 */ + @Length(max = 255,message = "标题长度不能超过255字") + private String title; + + /** 备注 */ + @Length(max = 600,message = "备注长度不能超过600字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + + public static WxFormPushType toNewObject(WxFormPushType source){ + WxFormPushType formPushType = new WxFormPushType(); + formPushType.setId(source.getId()); + formPushType.setCode(source.getCode()); + formPushType.setTitle(source.getTitle()); + formPushType.setRemark(source.getRemark()); + formPushType.setCreateTime(source.getCreateTime()); + formPushType.setUpdateTime(source.getUpdateTime()); + formPushType.setTenantId(source.getTenantId()); + formPushType.setCreateBy(source.getCreateBy()); + formPushType.setUpdateBy(source.getUpdateBy()); + formPushType.setDelFlag(source.getDelFlag()); + return formPushType; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/entity/WxFormPushUser.java b/src/main/java/com/qs/serve/modules/wx/entity/WxFormPushUser.java index 8e18e156..30ee0535 100644 --- a/src/main/java/com/qs/serve/modules/wx/entity/WxFormPushUser.java +++ b/src/main/java/com/qs/serve/modules/wx/entity/WxFormPushUser.java @@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank; /** * 表单推送用户 实体类 * @author YenHex - * @since 2023-04-19 + * @since 2023-04-24 */ @Data @TableName("wx_form_push_user") @@ -31,21 +31,27 @@ public class WxFormPushUser implements Serializable { @TableId(type = IdType.AUTO) private Long id; - /** */ + /** 推送id */ + @Length(max = 36,message = "推送id长度不能超过36字") private String formPushId; - /** */ - @Length(max = 64,message = "长度不能超过64字") + /** 用户id */ + @Length(max = 64,message = "用户id长度不能超过64字") private String userId; - /** */ - @Length(max = 255,message = "长度不能超过255字") + /** 用户编码 */ + @Length(max = 255,message = "用户编码长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String userCode; - /** */ - @Length(max = 255,message = "长度不能超过255字") + /** 用户名称 */ + @Length(max = 255,message = "用户名称长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String userName; + /** 是否已读 */ + private Integer readFlag; + /** 备注 */ @Length(max = 600,message = "备注长度不能超过600字") private String remark; @@ -80,6 +86,20 @@ public class WxFormPushUser implements Serializable { @JsonProperty private String delFlag; + /** 分类id */ + @Length(max = 36,message = "分类id长度不能超过36字") + private String typeId; + + /** 分类编码 */ + @Length(max = 255,message = "分类编码长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) + private String typeCode; + + /** 分类 */ + @Length(max = 255,message = "分类长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) + private String typeName; + public static WxFormPushUser toNewObject(WxFormPushUser source){ WxFormPushUser formPushUser = new WxFormPushUser(); @@ -88,6 +108,7 @@ public class WxFormPushUser implements Serializable { formPushUser.setUserId(source.getUserId()); formPushUser.setUserCode(source.getUserCode()); formPushUser.setUserName(source.getUserName()); + formPushUser.setReadFlag(source.getReadFlag()); formPushUser.setRemark(source.getRemark()); formPushUser.setCreateTime(source.getCreateTime()); formPushUser.setUpdateTime(source.getUpdateTime()); @@ -95,6 +116,9 @@ public class WxFormPushUser implements Serializable { formPushUser.setCreateBy(source.getCreateBy()); formPushUser.setUpdateBy(source.getUpdateBy()); formPushUser.setDelFlag(source.getDelFlag()); + formPushUser.setTypeId(source.getTypeId()); + formPushUser.setTypeCode(source.getTypeCode()); + formPushUser.setTypeName(source.getTypeName()); return formPushUser; } diff --git a/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushBo.java b/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushBo.java index e9ebc49d..284e3d08 100644 --- a/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushBo.java +++ b/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushBo.java @@ -23,6 +23,9 @@ public class WxFormPushBo implements Serializable { @NotNull(message = "appId不能为空") private String appId; + /** 推送分类编码 */ + private String typeCode; + /** 标题 */ @NotNull(message = "标题不能为空") private String title; diff --git a/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushTypeBo.java b/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushTypeBo.java new file mode 100644 index 00000000..19696c0d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushTypeBo.java @@ -0,0 +1,44 @@ +package com.qs.serve.modules.wx.entity.bo; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 表单类型 Bo + * @author YenHex + * @since 2023-04-24 + */ +@Data +public class WxFormPushTypeBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private String id; + + /** 编码 */ + @Length(max = 255,message = "编码长度不能超过255字") + private String code; + + /** 标题 */ + @Length(max = 255,message = "标题长度不能超过255字") + private String title; + + /** 备注 */ + @Length(max = 600,message = "备注长度不能超过600字") + private String remark; + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushUserBo.java b/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushUserBo.java new file mode 100644 index 00000000..dd73c24d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushUserBo.java @@ -0,0 +1,91 @@ +package com.qs.serve.modules.wx.entity.bo; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 表单推送用户 Bo + * @author YenHex + * @since 2023-04-24 + */ +@Data +public class WxFormPushUserBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 推送id */ + @Length(max = 36,message = "推送id长度不能超过36字") + private String formPushId; + + /** 用户id */ + @Length(max = 64,message = "用户id长度不能超过64字") + private String userId; + + /** 用户编码 */ + @Length(max = 255,message = "用户编码长度不能超过255字") + private String userCode; + + /** 用户名称 */ + @Length(max = 255,message = "用户名称长度不能超过255字") + private String userName; + + /** 是否已读 */ + private Integer readFlag; + + /** 备注 */ + @Length(max = 600,message = "备注长度不能超过600字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + private String createBy; + + /** 更新人 */ + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 分类id */ + @Length(max = 36,message = "分类id长度不能超过36字") + private String typeId; + + /** 分类编码 */ + @Length(max = 255,message = "分类编码长度不能超过255字") + private String typeCode; + + /** 分类 */ + @Length(max = 255,message = "分类长度不能超过255字") + private String typeName; + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushTypeSo.java b/src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushTypeSo.java new file mode 100644 index 00000000..1b27d83e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushTypeSo.java @@ -0,0 +1,36 @@ +package com.qs.serve.modules.wx.entity.so; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 表单类型 查询参数 + * @author YenHex + * @since 2023-04-24 + */ +@Data +public class WxFormPushTypeSo implements Serializable { + + private static final long serialVersionUID = 1L; + + + /** 编码 */ + private String code; + + /** 标题 */ + private String title; + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushUserSo.java b/src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushUserSo.java new file mode 100644 index 00000000..1268e54e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushUserSo.java @@ -0,0 +1,83 @@ +package com.qs.serve.modules.wx.entity.so; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 表单推送用户 查询参数 + * @author YenHex + * @since 2023-04-24 + */ +@Data +public class WxFormPushUserSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 推送id */ + private String formPushId; + + /** 用户id */ + private String userId; + + /** 用户编码 */ + private String userCode; + + /** 用户名称 */ + private String userName; + + /** 是否已读 */ + private Integer readFlag; + + /** 备注 */ + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + private String createBy; + + /** 更新人 */ + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 分类id */ + private String typeId; + + /** 分类编码 */ + private String typeCode; + + /** 分类 */ + private String typeName; + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushTypeMapper.java b/src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushTypeMapper.java new file mode 100644 index 00000000..db2e12ab --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushTypeMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.wx.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.wx.entity.WxFormPushType; + +/** + * 表单类型 Mapper + * @author YenHex + * @date 2023-04-24 + */ +public interface WxFormPushTypeMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/service/WxFormPushTypeService.java b/src/main/java/com/qs/serve/modules/wx/service/WxFormPushTypeService.java new file mode 100644 index 00000000..f8a31d6c --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/service/WxFormPushTypeService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.wx.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.wx.entity.WxFormPushType; + +/** + * 表单类型 服务接口 + * @author YenHex + * @date 2023-04-24 + */ +public interface WxFormPushTypeService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushTypeServiceImpl.java b/src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushTypeServiceImpl.java new file mode 100644 index 00000000..d4f8ebd5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushTypeServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.wx.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.wx.entity.WxFormPushType; +import com.qs.serve.modules.wx.service.WxFormPushTypeService; +import com.qs.serve.modules.wx.mapper.WxFormPushTypeMapper; + +/** + * 表单类型 服务实现类 + * @author YenHex + * @since 2023-04-24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class WxFormPushTypeServiceImpl extends ServiceImpl implements WxFormPushTypeService { + +} +