From 28508a9ee16e4ea83d4b6c5d005e03e20432e8ed Mon Sep 17 00:00:00 2001 From: "382696293@qq.com" <382696293@qq.com> Date: Wed, 20 Dec 2023 09:47:03 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=80=BB=E6=95=B0=EF=BC=8C=E5=B7=B2=E6=B3=A8=E5=86=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=EF=BC=8C=E5=B7=B2=E7=BB=91=E5=AE=9A=E4=BB=AA=E5=99=A8?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=95=B0=202=E3=80=81=E6=89=B9=E9=87=8F/?= =?UTF-8?q?=E5=85=A8=E9=87=8F=20=E6=B7=BB=E5=8A=A0=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/domain/entity/WxUserTag.java | 118 ++++++++++++++++++ .../core/domain/req/WxUserMemberVm.java | 89 ++++++++----- .../common/core/enums/TagTypeStatus.java | 26 ++++ .../core/mapper/WxUserMemberMapper.java | 7 ++ .../common/core/mapper/WxUserTagMapper.java | 67 ++++++++++ .../resources/mapper/WxUserMemberMapper.xml | 36 +++++- .../main/resources/mapper/WxUserTagMapper.xml | 115 +++++++++++++++++ .../src/main/resources/bootstrap.yml | 4 - .../controller/WxUserMemberController.java | 52 ++++++-- .../system/service/IWxUserMemberService.java | 4 + .../system/service/IWxUserTagService.java | 61 +++++++++ .../service/impl/WxUserMemberServiceImpl.java | 78 +++++++++--- .../service/impl/WxUserTagServiceImpl.java | 90 +++++++++++++ flossom-ui/src/views/system/member/index.vue | 31 ++--- 14 files changed, 704 insertions(+), 74 deletions(-) create mode 100644 flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserTag.java create mode 100644 flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/TagTypeStatus.java create mode 100644 flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java create mode 100644 flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml create mode 100644 flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserTagService.java create mode 100644 flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserTagServiceImpl.java diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserTag.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserTag.java new file mode 100644 index 0000000..d2cc666 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserTag.java @@ -0,0 +1,118 @@ +package com.flossom.common.core.domain.entity; + +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 微信用户标签关联对象 wx_user_tag + * + * @author flossom + * @date 2023-12-19 + */ +public class WxUserTag extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 用户id + */ + private Long userId; + + /** + * 标签名称 + */ + private String tagName; + + /** + * 标签id + */ + private Long tagId; + + /** + * 标签类型:1企业微信标签 2小程序标签 + */ + private Integer type; + + /** + * 状态(0正常 1停用) + */ + private Long status; + + public WxUserTag(Long id, Long userId, String tagName, Long tagId, Integer type, Long status) { + this.id = id; + this.userId = userId; + this.tagName = tagName; + this.tagId = tagId; + this.type = type; + this.status = status; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getUserId() { + return userId; + } + + public void setTagName(String tagName) { + this.tagName = tagName; + } + + public String getTagName() { + return tagName; + } + + public void setTagId(Long tagId) { + this.tagId = tagId; + } + + public Long getTagId() { + return tagId; + } + + public void setType(Integer type) { + this.type = type; + } + + public Integer getType() { + return type; + } + + public void setStatus(Long status) { + this.status = status; + } + + public Long getStatus() { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("userId", getUserId()) + .append("tagName", getTagName()) + .append("tagId", getTagId()) + .append("type", getType()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java index 5f59a09..25978dc 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserMemberVm.java @@ -1,10 +1,7 @@ package com.flossom.common.core.domain.req; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.flossom.common.core.annotation.Excel; import com.flossom.common.core.web.domain.BaseEntity; -import java.math.BigDecimal; import java.util.Date; /** @@ -13,24 +10,22 @@ import java.util.Date; * @author flossom * @date 2023-12-08 */ -public class WxUserMemberVm { +public class WxUserMemberVm extends BaseEntity { /** - * 用户编码 + * 用户编码 (前端会传多个,`,`号隔开) */ - private Long id; + private String id; /** * 会员昵称 */ - @Excel(name = "会员昵称") private String nickname; /** * 积分起始 */ - @Excel(name = "积分") private Integer creditStart; /** @@ -41,56 +36,76 @@ public class WxUserMemberVm { /** * 用户类型:0游客 1会员 */ - @Excel(name = "用户类型:0游客 1会员") private Integer userType; /** * 手机(多个手机号码,‘,’逗号隔开,号码数不足时,模糊匹配) */ - @Excel(name = "手机") private String mobile; /** * 省id */ - @Excel(name = "省id") private String provinceId; /** * 市id */ - @Excel(name = "市id") private String cityId; /** * 区id */ - @Excel(name = "区id") private String areaId; /** * 生日 */ - @JsonFormat(pattern = "yyyy-MM-dd") private Date birthday; /** * 用户注册起始时间 */ - private Date createTimeStart; + private Date beginTime; /** * 用户注册结束时间 */ - private Date createTimeEnd; + private Date endTime; + + /** + * 设备数量起始值 + */ + private Integer deviceNumStart; + + /** + * 设置数量结束值 + */ + private Integer deviceNumEnd; + + /** + * 仪器绑定标签 + */ + + /** + * 购买渠道 + */ + + /** + * 企微标签 + */ + + /** + * 小程序标签 + */ public WxUserMemberVm() { } - public WxUserMemberVm(Long id, String nickname, Integer creditStart, Integer creditEnd, Integer userType, String mobile, String provinceId, String cityId, String areaId, Date birthday, Date createTimeStart, Date createTimeEnd) { + public WxUserMemberVm(String id, String nickname, Integer creditStart, Integer creditEnd, Integer userType, String mobile, String provinceId, String cityId, String areaId, Date birthday, Date beginTime, Date endTime) { this.id = id; this.nickname = nickname; this.creditStart = creditStart; @@ -101,15 +116,15 @@ public class WxUserMemberVm { this.cityId = cityId; this.areaId = areaId; this.birthday = birthday; - this.createTimeStart = createTimeStart; - this.createTimeEnd = createTimeEnd; + this.beginTime = beginTime; + this.endTime = endTime; } - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } @@ -185,19 +200,35 @@ public class WxUserMemberVm { this.birthday = birthday; } - public Date getCreateTimeStart() { - return createTimeStart; + public Date getBeginTime() { + return beginTime; + } + + public void setBeginTime(Date beginTime) { + this.beginTime = beginTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Integer getDeviceNumStart() { + return deviceNumStart; } - public void setCreateTimeStart(Date createTimeStart) { - this.createTimeStart = createTimeStart; + public void setDeviceNumStart(Integer deviceNumStart) { + this.deviceNumStart = deviceNumStart; } - public Date getCreateTimeEnd() { - return createTimeEnd; + public Integer getDeviceNumEnd() { + return deviceNumEnd; } - public void setCreateTimeEnd(Date createTimeEnd) { - this.createTimeEnd = createTimeEnd; + public void setDeviceNumEnd(Integer deviceNumEnd) { + this.deviceNumEnd = deviceNumEnd; } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/TagTypeStatus.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/TagTypeStatus.java new file mode 100644 index 0000000..85a19dc --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/TagTypeStatus.java @@ -0,0 +1,26 @@ +package com.flossom.common.core.enums; + +/** + * 标签类型 + * + * @author flossom + */ +public enum TagTypeStatus { + ENTERPRISE_WECHAT(1, "正常"), MINI_PROGRAM(2, "停用"); + + private final Integer code; + private final String info; + + TagTypeStatus(Integer code, String info) { + this.code = code; + this.info = info; + } + + public Integer getCode() { + return code; + } + + public String getInfo() { + return info; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserMemberMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserMemberMapper.java index 2e31f51..e9df72b 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserMemberMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserMemberMapper.java @@ -75,4 +75,11 @@ public interface WxUserMemberMapper { void upgradeMember(@Param("phoneNumber") String phoneNumber, @Param("id") Integer id); List selectWxUserMemberListByVm(WxUserMemberVm wxUserMemberVm); + + List selectUserCount(); + + List selectWxUserMemberIdList(); + + + } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java new file mode 100644 index 0000000..16fc97f --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java @@ -0,0 +1,67 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.WxUserTag; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + * 微信用户标签关联Mapper接口 + * + * @author flossom + * @date 2023-12-19 + */ +public interface WxUserTagMapper { + /** + * 查询微信用户标签关联 + * + * @param id 微信用户标签关联主键 + * @return 微信用户标签关联 + */ + public WxUserTag selectWxUserTagById(Long id); + + /** + * 查询微信用户标签关联列表 + * + * @param wxUserTag 微信用户标签关联 + * @return 微信用户标签关联集合 + */ + public List selectWxUserTagList(WxUserTag wxUserTag); + + /** + * 新增微信用户标签关联 + * + * @param wxUserTag 微信用户标签关联 + * @return 结果 + */ + public int insertWxUserTag(WxUserTag wxUserTag); + + /** + * 修改微信用户标签关联 + * + * @param wxUserTag 微信用户标签关联 + * @return 结果 + */ + public int updateWxUserTag(WxUserTag wxUserTag); + + /** + * 删除微信用户标签关联 + * + * @param id 微信用户标签关联主键 + * @return 结果 + */ + public int deleteWxUserTagById(Long id); + + /** + * 批量删除微信用户标签关联 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWxUserTagByIds(Long[] ids); + + List selectWxUserTagByTagId(@Param("tagId") Integer tagId, @Param("type") Integer type); + + void insertBatch(@Param("list") List list); +} diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml index 7880fa1..6d23eb3 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml @@ -84,15 +84,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -224,4 +242,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" INSERT INTO `wx_user_member` (login_time, create_time) VALUES(sysdate(), sysdate()); + + + + + + \ No newline at end of file diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml new file mode 100644 index 0000000..cb54a00 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + select id, user_id, tag_name, tag_id, type, status, create_by, create_time, update_by, update_time from wx_user_tag + + + + + + + + + + insert into wx_user_tag + + user_id, + tag_name, + tag_id, + type, + status, + create_by, + create_time, + update_by, + update_time, + + + #{userId}, + #{tagName}, + #{tagId}, + #{type}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + insert into wx_user_tag (user_id, tag_name, tag_id, `type`, create_time) + values + + ( + #{userTag.userId}, + #{userTag.tagName}, + #{userTag.tagId}, + #{userTag.type}, + #{userTag.createTime} + ) + + + + + update wx_user_tag + + user_id = #{userId}, + tag_name = #{tagName}, + tag_id = #{tagId}, + type = #{type}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from wx_user_tag where id = #{id} + + + + delete from wx_user_tag where id in + + #{id} + + + \ No newline at end of file diff --git a/flossom-modules/flossom-mini-program/src/main/resources/bootstrap.yml b/flossom-modules/flossom-mini-program/src/main/resources/bootstrap.yml index 44b6641..8454283 100644 --- a/flossom-modules/flossom-mini-program/src/main/resources/bootstrap.yml +++ b/flossom-modules/flossom-mini-program/src/main/resources/bootstrap.yml @@ -23,7 +23,3 @@ spring: # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} -logging: - level: - org.springframework.jdbc.core.JdbcTemplate: DEBUG # 这里使用了Spring Boot默认的数据源连接池,若使用其他连接池则根据对应的类名进行调整 - com.flossom.miniProgram.mapper: TRACE # 将com.example.mapper替换为自定义Mapper接口的全限定名 diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java index 42d27bb..6240be0 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java @@ -2,8 +2,10 @@ package com.flossom.system.controller; import javax.servlet.http.HttpServletResponse; +import com.flossom.common.core.domain.R; import com.flossom.common.core.domain.entity.WxUserMember; import com.flossom.common.core.domain.req.WxUserMemberVm; +import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.utils.poi.ExcelUtil; import com.flossom.common.core.web.controller.BaseController; import com.flossom.common.core.web.domain.AjaxResult; @@ -13,16 +15,10 @@ import com.flossom.common.log.enums.BusinessType; import com.flossom.common.security.annotation.RequiresPermissions; import com.flossom.system.service.IWxUserMemberService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; /** * 用户Controller @@ -97,4 +93,44 @@ public class WxUserMemberController extends BaseController { public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(wxUserMemberService.deleteWxUserMemberByIds(ids)); } + + /** + * 查询用户总数,已注册用户,已绑定仪器用户数 + */ + @GetMapping("/selectUserCount") + public R selectUserCount() { + return R.ok(wxUserMemberService.selectUserCount()); + } + + /** + * 批量 添加小程序标签 + */ + @PostMapping("/batchAddMiniProgramTag") + public R batchAddMiniProgramTag(@RequestParam("tagIdList") List tagIdList, + @RequestParam(value = "userIdList") List userIdList) { + if (tagIdList == null || tagIdList.size() == 0) { + logger.error("参数有误"); + throw new ServiceException("参数有误"); + } + wxUserMemberService.batchAddMiniProgramTag(tagIdList, userIdList); + return R.ok(); + } + + /** + * 全量添加小程序标签 + */ + @PostMapping("/allAddMiniProgramTag") + public R allAddMiniProgramTag(@RequestParam("tagIdList") List tagIdList, WxUserMemberVm wxUserMemberVm) { + if (tagIdList == null || tagIdList.size() == 0) { + logger.error("参数有误"); + throw new ServiceException("参数有误"); + } + List list = wxUserMemberService.selectWxUserMemberList(wxUserMemberVm); + if (list != null && list.size() > 0) { + List collect = list.stream().map(wxUserMember -> wxUserMember.getId().intValue()).collect(Collectors.toList()); + wxUserMemberService.batchAddMiniProgramTag(tagIdList, collect); + } + return R.ok(); + } + } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java index 81368d4..4ad63bc 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java @@ -69,4 +69,8 @@ public interface IWxUserMemberService * @return 结果 */ public int deleteWxUserMemberById(Long id); + + List selectUserCount(); + + void batchAddMiniProgramTag(List tagId, List userIds); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserTagService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserTagService.java new file mode 100644 index 0000000..48c83ff --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserTagService.java @@ -0,0 +1,61 @@ +package com.flossom.system.service; + +import com.flossom.common.core.domain.entity.WxUserTag; + +import java.util.List; + +/** + * 微信用户标签关联Service接口 + * + * @author flossom + * @date 2023-12-19 + */ +public interface IWxUserTagService { + /** + * 查询微信用户标签关联 + * + * @param id 微信用户标签关联主键 + * @return 微信用户标签关联 + */ + public WxUserTag selectWxUserTagById(Long id); + + /** + * 查询微信用户标签关联列表 + * + * @param wxUserTag 微信用户标签关联 + * @return 微信用户标签关联集合 + */ + public List selectWxUserTagList(WxUserTag wxUserTag); + + /** + * 新增微信用户标签关联 + * + * @param wxUserTag 微信用户标签关联 + * @return 结果 + */ + public int insertWxUserTag(WxUserTag wxUserTag); + + /** + * 修改微信用户标签关联 + * + * @param wxUserTag 微信用户标签关联 + * @return 结果 + */ + public int updateWxUserTag(WxUserTag wxUserTag); + + /** + * 批量删除微信用户标签关联 + * + * @param ids 需要删除的微信用户标签关联主键集合 + * @return 结果 + */ + public int deleteWxUserTagByIds(Long[] ids); + + /** + * 删除微信用户标签关联信息 + * + * @param id 微信用户标签关联主键 + * @return 结果 + */ + public int deleteWxUserTagById(Long id); +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java index 1be52d5..f7d0979 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java @@ -1,10 +1,17 @@ package com.flossom.system.service.impl; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import com.flossom.common.core.domain.entity.SysTag; import com.flossom.common.core.domain.entity.WxUserMember; +import com.flossom.common.core.domain.entity.WxUserTag; import com.flossom.common.core.domain.req.WxUserMemberVm; +import com.flossom.common.core.enums.TagTypeStatus; +import com.flossom.common.core.mapper.SysTagMapper; import com.flossom.common.core.mapper.WxUserMemberMapper; +import com.flossom.common.core.mapper.WxUserTagMapper; import com.flossom.common.core.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,11 +24,16 @@ import com.flossom.system.service.IWxUserMemberService; * @date 2023-12-08 */ @Service -public class WxUserMemberServiceImpl implements IWxUserMemberService -{ +public class WxUserMemberServiceImpl implements IWxUserMemberService { @Autowired private WxUserMemberMapper wxUserMemberMapper; + @Autowired + private WxUserTagMapper wxUserTagMapper; + + @Autowired + private SysTagMapper sysTagMapper; + /** * 查询用户 * @@ -29,8 +41,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService * @return 用户 */ @Override - public WxUserMember selectWxUserMemberById(Long id) - { + public WxUserMember selectWxUserMemberById(Long id) { return wxUserMemberMapper.selectWxUserMemberById(id); } @@ -41,8 +52,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService * @return 用户 */ @Override - public List selectWxUserMemberList(WxUserMember wxUserMember) - { + public List selectWxUserMemberList(WxUserMember wxUserMember) { return wxUserMemberMapper.selectWxUserMemberList(wxUserMember); } @@ -53,8 +63,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService * @return 用户 */ @Override - public List selectWxUserMemberList(WxUserMemberVm wxUserMemberVm) - { + public List selectWxUserMemberList(WxUserMemberVm wxUserMemberVm) { return wxUserMemberMapper.selectWxUserMemberListByVm(wxUserMemberVm); } @@ -65,8 +74,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService * @return 结果 */ @Override - public int insertWxUserMember(WxUserMember wxUserMember) - { + public int insertWxUserMember(WxUserMember wxUserMember) { wxUserMember.setCreateTime(DateUtils.getNowDate()); return wxUserMemberMapper.insertWxUserMember(wxUserMember); } @@ -78,8 +86,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService * @return 结果 */ @Override - public int updateWxUserMember(WxUserMember wxUserMember) - { + public int updateWxUserMember(WxUserMember wxUserMember) { wxUserMember.setUpdateTime(DateUtils.getNowDate()); return wxUserMemberMapper.updateWxUserMember(wxUserMember); } @@ -91,8 +98,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService * @return 结果 */ @Override - public int deleteWxUserMemberByIds(Long[] ids) - { + public int deleteWxUserMemberByIds(Long[] ids) { return wxUserMemberMapper.deleteWxUserMemberByIds(ids); } @@ -103,8 +109,48 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService * @return 结果 */ @Override - public int deleteWxUserMemberById(Long id) - { + public int deleteWxUserMemberById(Long id) { return wxUserMemberMapper.deleteWxUserMemberById(id); } + + @Override + public List selectUserCount() { + return wxUserMemberMapper.selectUserCount(); + } + + @Override + public void batchAddMiniProgramTag(List tagIdList, List userIds) { + if (tagIdList != null && tagIdList.size() > 0) { + // 对单个标签操作 + for (Integer tagId : tagIdList) { + SysTag sysTag = sysTagMapper.selectDeptById(tagId.longValue()); + if (sysTag != null) { + List needAddIdList = new ArrayList<>(); + // 1、查询该标签下,有那些用户关联 + List existedUserList = wxUserTagMapper.selectWxUserTagByTagId(tagId, TagTypeStatus.MINI_PROGRAM.getCode()); + if (existedUserList != null && existedUserList.size() > 0) { + Iterator iterator = userIds.iterator(); + while (iterator.hasNext()) { + Integer element = iterator.next(); + if (!existedUserList.contains(element)) { + needAddIdList.add(element); + } + } + } + + // 2、添加用户与标签的关联 + List list = new ArrayList<>(); + WxUserTag wxUserTag; + if (needAddIdList != null && needAddIdList.size() > 0) { + for (Integer userId : needAddIdList) { + wxUserTag = new WxUserTag(null, userId.longValue(), sysTag.getTagName(), tagId.longValue(), TagTypeStatus.MINI_PROGRAM.getCode(), null); + wxUserTag.setCreateTime(DateUtils.getNowDate()); + list.add(wxUserTag); + } + wxUserTagMapper.insertBatch(list); + } + } + } + } + } } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserTagServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserTagServiceImpl.java new file mode 100644 index 0000000..917caa0 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserTagServiceImpl.java @@ -0,0 +1,90 @@ +package com.flossom.system.service.impl; + +import java.util.List; + +import com.flossom.common.core.domain.entity.WxUserTag; +import com.flossom.common.core.mapper.WxUserTagMapper; +import com.flossom.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.flossom.system.service.IWxUserTagService; + +/** + * 微信用户标签关联Service业务层处理 + * + * @author flossom + * @date 2023-12-19 + */ +@Service +public class WxUserTagServiceImpl implements IWxUserTagService { + @Autowired + private WxUserTagMapper wxUserTagMapper; + + /** + * 查询微信用户标签关联 + * + * @param id 微信用户标签关联主键 + * @return 微信用户标签关联 + */ + @Override + public WxUserTag selectWxUserTagById(Long id) { + return wxUserTagMapper.selectWxUserTagById(id); + } + + /** + * 查询微信用户标签关联列表 + * + * @param wxUserTag 微信用户标签关联 + * @return 微信用户标签关联 + */ + @Override + public List selectWxUserTagList(WxUserTag wxUserTag) { + return wxUserTagMapper.selectWxUserTagList(wxUserTag); + } + + /** + * 新增微信用户标签关联 + * + * @param wxUserTag 微信用户标签关联 + * @return 结果 + */ + @Override + public int insertWxUserTag(WxUserTag wxUserTag) { + wxUserTag.setCreateTime(DateUtils.getNowDate()); + return wxUserTagMapper.insertWxUserTag(wxUserTag); + } + + /** + * 修改微信用户标签关联 + * + * @param wxUserTag 微信用户标签关联 + * @return 结果 + */ + @Override + public int updateWxUserTag(WxUserTag wxUserTag) { + wxUserTag.setUpdateTime(DateUtils.getNowDate()); + return wxUserTagMapper.updateWxUserTag(wxUserTag); + } + + /** + * 批量删除微信用户标签关联 + * + * @param ids 需要删除的微信用户标签关联主键 + * @return 结果 + */ + @Override + public int deleteWxUserTagByIds(Long[] ids) { + return wxUserTagMapper.deleteWxUserTagByIds(ids); + } + + /** + * 删除微信用户标签关联信息 + * + * @param id 微信用户标签关联主键 + * @return 结果 + */ + @Override + public int deleteWxUserTagById(Long id) { + return wxUserTagMapper.deleteWxUserTagById(id); + } +} diff --git a/flossom-ui/src/views/system/member/index.vue b/flossom-ui/src/views/system/member/index.vue index d375dcc..e3f646e 100644 --- a/flossom-ui/src/views/system/member/index.vue +++ b/flossom-ui/src/views/system/member/index.vue @@ -1,11 +1,11 @@