diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java index 35ff5280..cc20a6e8 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java @@ -136,16 +136,19 @@ public class BmsChannelController { return R.error("活动含当前渠道,删除失败"); } + LambdaQueryWrapper pointLqw = new LambdaQueryWrapper<>(); + pointLqw.eq(BmsChannelPoint::getChannelId,id); + if(bmsChannelPointService.count(pointLqw)>1){ + return R.error("含有网点,删除失败"); + } + //删除相关的网点授权 LambdaQueryWrapper mgrLqw = new LambdaQueryWrapper<>(); mgrLqw.eq(BmsMasterUser::getType, MasterUserType.Channel); mgrLqw.eq(BmsMasterUser::getTargetId,id); bmsMasterUserMapper.delete(mgrLqw); - LambdaQueryWrapper lqwPoint = new LambdaQueryWrapper<>(); - lqwPoint.eq(HisUserChannelPoint::getSourceType,3); - lqwPoint.eq(HisUserChannelPoint::getSourceIds,id); - hisUserChannelPointService.remove(lqwPoint); + hisUserChannelPointService.removeByChannelId(id); boolean result = bmsChannelService.removeById(id); return R.isTrue(result); diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java index 4516d77d..d5b8eb44 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java @@ -201,6 +201,10 @@ public class BmsMasterUserController { for (BmsChannelPoint channelPoint : channelPointList) { hisUserChannelPointService.flushPoint(channelPoint.getId(),channelPoint.getSaleRegionPathIds(),channelPoint.getBizRegionPathIds()); } + }else { + for (String targetId : param.getTargetIds()) { + hisUserChannelPointService.flushByChannelId(Long.parseLong(targetId)); + } } return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java index 6da09d1b..cde434ba 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java @@ -260,7 +260,7 @@ public class BmsRegion2Controller { public R save(@RequestBody @Valid BmsRegionBatchBo.BmsRegionBo regionBo){ BmsRegion2 param = CopierUtil.copy(regionBo,new BmsRegion2()); if(param.getId()==null){ - param.setId(IdUtil.getSnowFlakeId()+""); + param.setId("B"+IdUtil.getSnowFlakeId()); } boolean result = bmsRegion2Service.saveBmsRegion2(param); return R.isTrue(result); diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java index 55ff1cf9..17096bbd 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java @@ -276,7 +276,7 @@ public class BmsRegionController { public R save(@RequestBody @Valid BmsRegionBatchBo.BmsRegionBo regionBo){ BmsRegion param = CopierUtil.copy(regionBo,new BmsRegion()); if(param.getId()==null){ - param.setId(IdUtil.getSnowFlakeId()+""); + param.setId("A"+IdUtil.getSnowFlakeId()); } boolean result = bmsRegionService.saveBmsRegion(param); return R.isTrue(result); diff --git a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java index 9daf72e7..1efcc3d7 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java @@ -16,6 +16,7 @@ import com.qs.serve.modules.baz.service.BazVisitInfoService; import com.qs.serve.modules.bms.entity.BmsChannelPoint; import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.BmsRegionUser; import com.qs.serve.modules.bms.entity.bo.BmsChannelPointBo; import com.qs.serve.modules.bms.entity.bo.BmsChannelPointMapInfoBo; import com.qs.serve.modules.bms.entity.so.BmsPointVisitSo; @@ -24,7 +25,11 @@ import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper; import com.qs.serve.modules.bms.service.BmsChannelPointService; import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegionService; +import com.qs.serve.modules.bms.service.BmsRegionUserService; import com.qs.serve.modules.his.service.HisUserChannelPointService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserSalesService; +import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.entity.TbsActivityChannelPoint; import com.qs.serve.modules.tbs.service.TbsActivityChannelPointService; import lombok.AllArgsConstructor; @@ -34,6 +39,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; +import java.util.stream.Collectors; /** * 基础档案 渠道站点(我的) @@ -53,15 +59,17 @@ public class BmsChannelPointMyController { private TbsActivityChannelPointService activityChannelPointService; private BmsChannelPointMapper channelPointMapper; private HisUserChannelPointService hisUserChannelPointService; + private SysUserService sysUserService; + private BmsRegionUserService bmsRegionUserService; + private SysUserSalesService sysUserSalesService; /** - * 翻页 + * 我负责的网店 * @param param * @return */ @GetMapping("/page") - @PreAuthorize("hasRole('bms:channelPoint:query')") public R> getPage(BmsChannelPoint param){ PageUtil.startPage(); param.setUserId(AuthContextUtils.getSysUserId()); @@ -86,5 +94,42 @@ public class BmsChannelPointMyController { + /** + * 下属负责的网店 + * @param param + * @return + */ + @GetMapping("/page4Under") + public R> getPage4Under(BmsChannelPoint param){ + String loginUserId = AuthContextUtils.getSysUserId(); + List userIds = sysUserSalesService.listByChildIds(loginUserId); + param.setUserIdList(userIds); + LambdaQueryWrapper rulqw = new LambdaQueryWrapper<>(); + rulqw.select(BmsRegionUser::getPathIds); + rulqw.eq(BmsRegionUser::getUserId,loginUserId); + List regionUserList = bmsRegionUserService.list(rulqw); + List regionPaths = regionUserList.stream().map(BmsRegionUser::getPathIds).collect(Collectors.toList()); + param.setSourceIdsList(regionPaths); + PageUtil.startPage(); + param.setTenantId(AuthContextUtils.getTenant()); + List list = bmsChannelPointService.selectChannelPointMyUnderList(param); + for (BmsChannelPoint channelPoint : list) { + if(StringUtils.hasText(channelPoint.getBizRegionPath())){ + String[] bizRegions = channelPoint.getBizRegionPath().split("_"); + if(bizRegions.length>0){ + channelPoint.setBizRegionName(bizRegions[bizRegions.length-1]); + } + } + if(StringUtils.hasText(channelPoint.getSaleRegionPath())){ + String[] regions = channelPoint.getSaleRegionPath().split("_"); + if(regions.length>0){ + channelPoint.setSaleRegionName(regions[regions.length-1]); + } + } + } + return R.byPageHelperList(list); + } + + } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierMyController.java b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierMyController.java index 656a6cf5..415519a8 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierMyController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierMyController.java @@ -49,5 +49,19 @@ public class BmsSupplierMyController { return R.byPageHelperList(list); } + /** + * 下属翻页查询 + * @param param + * @return + */ + @GetMapping("/underlingPage") + public R> getUnderlingPage(BmsSupplier param){ + param.setCurrUserId(AuthContextUtils.getSysUserId()); + param.setStopFlag(0); + PageUtil.startPage(); + List list = bmsSupplierService.selectSupplierList(param); + return R.byPageHelperList(list); + } + } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java index eefcced0..b6d68f25 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.entity; import java.time.LocalDateTime; import java.io.Serializable; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; @@ -171,5 +172,13 @@ public class BmsChannelPoint implements Serializable { @TableField(exist = false) private String userId; + /** 后端参数 */ + @TableField(exist = false) + private List sourceIdsList; + + /** 后端参数 */ + @TableField(exist = false) + private List userIdList; + } diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java index 1ecbe44f..aa3b331e 100644 --- a/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java @@ -47,5 +47,12 @@ public interface BmsChannelPointMapper extends BaseMapper { @InterceptorIgnore(tenantLine = "1") List selectUserPointList4My(@Param("query") BmsChannelPoint param); + /** + * 下属管理人 + * @param param + * @return + */ + @InterceptorIgnore(tenantLine = "1") + List selectUserPointList4MyUnder(@Param("query") BmsChannelPoint param); } diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java index 5c23c8ca..d2bd79d8 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java @@ -21,6 +21,8 @@ public interface BmsChannelPointService extends IService { List selectChannelPointMyList(BmsChannelPoint channelPoint); + List selectChannelPointMyUnderList(BmsChannelPoint channelPoint); + List listByBizRegionId(String id); List listBySaleRegionId(String id); diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java index 583537a9..6548e73e 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java @@ -116,6 +116,11 @@ public class BmsChannelPointServiceImpl extends ServiceImpl selectChannelPointMyUnderList(BmsChannelPoint channelPoint) { + return baseMapper.selectUserPointList4MyUnder(channelPoint); + } + @Override public List listByBizRegionId(String id) { LambdaQueryWrapper channelPointWrapper = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java index e995ad5c..b43d9de8 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java @@ -171,6 +171,7 @@ public class GoodsSkuController { lqw2.eq(GoodsSkuSpecValue::getSkuId,id); goodsSkuSpecValueService.remove(lqw2); } + return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java index 73832071..497cce8a 100644 --- a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java @@ -56,7 +56,11 @@ public interface GoodsSkuSpecValueMapper extends BaseMapper { " ON `goods_sku_spec_value`.spec_value_id = `goods_spec_value`.`id` " + " LEFT JOIN `goods_spec` " + " ON `goods_spec_value`.`spec_id` = `goods_spec`.`id` " + - " WHERE `goods_sku_spec_value`.`sku_id` = #{skuId}" + + " WHERE " + + " `goods_sku_spec_value`.del_flag=0 " + + " and `goods_spec_value`.del_flag=0 " + + " and `goods_spec`.del_flag=0 " + + " and `goods_sku_spec_value`.`sku_id` = #{skuId}" + " ORDER BY `goods_sku_spec_value`.`sort` DESC") List listSpecValueBySkuId(@Param("skuId") Long skuId); diff --git a/src/main/java/com/qs/serve/modules/his/entity/HisUserChannelPoint.java b/src/main/java/com/qs/serve/modules/his/entity/HisUserChannelPoint.java index b87c9850..21cb8779 100644 --- a/src/main/java/com/qs/serve/modules/his/entity/HisUserChannelPoint.java +++ b/src/main/java/com/qs/serve/modules/his/entity/HisUserChannelPoint.java @@ -15,7 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank; - +import java.util.List; /** * 渠道站点 实体类 * @author YenHex @@ -39,7 +39,7 @@ public class HisUserChannelPoint implements Serializable { private Long pointId; /** 来源类型:0->网点负责人;1->行政区域;2->销售区域;3->渠道负责人 */ - @NotNull(message = "来源类型:0->我管理的;1->行政区域;2->销售区域不能为空") + @NotNull(message = "来源类型不能为空") private Integer sourceType; /** 来源id路径 */ @@ -84,6 +84,11 @@ public class HisUserChannelPoint implements Serializable { @NotNull(message = "可投放费用不能为空") private Integer costFlag; + @TableField(exist = false) + private List sourceIdsList; + + @TableField(exist = false) + private List userIdList; public static HisUserChannelPoint toNewObject(HisUserChannelPoint source){ HisUserChannelPoint userChannelPoint = new HisUserChannelPoint(); diff --git a/src/main/java/com/qs/serve/modules/his/mapper/HisUserChannelPointMapper.java b/src/main/java/com/qs/serve/modules/his/mapper/HisUserChannelPointMapper.java index 809d99c2..0219e89b 100644 --- a/src/main/java/com/qs/serve/modules/his/mapper/HisUserChannelPointMapper.java +++ b/src/main/java/com/qs/serve/modules/his/mapper/HisUserChannelPointMapper.java @@ -2,7 +2,8 @@ package com.qs.serve.modules.his.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.his.entity.HisUserChannelPoint; - +import org.apache.ibatis.annotations.Param; +import java.util.List; /** * 渠道站点 Mapper * @author YenHex @@ -10,5 +11,7 @@ import com.qs.serve.modules.his.entity.HisUserChannelPoint; */ public interface HisUserChannelPointMapper extends BaseMapper { + List selectHisUserChannelPointList(@Param("query")HisUserChannelPoint query); + } diff --git a/src/main/java/com/qs/serve/modules/his/service/HisUserChannelPointService.java b/src/main/java/com/qs/serve/modules/his/service/HisUserChannelPointService.java index 11f849e9..d510c23e 100644 --- a/src/main/java/com/qs/serve/modules/his/service/HisUserChannelPointService.java +++ b/src/main/java/com/qs/serve/modules/his/service/HisUserChannelPointService.java @@ -11,6 +11,18 @@ import java.util.List; */ public interface HisUserChannelPointService extends IService { + /** + * 渠道id + * @param channelId + */ + void removeByChannelId(Long channelId); + + /** + * 渠道id + * @param channelId + */ + void flushByChannelId(Long channelId); + /** * 删除 * @param pointId diff --git a/src/main/java/com/qs/serve/modules/his/service/impl/HisUserChannelPointServiceImpl.java b/src/main/java/com/qs/serve/modules/his/service/impl/HisUserChannelPointServiceImpl.java index 614c7462..01f80e39 100644 --- a/src/main/java/com/qs/serve/modules/his/service/impl/HisUserChannelPointServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/his/service/impl/HisUserChannelPointServiceImpl.java @@ -37,6 +37,41 @@ public class HisUserChannelPointServiceImpl extends ServiceImpl lqwPoint = new LambdaQueryWrapper<>(); + lqwPoint.eq(HisUserChannelPoint::getSourceType,3); + lqwPoint.eq(HisUserChannelPoint::getSourceIds,channelId); + this.remove(lqwPoint); + } + + @Override + public void flushByChannelId(Long channelId) { + this.removeByChannelId(channelId); + LambdaQueryWrapper mgrLqw = new LambdaQueryWrapper<>(); + mgrLqw.eq(BmsMasterUser::getType, MasterUserType.Channel); + mgrLqw.eq(BmsMasterUser::getTargetId,channelId); + List masterUsers = masterUserMapper.selectList(mgrLqw); + if(masterUsers.size()>0){ + LambdaQueryWrapper pointLqw = new LambdaQueryWrapper<>(); + pointLqw.eq(BmsChannelPoint::getChannelId,channelId); + pointLqw.select(BmsChannelPoint::getId); + List channelPointList = channelPointMapper.selectList(pointLqw); + List saveList = new ArrayList<>(); + for (BmsChannelPoint channelPoint : channelPointList) { + for (BmsMasterUser masterUser : masterUsers) { + HisUserChannelPoint userChannelPoint = new HisUserChannelPoint(); + userChannelPoint.setUserId(masterUser.getUserId()); + userChannelPoint.setPointId(channelPoint.getId()); + userChannelPoint.setSourceType(3); + saveList.add(userChannelPoint); + } + } + if(CollectionUtil.isNotEmpty(saveList)){ + this.saveBatch(saveList); + } + } + } @Override public void removeByPointId(Long pointId) { diff --git a/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java b/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java index 59b11fee..76fcf5f4 100644 --- a/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java @@ -114,31 +114,54 @@ public class SysUserServiceImpl extends ServiceImpl impl } List authorCodes = new ArrayList<>(); List menuIds = new ArrayList<>(); - if(sysUser.getSuperFlag().equals(1)){ - List sysRolePermits = sysPermitService.listByCache(); - authorCodes = sysRolePermits.stream().map(SysPermit::getCode).distinct().collect(Collectors.toList()); - menuIds = sysMenuMapper.searchMenuIds(); - }else { - List userRoles = sysUserRoleService.listByUid(sysUser.getId()); - List roleIds = userRoles.stream().map(SysUserRole::getRoleId).distinct().collect(Collectors.toList()); - //添加默认的角色ID - List defaultRole = sysRoleService.getDefaultRole(); - List defaultRoleIds = defaultRole.stream().map(SysRole::getId).collect(Collectors.toList()); - roleIds.addAll(defaultRoleIds); - List sysRoles = sysRoleService.getEnableByIds(roleIds); - List sysRolePermits = new ArrayList<>(); - if(CollectionUtil.isNotEmpty(sysRoles)){ - //listPermitCode - sysRolePermits = sysRoleMenuMapper.listPermitCode(sysRoles.stream().map(SysRole::getId).collect(Collectors.toList())); - } - for (SysPermit sysRolePermit : sysRolePermits) { - if(sysRolePermit==null){continue;} - authorCodes.add(sysRolePermit.getCode()); - } - menuIds = sysMenuMapper.searchUserMenuIds(sysUser.getId()); - List defaultRoleMenuIds = sysMenuMapper.searchDefaultMenuIds(defaultRoleIds); - menuIds.addAll(defaultRoleMenuIds); + //以下细分到权限和菜单 +// if(sysUser.getSuperFlag().equals(1)){ +// List sysRolePermits = sysPermitService.listByCache(); +// authorCodes = sysRolePermits.stream().map(SysPermit::getCode).distinct().collect(Collectors.toList()); +// menuIds = sysMenuMapper.searchMenuIds(); +// }else { +// List userRoles = sysUserRoleService.listByUid(sysUser.getId()); +// List roleIds = userRoles.stream().map(SysUserRole::getRoleId).distinct().collect(Collectors.toList()); +// //添加默认的角色ID +// List defaultRole = sysRoleService.getDefaultRole(); +// List defaultRoleIds = defaultRole.stream().map(SysRole::getId).collect(Collectors.toList()); +// roleIds.addAll(defaultRoleIds); +// List sysRoles = sysRoleService.getEnableByIds(roleIds); +// List sysRolePermits = new ArrayList<>(); +// if(CollectionUtil.isNotEmpty(sysRoles)){ +// //listPermitCode +// sysRolePermits = sysRoleMenuMapper.listPermitCode(sysRoles.stream().map(SysRole::getId).collect(Collectors.toList())); +// } +// for (SysPermit sysRolePermit : sysRolePermits) { +// if(sysRolePermit==null){continue;} +// authorCodes.add(sysRolePermit.getCode()); +// } +// menuIds = sysMenuMapper.searchUserMenuIds(sysUser.getId()); +// List defaultRoleMenuIds = sysMenuMapper.searchDefaultMenuIds(defaultRoleIds); +// menuIds.addAll(defaultRoleMenuIds); +// } + + + List sysRolePermits = sysPermitService.listByCache(); + authorCodes = sysRolePermits.stream().map(SysPermit::getCode).distinct().collect(Collectors.toList()); + List userRoles = sysUserRoleService.listByUid(sysUser.getId()); + List roleIds = userRoles.stream().map(SysUserRole::getRoleId).distinct().collect(Collectors.toList()); + //添加默认的角色ID + List defaultRole = sysRoleService.getDefaultRole(); + List defaultRoleIds = defaultRole.stream().map(SysRole::getId).collect(Collectors.toList()); + roleIds.addAll(defaultRoleIds); + + for (SysPermit sysRolePermit : sysRolePermits) { + if(sysRolePermit==null){continue;} + authorCodes.add(sysRolePermit.getCode()); } + menuIds = sysMenuMapper.searchUserMenuIds(sysUser.getId()); + List defaultRoleMenuIds = sysMenuMapper.searchDefaultMenuIds(defaultRoleIds); + menuIds.addAll(defaultRoleMenuIds); + + + + LoginUserType userType = sysUser.getSuperFlag()==0?LoginUserType.SYS_USER:LoginUserType.SYS_SUP_USER; return new LoginUser(sysUser.getId(),sysUser.getName(),sysUser.getPassword(), ServletUtils.getIp(null),userType,authorCodes,menuIds,sysUser.getTenantId()); } 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 db013273..b5d14d0b 100644 --- a/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java +++ b/src/main/java/com/qs/serve/modules/third/PortalFormPushController.java @@ -83,6 +83,7 @@ public class PortalFormPushController { wxPushService.sendWxMsg(wxUser,"表单通知",wxSmsNewForm,true,entity.getId()); WxFormPushUser pushUser = new WxFormPushUser(); pushUser.setFormPushId(entity.getId()); + pushUser.setFormTitle(entity.getTitle()); pushUser.setUserId(wxUser.getSysUserId()); pushUser.setUserCode(wxUser.getSysUserCode()); pushUser.setUserName(wxUser.getEmpName()); diff --git a/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java b/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java index 3677dffb..1b6dbd33 100644 --- a/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java +++ b/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.wx.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.framework.redis.RedisService; +import com.qs.serve.common.framework.security.model.LoginUser; import com.qs.serve.common.model.annotation.LimitSubmit; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.consts.RedisCacheKeys; @@ -11,7 +12,9 @@ import com.qs.serve.common.model.enums.InterType; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.IdUtil; import com.qs.serve.modules.base.TencentYunSmsService; +import com.qs.serve.modules.sys.entity.SysDept; import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.entity.dto.SysUserVo; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.wx.entity.WxUser; import com.qs.serve.modules.wx.entity.dto.WxPhoneBindParam; @@ -43,7 +46,13 @@ public class WxSvcUserApi { */ @GetMapping("/info") public R info(){ + LoginUser loginUser = AuthContextUtils.getLoginUser(); WxUser wxUser = wxUserService.getCurrentWxUser(true); + SysUser sysUser = sysUserService.getById(loginUser.getUserId()); + sysUser.setAuthorIds(loginUser.getAuthorIds()); + sysUser.setAuthorList(loginUser.getAuthorList()); + SysUserVo sysUserVo = sysUser.toSysUserVo(false); + wxUser.setSysUserInfo(sysUserVo); return R.ok(wxUser); } @@ -95,7 +104,8 @@ public class WxSvcUserApi { wxUser.setSysUserId(sysUser.getId()); wxUser.setSysUserCode(sysUser.getCode()); wxUserService.updateById(wxUser); - + //便于多设备登陆 + redisService.remove(key); return R.ok(); } 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 8734ad8f..cebe1582 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 @@ -80,7 +80,7 @@ public class WxFormPushController { * @param param * @return */ - //@PostMapping("/updateById") + @PostMapping("/updateById") @SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.UPDATE) @PreAuthorize("hasRole('wx:formPush:update')") public R updateById(@RequestBody @Valid WxFormPushBo param){ @@ -94,7 +94,7 @@ public class WxFormPushController { * @param param * @return */ - //@PostMapping("/save") + @PostMapping("/save") @SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.INSERT) @PreAuthorize("hasRole('wx:formPush:insert')") public R save(@RequestBody @Valid WxFormPushBo param){ @@ -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/my/WxFormPushMyController.java b/src/main/java/com/qs/serve/modules/wx/controller/my/WxFormPushMyController.java new file mode 100644 index 00000000..a73b33af --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/controller/my/WxFormPushMyController.java @@ -0,0 +1,61 @@ +package com.qs.serve.modules.wx.controller.my; + +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.CopierUtil; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.wx.entity.WxFormPush; +import com.qs.serve.modules.wx.entity.WxFormPushUser; +import com.qs.serve.modules.wx.entity.bo.WxFormPushBo; +import com.qs.serve.modules.wx.service.WxFormPushService; +import com.qs.serve.modules.wx.service.WxFormPushUserService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +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; + +/** + * 微信 表单推送(我的) + * @author YenHex + * @since 2023-04-19 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("my/formPush") +public class WxFormPushMyController { + + private WxFormPushService wxFormPushService; + + private WxFormPushUserService wxFormPushUserService; + + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/page") + public R> getList(WxFormPushUser param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = wxFormPushUserService.list(lqw); + List result = new ArrayList<>(); + for (WxFormPushUser pushUser : list) { + WxFormPush formPush = wxFormPushService.getById(pushUser.getFormPushId()); + formPush.setReadFlag(pushUser.getReadFlag()); + result.add(formPush); + } + return R.ok(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 82f83a03..a0611b88 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 @@ -90,6 +90,9 @@ public class WxFormPush implements Serializable { @JsonProperty private String delFlag; + /** 是否已读 */ + @TableField(exist = false) + private Integer readFlag; public static WxFormPush toNewObject(WxFormPush source){ WxFormPush formPush = new WxFormPush(); 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 30ee0535..344e66a5 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 @@ -35,6 +35,9 @@ public class WxFormPushUser implements Serializable { @Length(max = 36,message = "推送id长度不能超过36字") private String formPushId; + @TableField(condition = SqlCondition.LIKE) + private String formTitle; + /** 用户id */ @Length(max = 64,message = "用户id长度不能超过64字") private String userId; diff --git a/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java b/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java index 18dc775a..d97e7753 100644 --- a/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java +++ b/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java @@ -146,5 +146,8 @@ public class WxUser implements Serializable { @TableField(exist = false) private Integer notBindFlag; + @TableField(exist = false) + private Object sysUserInfo; + } diff --git a/src/main/resources/mapper/bms/BmsChannelPointMapper.xml b/src/main/resources/mapper/bms/BmsChannelPointMapper.xml index a8951b02..0bba1deb 100644 --- a/src/main/resources/mapper/bms/BmsChannelPointMapper.xml +++ b/src/main/resources/mapper/bms/BmsChannelPointMapper.xml @@ -146,7 +146,65 @@ + + + SELECT FROM `his_user_channel_point` `his_user_channel_point` + + and `his_user_channel_point`.`cost_flag` = 0 + and `his_user_channel_point`.`id` = #{query.id} + and `his_user_channel_point`.`user_id` = #{query.userId} + and `his_user_channel_point`.`point_id` = #{query.pointId} + and `his_user_channel_point`.`source_type` = #{query.sourceType} + and `his_user_channel_point`.`source_ids` = #{query.sourceIds} + and `his_user_channel_point`.`remark` = #{query.remark} + and `his_user_channel_point`.`create_time` = #{query.createTime} + and `his_user_channel_point`.`update_time` = #{query.updateTime} + and `his_user_channel_point`.`tenant_id` = #{query.tenantId} + and `his_user_channel_point`.`create_by` = #{query.createBy} + and `his_user_channel_point`.`update_by` = #{query.updateBy} + and `his_user_channel_point`.`cost_flag` = #{query.costFlag} + + + and + + + or + + `his_user_channel_point`.`source_ids` like concat(#{selectId},"_") + + + + and `his_user_channel_point`.`user_id` in + + #{selectId} + + + + + + + +