Browse Source

update

contract
Yen 2 years ago
parent
commit
a5abc392b0
  1. 2
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInfo.java
  2. 10
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java
  3. 4
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java
  4. 30
      src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java
  5. 3
      src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java
  6. 26
      src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java
  7. 49
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java
  8. 10
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java
  9. 2
      src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java
  10. 2
      src/main/java/com/qs/serve/modules/bms/mapper/BmsMasterUserMapper.java
  11. 28
      src/main/java/com/qs/serve/modules/bms/mapper/BmsRegionUserMapper.java
  12. 6
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java
  13. 107
      src/main/java/com/qs/serve/modules/his/entity/HisUserChannelPoint.java
  14. 14
      src/main/java/com/qs/serve/modules/his/mapper/HisUserChannelPointMapper.java
  15. 46
      src/main/java/com/qs/serve/modules/his/service/HisUserChannelPointService.java
  16. 148
      src/main/java/com/qs/serve/modules/his/service/impl/HisUserChannelPointServiceImpl.java
  17. 4
      src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java
  18. 8
      src/main/java/com/qs/serve/modules/qms/service/impl/QmsGroupScopeServiceImpl.java
  19. 10
      src/main/java/com/qs/serve/modules/wx/entity/dto/sms/WxSmsNewForm.java
  20. 3
      src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java
  21. 6
      src/main/resources/mapper/bms/BmsChannelPointMapper.xml

2
src/main/java/com/qs/serve/modules/baz/entity/BazVisitInfo.java

@ -44,6 +44,8 @@ public class BazVisitInfo implements Serializable {
@NotNull(message = "目标id不能为空")
private String targetId;
private String userId;
/** 拜访次数 */
@NotNull(message = "拜访次数不能为空")
private Integer visitCount;

10
src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java

@ -85,6 +85,10 @@ public class BazVisitInstance implements Serializable {
private String targetAddress;
private String targetMapAddress;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime finishedTime;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
@ -135,12 +139,6 @@ public class BazVisitInstance implements Serializable {
visitInstance.setTargetCode(targetDTO.getTargetCode());
visitInstance.setTargetName(targetDTO.getTargetName());
visitInstance.setRemark(source.getRemark());
visitInstance.setCreateTime(source.getCreateTime());
visitInstance.setUpdateTime(source.getUpdateTime());
visitInstance.setTenantId(source.getTenantId());
visitInstance.setDelFlag(source.getDelFlag());
visitInstance.setCreateBy(source.getCreateBy());
visitInstance.setUpdateBy(source.getUpdateBy());
return visitInstance;
}

4
src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java

@ -132,6 +132,10 @@ public class BazVisitInstanceFlow implements Serializable {
@Length(max = 255,message = "拜访人长度不能超过255字")
private String visitorName;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime submitTime;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;

30
src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java

@ -7,14 +7,13 @@ import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.baz.common.BazTargetTypeConsts;
import com.qs.serve.modules.baz.entity.BazVisit;
import com.qs.serve.modules.baz.entity.BazVisitFlow;
import com.qs.serve.modules.baz.entity.BazVisitInstanceFlow;
import com.qs.serve.modules.baz.entity.*;
import com.qs.serve.modules.baz.entity.bo.BazCreateVisitInstanceBo;
import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo;
import com.qs.serve.modules.baz.mapper.BazVisitFlowMapper;
import com.qs.serve.modules.baz.mapper.BazVisitInstanceFlowMapper;
import com.qs.serve.modules.baz.mapper.BazVisitMapper;
import com.qs.serve.modules.baz.service.BazVisitInfoService;
import com.qs.serve.modules.baz.service.BazVisitInstanceFlowService;
import com.qs.serve.modules.bms.entity.*;
import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper;
@ -27,10 +26,10 @@ import com.qs.serve.modules.sys.mapper.SysUserMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.baz.entity.BazVisitInstance;
import com.qs.serve.modules.baz.service.BazVisitInstanceService;
import com.qs.serve.modules.baz.mapper.BazVisitInstanceMapper;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
@ -51,6 +50,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
BazVisitInstanceFlowService instanceFlowService;
BazVisitFlowMapper flowMapper;
BazVisitMapper visitMapper;
private BazVisitInfoService bazVisitInfoService;
@Override
public BazVisitInstance create(BazCreateVisitInstanceBo param) {
@ -123,6 +123,26 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
instanceFlowList.add(instanceFlow);
}
//更新统计
LambdaQueryWrapper<BazVisitInfo> visitInfoLqw = new LambdaQueryWrapper<>();
visitInfoLqw.eq(BazVisitInfo::getTargetType, targetType);
visitInfoLqw.eq(BazVisitInfo::getTargetId,targetDTO.getTargetId());
visitInfoLqw.eq(BazVisitInfo::getUserId,sysUser.getId());
BazVisitInfo visitInfo = bazVisitInfoService.getOne(visitInfoLqw,false);
if(visitInfo==null){
visitInfo = new BazVisitInfo();
visitInfo.setVisitId(visitInstance.getVisitId());
visitInfo.setTargetId(targetDTO.getTargetId());
visitInfo.setTargetType(targetType);
visitInfo.setUserId(sysUser.getSyUserId());
visitInfo.setVisitCount(1);
}else {
visitInfo.setVisitCount(visitInfo.getVisitCount()+1);
}
visitInfo.setLastVisitTime(LocalDateTime.now());
//保存
bazVisitInfoService.saveOrUpdate(visitInfo);
this.save(visitInstance);
for (BazVisitInstanceFlow instanceFlow : instanceFlowList) {
instanceFlow.setVisitInstanceId(visitInstance.getId());
@ -152,6 +172,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
instanceFlow.setId(param.getInstanceFlowId());
instanceFlow.initInputValues(param);
instanceFlow.setFlowState(1);
instanceFlow.setSubmitTime(LocalDateTime.now());
instanceFlowService.updateById(instanceFlow);
//完成自动更新
LambdaQueryWrapper<BazVisitInstanceFlow> countLqw = new LambdaQueryWrapper<>();
@ -160,6 +181,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
long count = instanceFlowService.count(countLqw);
if(count<1){
BazVisitInstance visitInstance = new BazVisitInstance();
visitInstance.setFinishedTime(LocalDateTime.now());
visitInstance.setVisitState(1);
visitInstance.setId(instanceFlowDb.getVisitInstanceId());
this.updateById(visitInstance);

3
src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java

@ -21,6 +21,7 @@ import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper;
import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.tbs.entity.TbsActivityChannelPoint;
import com.qs.serve.modules.tbs.service.TbsActivityChannelPointService;
import lombok.AllArgsConstructor;
@ -51,6 +52,7 @@ public class BmsChannelPointController {
private BmsRegion2Service bmsRegion2Service;
private TbsActivityChannelPointService activityChannelPointService;
private BmsChannelPointMapper channelPointMapper;
private HisUserChannelPointService hisUserChannelPointService;
/**
* 获取我负责的网点
@ -170,6 +172,7 @@ public class BmsChannelPointController {
return R.error("活动含当前站点,删除失败");
}
boolean result = bmsChannelPointService.removeById(id);
hisUserChannelPointService.removeByPointId(id);
return R.isTrue(result);
}

26
src/main/java/com/qs/serve/modules/bms/controller/BmsMasterUserController.java

@ -6,10 +6,7 @@ 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.Assert;
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.common.util.*;
import com.qs.serve.modules.bms.common.MasterUserType;
import com.qs.serve.modules.bms.entity.BmsChannel;
import com.qs.serve.modules.bms.entity.BmsChannelPoint;
@ -20,6 +17,8 @@ import com.qs.serve.modules.bms.entity.vo.BmsMasterUserPointVo;
import com.qs.serve.modules.bms.mapper.BmsMasterUserMapper;
import com.qs.serve.modules.bms.service.BmsChannelPointService;
import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.his.entity.HisUserChannelPoint;
import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
@ -35,6 +34,7 @@ import com.qs.serve.modules.bms.service.BmsMasterUserService;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 基础档案 负责人
@ -52,6 +52,7 @@ public class BmsMasterUserController {
private BmsMasterUserService bmsMasterUserService;
private BmsMasterUserMapper bmsMasterUserMapper;
private SysUserService sysUserService;
private HisUserChannelPointService hisUserChannelPointService;
/**
* 负责人列表(渠道)
@ -173,6 +174,12 @@ public class BmsMasterUserController {
}
}
bmsMasterUserService.saveBatch(masterUsers);
if(type.equals(MasterUserType.Point)){
List<BmsChannelPoint> channelPointList = bmsChannelPointService.listByIds(param.getTargetIds());
for (BmsChannelPoint channelPoint : channelPointList) {
hisUserChannelPointService.flushPoint(channelPoint.getId(),channelPoint.getSaleRegionPathIds(),channelPoint.getBizRegionPathIds());
}
}
return R.ok();
}
@ -215,6 +222,17 @@ public class BmsMasterUserController {
@PreAuthorize("hasRole('bms:masterUser:delete')")
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
List<BmsMasterUser> masterUserList = bmsMasterUserService.listByIds(idsLong);
if(CollectionUtil.isNotEmpty(masterUserList)){
if(masterUserList.get(0).getType().equals(MasterUserType.Point)){
List<String> pointIds = masterUserList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList());
List<BmsChannelPoint> channelPointList = bmsChannelPointService.listByIds(pointIds);
for (BmsChannelPoint channelPoint : channelPointList) {
hisUserChannelPointService.flushPoint(channelPoint.getId(),channelPoint.getSaleRegionPathIds(),channelPoint.getBizRegionPathIds());
}
}
}
boolean result = bmsMasterUserService.removeByIds(idsLong);
return R.isTrue(result);
}

49
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java

@ -10,12 +10,15 @@ 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.BmsChannelPoint;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.bo.BmsRegionUserBo;
import com.qs.serve.modules.bms.entity.bo.BmsRegionUserSaveBo;
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.his.service.HisUserChannelPointService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
@ -47,11 +50,9 @@ public class BmsRegionUserController {
private BmsRegion2Service bmsRegion2Service;
private BmsRegionService bmsRegionService;
private SysUserService sysUserService;
private HisUserChannelPointService hisUserChannelPointService;
private BmsChannelPointService channelPointService;
public R<?> commentRegionList(){
return R.ok();
}
/**
* 列表
@ -132,6 +133,36 @@ public class BmsRegionUserController {
}
}
bmsRegionUserService.saveBatch(bmsRegionUsers);
// 类型:0=销售区域;1=行政区域
if(type.equals(0)){
List<BmsRegion> regionList = bmsRegionService.listByIds(param.getRegionIds());
for (BmsRegion region : regionList) {
LambdaQueryWrapper<BmsChannelPoint> pointLqw = new LambdaQueryWrapper<>();
pointLqw.eq(BmsChannelPoint::getSaleRegionId,region.getId());
pointLqw.select(BmsChannelPoint::getId);
//区域有那些网点
List<BmsChannelPoint> pointList = channelPointService.list(pointLqw);
List<Long> pointIds = pointList.stream().map(BmsChannelPoint::getId)
.distinct().collect(Collectors.toList());
String pathIds = region.getPathIds();
List<String> userIds = param.getUserIds();
hisUserChannelPointService.flushBatchUserRegion(userIds,pointIds,2,pathIds);
}
}else {
List<BmsRegion2> regionList = bmsRegion2Service.listByIds(param.getRegionIds());
for (BmsRegion2 region : regionList) {
LambdaQueryWrapper<BmsChannelPoint> pointLqw = new LambdaQueryWrapper<>();
pointLqw.eq(BmsChannelPoint::getBizRegionId,region.getId());
pointLqw.select(BmsChannelPoint::getId);
//区域有那些网点
List<BmsChannelPoint> pointList = channelPointService.list(pointLqw);
List<Long> pointIds = pointList.stream().map(BmsChannelPoint::getId)
.distinct().collect(Collectors.toList());
String pathIds = region.getPathIds();
List<String> userIds = param.getUserIds();
hisUserChannelPointService.flushBatchUserRegion(userIds,pointIds,1,pathIds);
}
}
return R.ok();
}
@ -174,6 +205,16 @@ public class BmsRegionUserController {
@PreAuthorize("hasRole('bms:regionUser:delete')")
public R<?> deleteById(@PathVariable String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
List<BmsRegionUser> regionUserList = bmsRegionUserService.listByIds(idsLong);
for (BmsRegionUser regionUser : regionUserList) {
if(regionUser.getType().equals(0)){
BmsRegion region = bmsRegionService.getById(regionUser.getRegionId());
hisUserChannelPointService.removeUserRegion(regionUser.getUserId(),region.getPathIds(),null);
}else {
BmsRegion2 region = bmsRegion2Service.getById(regionUser.getRegionId());
hisUserChannelPointService.removeUserRegion(regionUser.getUserId(),null,region.getPathIds());
}
}
bmsRegionUserService.removeByIds(idsLong);
return R.ok();
}

10
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java

@ -9,7 +9,9 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.baz.common.BazTargetTypeConsts;
import com.qs.serve.modules.baz.entity.BazVisitFlow;
import com.qs.serve.modules.baz.entity.BazVisitInfo;
import com.qs.serve.modules.baz.service.BazVisitFlowService;
import com.qs.serve.modules.baz.service.BazVisitInfoService;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierVisit;
@ -49,6 +51,7 @@ public class BmsSupplierVisitAddressController {
private BmsSupplierService bmsSupplierService;
private HisUserSupplierService hisUserSupplierService;
private HisUserSupplierMapper hisUserSupplierMapper;
private BazVisitFlowService bazVisitFlowService;
/**
* 列表
@ -100,6 +103,7 @@ public class BmsSupplierVisitAddressController {
LambdaQueryWrapper<BazVisitInfo> visitInfoLqw = new LambdaQueryWrapper<>();
visitInfoLqw.eq(BazVisitInfo::getTargetType, BazTargetTypeConsts.CUSTOMER);
visitInfoLqw.eq(BazVisitInfo::getTargetId,supplier.getId());
visitInfoLqw.eq(BazVisitInfo::getUserId,userId);
BazVisitInfo visitInfo = bazVisitInfoService.getOne(visitInfoLqw,false);
addressVo.setVisitInfo(visitInfo);
break;
@ -183,6 +187,12 @@ public class BmsSupplierVisitAddressController {
@PreAuthorize("hasRole('bms:supplierVisitAddress:delete')")
public R<?> deleteById(@PathVariable("ids") String ids){
List<String> idsLong = StringUtils.splitIdString(ids);
LambdaQueryWrapper<BazVisitFlow> lqw = new LambdaQueryWrapper<>();
lqw.in(BazVisitFlow::getFormId,idsLong);
long count = bazVisitFlowService.count(lqw);
if(count>0){
return R.error("含有使用表单的业务,无法删除");
}
boolean result = bmsSupplierVisitAddressService.removeByIds(idsLong);
return R.isTrue(result);
}

2
src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java

@ -35,5 +35,7 @@ public interface BmsChannelPointMapper extends BaseMapper<BmsChannelPoint> {
@InterceptorIgnore(tenantLine = "1")
List<BmsUserPoint4VisitVo> selectUserPointList4Visit(@Param("query") BmsPointVisitSo param);
//List<BmsChannelPoint>
}

2
src/main/java/com/qs/serve/modules/bms/mapper/BmsMasterUserMapper.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsMasterUser;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.vo.BmsMasterUserCenterVo;
import com.qs.serve.modules.bms.entity.vo.BmsMasterUserChannelVo;
import com.qs.serve.modules.bms.entity.vo.BmsMasterUserPointVo;
@ -38,5 +39,6 @@ public interface BmsMasterUserMapper extends BaseMapper<BmsMasterUser> {
*/
List<BmsMasterUserCenterVo> selectCenterMasterUserList(@Param("query") BmsMasterUser userChannel);
}

28
src/main/java/com/qs/serve/modules/bms/mapper/BmsRegionUserMapper.java

@ -2,7 +2,9 @@ package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* 区域负责人 Mapper
* @author YenHex
@ -10,5 +12,29 @@ import com.qs.serve.modules.bms.entity.BmsRegionUser;
*/
public interface BmsRegionUserMapper extends BaseMapper<BmsRegionUser> {
/**
* 我的销售区域
* @param userId
* @return
*/
@Select("SELECT path_ids FROM" +
" ( SELECT region_id FROM `bms_region_user` " +
" WHERE `bms_region_user`.type = '0' AND `bms_region_user`.del_flag = 0 and `bms_region_user`.user_id = #{userId}" +
" ) reg_user" +
" LEFT JOIN `bms_region` `bms_region` ON reg_user.region_id = `bms_region`.`id` ")
List<String> selectMySaleRegion(@Param("userId")String userId);
/**
* 我的行政区域
* @param userId
* @return
*/
@Select(" SELECT path_ids FROM" +
" ( SELECT region_id FROM `bms_region_user`" +
" WHERE `bms_region_user`.type = '1' AND `bms_region_user`.del_flag = 0 and `bms_region_user`.user_id = #{userId}" +
" ) reg_user " +
" LEFT JOIN `bms_region2` `bms_region2` ON reg_user.region_id = `bms_region2`.`id`;")
List<String> selectMyBizRegion(@Param("userId")String userId);
}

6
src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java

@ -11,6 +11,7 @@ import com.qs.serve.modules.bms.entity.bo.BmsChannelPointBo;
import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.his.service.HisUserChannelPointService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -33,6 +34,7 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
private BmsRegionService bmsRegionService;
private BmsRegion2Service bmsRegion2Service;
private BmsChannelService bmsChannelService;
private HisUserChannelPointService hisUserChannelPointService;
@Override
public boolean modify(BmsChannelPointBo param) {
@ -56,7 +58,9 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
channelPoint.setBizRegionPath(bmsRegion2.getPathNames());
channelPoint.setBizRegionPathIds(bmsRegion2.getPathIds());
}
return this.saveOrUpdate(channelPoint);
this.saveOrUpdate(channelPoint);
hisUserChannelPointService.flushPoint(channelPoint.getId(),channelPoint.getSaleRegionPathIds(),channelPoint.getBizRegionPathIds());
return true;
}
@Override

107
src/main/java/com/qs/serve/modules/his/entity/HisUserChannelPoint.java

@ -0,0 +1,107 @@
package com.qs.serve.modules.his.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-12
*/
@Data
@TableName("his_user_channel_point")
public class HisUserChannelPoint implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 用户id */
@Length(max = 64,message = "用户id长度不能超过64字")
private String userId;
/** 网点ID */
private Long pointId;
/** 来源类型:0->我管理的;1->行政区域;2->销售区域 */
@NotNull(message = "来源类型:0->我管理的;1->行政区域;2->销售区域不能为空")
private Integer sourceType;
/** 来源id路径 */
@Length(max = 255,message = "来源id路径长度不能超过255字")
private String sourceIds;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
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;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 可投放费用 */
@NotNull(message = "可投放费用不能为空")
private Integer costFlag;
public static HisUserChannelPoint toNewObject(HisUserChannelPoint source){
HisUserChannelPoint userChannelPoint = new HisUserChannelPoint();
userChannelPoint.setId(source.getId());
userChannelPoint.setUserId(source.getUserId());
userChannelPoint.setPointId(source.getPointId());
userChannelPoint.setSourceType(source.getSourceType());
userChannelPoint.setSourceIds(source.getSourceIds());
userChannelPoint.setRemark(source.getRemark());
userChannelPoint.setCreateTime(source.getCreateTime());
userChannelPoint.setUpdateTime(source.getUpdateTime());
userChannelPoint.setTenantId(source.getTenantId());
userChannelPoint.setDelFlag(source.getDelFlag());
userChannelPoint.setCreateBy(source.getCreateBy());
userChannelPoint.setUpdateBy(source.getUpdateBy());
userChannelPoint.setCostFlag(source.getCostFlag());
return userChannelPoint;
}
}

14
src/main/java/com/qs/serve/modules/his/mapper/HisUserChannelPointMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.his.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.his.entity.HisUserChannelPoint;
/**
* 渠道站点 Mapper
* @author YenHex
* @date 2023-04-12
*/
public interface HisUserChannelPointMapper extends BaseMapper<HisUserChannelPoint> {
}

46
src/main/java/com/qs/serve/modules/his/service/HisUserChannelPointService.java

@ -0,0 +1,46 @@
package com.qs.serve.modules.his.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.his.entity.HisUserChannelPoint;
import java.util.List;
/**
* 渠道站点 服务接口
* @author YenHex
* @date 2023-04-12
*/
public interface HisUserChannelPointService extends IService<HisUserChannelPoint> {
/**
* 删除
* @param pointId
*/
void removeByPointId(Long pointId);
/**
* 初始化网点
* @param pointId
* @param saleRegionIds
* @param bizRegionIds
*/
void flushPoint(Long pointId ,String saleRegionIds,String bizRegionIds);
/**
* 删除用户区域
* @param userId
* @param saleRegionIds
* @param bizRegionIds
*/
void removeUserRegion(String userId,String saleRegionIds,String bizRegionIds);
/**
* 批量刷新
* @param userIds
* @param pointIds
* @param sourceType
* @param regionIds
*/
void flushBatchUserRegion(List<String> userIds,List<Long> pointIds,Integer sourceType,String regionIds);
}

148
src/main/java/com/qs/serve/modules/his/service/impl/HisUserChannelPointServiceImpl.java

@ -0,0 +1,148 @@
package com.qs.serve.modules.his.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.bms.common.MasterUserType;
import com.qs.serve.modules.bms.entity.BmsMasterUser;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.mapper.BmsMasterUserMapper;
import com.qs.serve.modules.bms.mapper.BmsRegionUserMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.his.entity.HisUserChannelPoint;
import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.his.mapper.HisUserChannelPointMapper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 渠道站点 服务实现类
* @author YenHex
* @since 2023-04-12
*/
@Slf4j
@Service
@AllArgsConstructor
public class HisUserChannelPointServiceImpl extends ServiceImpl<HisUserChannelPointMapper,HisUserChannelPoint> implements HisUserChannelPointService {
private final BmsRegionUserMapper regionUserMapper;
private final BmsMasterUserMapper masterUserMapper;
@Override
public void removeByPointId(Long pointId) {
LambdaQueryWrapper<HisUserChannelPoint> lqw = new LambdaQueryWrapper<>();
lqw.eq(HisUserChannelPoint::getPointId,pointId);
this.remove(lqw);
}
@Override
public void flushPoint(Long pointId, String saleRegionIds, String bizRegionIds) {
this.removeByPointId(pointId);
List<HisUserChannelPoint> channelPointList = new ArrayList<>();
if(StringUtils.hasText(saleRegionIds)){
List<String> saleRegionArr = Arrays.asList(saleRegionIds.split("_"));
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.in(BmsRegionUser::getRegionId,saleRegionArr);
lqw.eq(BmsRegionUser::getType,0);
lqw.select(BmsRegionUser::getUserId);
List<BmsRegionUser> regionUserList = regionUserMapper.selectList(lqw);
List<String> userIds = regionUserList.stream().map(BmsRegionUser::getUserId)
.distinct().collect(Collectors.toList());
for (String userId : userIds) {
HisUserChannelPoint userChannelPoint = new HisUserChannelPoint();
userChannelPoint.setUserId(userId);
userChannelPoint.setPointId(pointId);
userChannelPoint.setSourceType(2);
userChannelPoint.setSourceIds(saleRegionIds);
channelPointList.add(userChannelPoint);
}
}
if(StringUtils.hasText(bizRegionIds)){
List<String> bizRegionArr = Arrays.asList(bizRegionIds.split("_"));
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.in(BmsRegionUser::getRegionId,bizRegionArr);
lqw.eq(BmsRegionUser::getType,1);
lqw.select(BmsRegionUser::getUserId);
List<BmsRegionUser> regionUserList = regionUserMapper.selectList(lqw);
List<String> userIds = regionUserList.stream().map(BmsRegionUser::getUserId)
.distinct().collect(Collectors.toList());
for (String userId : userIds) {
HisUserChannelPoint userChannelPoint = new HisUserChannelPoint();
userChannelPoint.setUserId(userId);
userChannelPoint.setPointId(pointId);
userChannelPoint.setSourceType(1);
userChannelPoint.setSourceIds(bizRegionIds);
channelPointList.add(userChannelPoint);
}
}
LambdaQueryWrapper<BmsMasterUser> masterUserLqw = new LambdaQueryWrapper<>();
masterUserLqw.eq(BmsMasterUser::getType, MasterUserType.Point);
masterUserLqw.eq(BmsMasterUser::getTargetId,pointId);
masterUserLqw.select(BmsMasterUser::getUserId);
List<BmsMasterUser> masterUsers = masterUserMapper.selectList(masterUserLqw);
List<String> userIds = masterUsers.stream().map(a->a.getUserId()).distinct().collect(Collectors.toList());
for (String userId : userIds) {
HisUserChannelPoint userChannelPoint = new HisUserChannelPoint();
userChannelPoint.setUserId(userId);
userChannelPoint.setPointId(pointId);
userChannelPoint.setSourceType(0);
channelPointList.add(userChannelPoint);
}
if(CollectionUtil.isNotEmpty(channelPointList)){
this.saveBatch(channelPointList);
}
}
@Override
public void removeUserRegion(String userId, String saleRegionIds, String bizRegionIds) {
if(StringUtils.hasText(saleRegionIds)){
LambdaQueryWrapper<HisUserChannelPoint> lqw = new LambdaQueryWrapper<>();
lqw.eq(HisUserChannelPoint::getUserId,userId);
lqw.eq(HisUserChannelPoint::getSourceIds,saleRegionIds);
lqw.eq(HisUserChannelPoint::getSourceType,2);
this.remove(lqw);
}
if(StringUtils.hasText(bizRegionIds)){
LambdaQueryWrapper<HisUserChannelPoint> lqw = new LambdaQueryWrapper<>();
lqw.eq(HisUserChannelPoint::getUserId,userId);
lqw.eq(HisUserChannelPoint::getSourceIds,bizRegionIds);
lqw.eq(HisUserChannelPoint::getSourceType,1);
this.remove(lqw);
}
}
@Override
public void flushBatchUserRegion(List<String> userIds, List<Long> pointIds, Integer sourceType, String regionIds) {
List<HisUserChannelPoint> hisUserChannelPointList = new ArrayList<>();
for (String userId : userIds) {
if(sourceType.equals(2)){
this.removeUserRegion(userId,regionIds,null);
}else {
this.removeUserRegion(userId,null,regionIds);
}
for (Long pointId : pointIds) {
HisUserChannelPoint userChannelPoint = new HisUserChannelPoint();
userChannelPoint.setUserId(userId);
userChannelPoint.setPointId(pointId);
userChannelPoint.setSourceType(sourceType);
userChannelPoint.setSourceIds(regionIds);
hisUserChannelPointList.add(userChannelPoint);
}
}
if(CollectionUtil.isNotEmpty(hisUserChannelPointList)){
this.saveBatch(hisUserChannelPointList);
}
}
}

4
src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java

@ -181,7 +181,9 @@ public class QmsGroupController {
for (WxUser wxUser : wxUserList) {
WxSmsNewForm wxSmsNewForm = new WxSmsNewForm();
wxSmsNewForm.setTitle(qmsGroup.getName());
wxSmsNewForm.setParam5(qmsGroup.getPublishTime().toString());
wxSmsNewForm.setUserName(wxUser.getEmpName());
wxSmsNewForm.setBizType("催办通知");
wxSmsNewForm.setBitTime(qmsGroup.getPublishTime().toString());
wxSmsNewForm.setRemark(qmsGroup.getRemark());
wxPushService.sendWxMsg(wxUser,"填写问卷通知",wxSmsNewForm,true,hastenBo.getGroupId()+"");
}

8
src/main/java/com/qs/serve/modules/qms/service/impl/QmsGroupScopeServiceImpl.java

@ -122,7 +122,9 @@ public class QmsGroupScopeServiceImpl extends ServiceImpl<QmsGroupScopeMapper,Qm
for (WxUser wxUser : wxUserList) {
WxSmsNewForm wxSmsNewForm = new WxSmsNewForm();
wxSmsNewForm.setTitle(qmsGroup.getName());
wxSmsNewForm.setParam5(qmsGroup.getPublishTime().toString());
wxSmsNewForm.setUserName(wxUser.getEmpName());
wxSmsNewForm.setBitTime(qmsGroup.getPublishTime().toString());
wxSmsNewForm.setBizType("填写问卷通知");
wxSmsNewForm.setRemark(qmsGroup.getRemark());
wxPushService.sendWxMsg(wxUser,"填写问卷通知",wxSmsNewForm,true,groupId+"");
}
@ -136,7 +138,9 @@ public class QmsGroupScopeServiceImpl extends ServiceImpl<QmsGroupScopeMapper,Qm
for (WxUser wxUser : wxUserList) {
WxSmsNewForm wxSmsNewForm = new WxSmsNewForm();
wxSmsNewForm.setTitle(qmsGroup.getName());
wxSmsNewForm.setParam5(qmsGroup.getPublishTime().toString());
wxSmsNewForm.setUserName(wxUser.getEmpName());
wxSmsNewForm.setBitTime(qmsGroup.getPublishTime().toString());
wxSmsNewForm.setBizType("填写问卷通知");
wxSmsNewForm.setRemark(qmsGroup.getRemark());
wxPushService.sendWxMsg(wxUser,"填写问卷通知",wxSmsNewForm,true,groupId+"");
}

10
src/main/java/com/qs/serve/modules/wx/entity/dto/sms/WxSmsNewForm.java

@ -14,15 +14,11 @@ public class WxSmsNewForm extends SmsBaseDto {
@WxSmsProp(keyword = "first")
private String title;
@WxSmsProp(keyword = "keyword1")
private String param1;
private String userName;
@WxSmsProp(keyword = "keyword2")
private String param2;
private String bizType;
@WxSmsProp(keyword = "keyword3")
private String param3;
@WxSmsProp(keyword = "keyword4")
private String param4;
@WxSmsProp(keyword = "keyword5")
private String param5;
private String bitTime;
@WxSmsProp(keyword = "remark")
private String remark;
}

3
src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java

@ -161,6 +161,7 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUser> impleme
WxOAuth2Service auth2Service = wxMpService.getOAuth2Service();
try {
WxOAuth2AccessToken auth2AccessToken = auth2Service.getAccessToken(code);
log.debug("auth2AccessToken:{}",auth2AccessToken.getAccessToken());
WxOAuth2UserInfo auth2UserInfo = auth2Service.getUserInfo(auth2AccessToken, GySysConst.LANG_ZH_CN);
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(auth2UserInfo.getOpenid(), GySysConst.LANG_ZH_CN);
wxUser = this.getByOpenId(auth2UserInfo.getOpenid());
@ -192,7 +193,7 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUser> impleme
updateById(wxUser);
}
} catch (WxErrorException e) {
e.printStackTrace();
log.debug("微信登录失败:{}",e.getMessage());
}
}
//TODO 登录日志

6
src/main/resources/mapper/bms/BmsChannelPointMapper.xml

@ -70,7 +70,10 @@
LEFT JOIN bms_supplier_channel ON bms_supplier_channel.`channel_id` = `bms_channel_point`.`channel_id`
</if>
<where>
<if test="query.supplierId!=null and query.supplierId!=''"> and bms_supplier_channel.`supplier_id` = #{query.supplierId} </if>
and `bms_channel_point`.`del_flag` = 0
<if test="query.supplierId!=null and query.supplierId!=''">
and bms_supplier_channel.`supplier_id` = #{query.supplierId} and bms_supplier_channel.`del_flag` = 0
</if>
<if test="query.id != null"> and `bms_channel_point`.`id` = #{query.id}</if>
<if test="query.channelId != null"> and `bms_channel_point`.`channel_id` = #{query.channelId}</if>
<if test="query.channelName != null and query.channelName != ''"> and `bms_channel_point`.`channel_name` like concat('%',#{query.channelName},'%') </if>
@ -91,7 +94,6 @@
<if test="query.createTime != null"> and `bms_channel_point`.`create_time` = #{query.createTime}</if>
<if test="query.updateTime != null"> and `bms_channel_point`.`update_time` = #{query.updateTime}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `bms_channel_point`.`tenant_id` = #{query.tenantId}</if>
<if test="query.delFlag != null and query.delFlag != ''"> and `bms_channel_point`.`del_flag` = #{query.delFlag}</if>
<if test="query.createBy != null and query.createBy != ''"> and `bms_channel_point`.`create_by` = #{query.createBy}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `bms_channel_point`.`update_by` = #{query.updateBy}</if>
<if test="query.costFlag != null and query.costFlag != ''"> and `bms_channel_point`.`cost_flag` = #{query.costFlag}</if>

Loading…
Cancel
Save