diff --git a/src/main/java/com/qs/serve/common/util/AuthContextUtils.java b/src/main/java/com/qs/serve/common/util/AuthContextUtils.java index bb29697c..50dd3737 100644 --- a/src/main/java/com/qs/serve/common/util/AuthContextUtils.java +++ b/src/main/java/com/qs/serve/common/util/AuthContextUtils.java @@ -101,9 +101,21 @@ public class AuthContextUtils { WxUserService wxUserService = SpringUtils.getBean(WxUserService.class); WxUser wxUser = wxUserService.getCurrentWxUser(); BmsSupplier supplier = supplierService.getById(supplierId); - if(!supplier.getUserId().equals(wxUser.getSysUserId())){ + boolean isOther = false; + if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){ + for (String otherUserId : supplier.getOtherUserIds()) { + if(wxUser.getSysUserId().equals(otherUserId)){ + isOther = true; + break; + } + } + } + if(isOther && !supplier.getUserId().equals(wxUser.getSysUserId())){ Assert.throwEx("供应商无效或未授权"); } + if(supplier.getStopFlag().equals(1)){ + Assert.throwEx("供应商已停用"); + } return supplier; } diff --git a/src/main/java/com/qs/serve/modules/base/controller/JslApiController.java b/src/main/java/com/qs/serve/modules/base/controller/JslApiController.java new file mode 100644 index 00000000..ab99403a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/base/controller/JslApiController.java @@ -0,0 +1,104 @@ +package com.qs.serve.modules.base.controller; + +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.consts.GySysConst; +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.AuthContextUtils; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.bms.entity.bo.BmsSupplierBatchBo; +import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.entity.bo.SysUserBatchBo; +import com.qs.serve.modules.sys.entity.bo.SysUserBo; +import com.qs.serve.modules.sys.service.SysRoleService; +import com.qs.serve.modules.sys.service.SysUserSalesService; +import com.qs.serve.modules.sys.service.SysUserService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; + +/** + * 【嘉士利对接】 + * @author YenHex + * @since 2022/10/28 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("/jsl") +public class JslApiController { + + private SysUserService sysUserService; + private SysRoleService sysRoleService; + private BmsSupplierService bmsSupplierService; + private SysUserSalesService sysUserSalesService; + + /** + * 客户档案 + * @param param + * @return + */ + @PostMapping("/supplier/editBatch") + @SysLog(module = SystemModule.BASE, title = "供应商", biz = BizType.INSERT) + @PreAuthorize("hasRole('bms:supplier:insert')") + public R editBatch(@RequestBody @Valid BmsSupplierBatchBo param){ + bmsSupplierService.editBatch(param); + return R.ok(); + } + + + + /** + * 业务员档案 + * @param batchBo + * @return + */ + @SysLog(title = "人员",desc = "用户新增",biz = BizType.INSERT) + @PostMapping("/user/editBatch") + @PreAuthorize("hasRole('sys:user:insert')") + @Transactional(rollbackFor = Exception.class) + public R saveBatch(@RequestBody @Valid SysUserBatchBo batchBo){ + for (SysUserBo userBo : batchBo.getUserList()) { + SysUser dbData = sysUserService.getById(userBo.getId()); + SysUser param = CopierUtil.copy(userBo,dbData==null?new SysUser():dbData); + //设置普通管理员 + param.setSuperFlag(0); + param.setTenantId(AuthContextUtils.getTenant()); + param.setAccount(param.getMobile()); + param.setPassword(SecureUtil.md5(GySysConst.DEFAULT_PASSWORD)); + if(param.getMobile()!=null){ + param.setAccount(param.getMobile()); + } + //检查手机号是否已用 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.ne(SysUser::getId,userBo.getId()); + wrapper.eq(SysUser::getMobile,param.getMobile()); + Long count = sysUserService.count(wrapper); + if(count>0L){ + return R.error("手机号已被注册"); + } + if(dbData == null){ + sysUserService.save(param); + }else { + sysUserService.updateById(param); + } + if(param.getId()!=null&& com.qs.serve.common.util.CollectionUtil.isNotEmpty(userBo.getRoleIds())){ + sysRoleService.saveUserRole4Edit(userBo.getRoleIds(),param.getId()); + } + } + return R.ok(); + } + +} diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRuleController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRuleController.java index c0f7a53d..e32060fc 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRuleController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRuleController.java @@ -111,7 +111,7 @@ public class BmsRuleController { lqw.eq(BmsRuleRegion::getTypeFlag,type); List ruleRegions = bmsRuleRegionService.list(lqw); if(CollectionUtil.isNotEmpty(ruleRegions)){ - List regionIds = ruleRegions.stream().map(BmsRuleRegion::getRegionId).collect(Collectors.toList()); + List regionIds = ruleRegions.stream().map(BmsRuleRegion::getRegionId).collect(Collectors.toList()); List regionList = bmsRegionService.listByIds(regionIds); return R.byPageHelperList(regionIds,regionList); } @@ -142,8 +142,8 @@ public class BmsRuleController { public R addItem(@RequestBody @Valid BmsRuleBo bmsRule){ Long ruleId = bmsRule.getId(); List skuIds = bmsRule.getSkuIds(); - List banSaleRegionIds = bmsRule.getBanSaleRegionIds(); - List onlySaleRegionIds = bmsRule.getOnlySaleRegionIds(); + List banSaleRegionIds = bmsRule.getBanSaleRegionIds(); + List onlySaleRegionIds = bmsRule.getOnlySaleRegionIds(); if(CollectionUtil.isNotEmpty(bmsRule.getSkuIds())){ List ruleSkuList = new ArrayList<>(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); @@ -210,8 +210,8 @@ public class BmsRuleController { public R removeItem(@RequestBody @Valid BmsRuleBo bmsRule){ Long ruleId = bmsRule.getId(); List skuIds = bmsRule.getSkuIds(); - List banSaleRegionIds = bmsRule.getBanSaleRegionIds(); - List onlySaleRegionIds = bmsRule.getOnlySaleRegionIds(); + List banSaleRegionIds = bmsRule.getBanSaleRegionIds(); + List onlySaleRegionIds = bmsRule.getOnlySaleRegionIds(); if(CollectionUtil.isNotEmpty(bmsRule.getSkuIds())){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(BmsRuleSku::getRuleId,ruleId); diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index d196915b..f6b5821e 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java @@ -17,6 +17,7 @@ import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam; import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam2; +import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam3; import com.qs.serve.modules.sys.service.SysUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -179,6 +180,19 @@ public class BmsSupplierController { return R.ok(); } + /** + * 更改客户其它用户授权 + * @return + */ + @PostMapping("/relateOtherUsers") + @PreAuthorize("hasRole('bms:supplier:update')") + public R relateOtherUsers(@RequestBody SysRelateSuppliersParam3 param){ + BmsSupplier bmsSupplier = new BmsSupplier(); + bmsSupplier.setId(param.getSupplierId().toString()); + bmsSupplier.setOtherUserIds(param.getUserIds()); + return R.ok(); + } + /** * 根据ID查询 * @param id @@ -268,18 +282,7 @@ public class BmsSupplierController { return R.ok(); } - /** - * 批量编辑 - * @param param - * @return - */ - @PostMapping("/editBatch") - @SysLog(module = SystemModule.BASE, title = "供应商", biz = BizType.INSERT) - @PreAuthorize("hasRole('bms:supplier:insert')") - public R editBatch(@RequestBody @Valid BmsSupplierBatchBo param){ - bmsSupplierService.editBatch(param); - return R.ok(); - } + /** * 显示关联 diff --git a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierApi.java b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierApi.java index 53120e1b..c4c97cd0 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierApi.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierApi.java @@ -48,6 +48,7 @@ public class BmsSupplierApi { return R.byEmptyList(); } param.setCurrUserId(wxUser.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/BmsRuleRegion.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsRuleRegion.java index c51ab22c..ff611603 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsRuleRegion.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsRuleRegion.java @@ -35,7 +35,7 @@ public class BmsRuleRegion implements Serializable { /** 区域ID */ @NotNull(message = "区域ID不能为空") - private Long regionId; + private String regionId; /** 类型:0->只售;1->禁售 */ @NotNull(message = "类型:0->只售;1->禁售不能为空") diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index cde41ec5..c995604e 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; import lombok.Data; +import org.apache.ibatis.type.JdbcType; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -20,7 +22,7 @@ import javax.validation.constraints.NotBlank; * @since 2022-10-11 */ @Data -@TableName("bms_supplier") +@TableName(value = "bms_supplier",autoResultMap = true) public class BmsSupplier implements Serializable { private static final long serialVersionUID = 1L; @@ -68,6 +70,15 @@ public class BmsSupplier implements Serializable { /** 负责人 */ private String userName; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] otherUserIds; + + /** 停用 */ + private Integer stopFlag; + + /** 所属账套 */ + private String belong; + /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRuleBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRuleBo.java index b4b64318..b664b805 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRuleBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRuleBo.java @@ -24,9 +24,9 @@ public class BmsRuleBo { private List skuIds; /** 只售区域id */ - private List onlySaleRegionIds; + private List onlySaleRegionIds; /** 禁售区域id */ - private List banSaleRegionIds; + private List banSaleRegionIds; } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java index 698217c4..6b877f50 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java @@ -26,21 +26,21 @@ public class BmsSupplierBatchBo { @Length(max = 20,message = "客户编码长度不能超过20字") private String code; - /** 父级编码,空表无父级 */ + /** 客户父级编码(空为无父级) */ private String parentCode; - /** 区域ID */ - private Long regionId; + /** 区域编码 */ + private Long regionCode; - /** 详细地址 */ + /** 客户地址 */ private String address; - /** 名称 */ + /** 客户名称 */ @NotBlank(message = "名称不能为空") private String name; - /** 归属ERP编码,如JSL、JSB、KL 对应ERP信息表作显示 */ - @NotBlank(message = "名称不能为空") + /** 账套编码 */ + @NotBlank(message = "账套编码不能为空") private String belong; } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java index d7c6dd09..21978978 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java @@ -39,4 +39,7 @@ public class BmsSupplierBo { /** 负责人ID */ private String mgrId; + /** 其它负责人 */ + private String[] otherMgrIds; + } diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java index 6b917815..2cb566dd 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java @@ -18,7 +18,7 @@ public interface BmsSupplierService extends IService { void edit(BmsSupplierBo param); - BmsSupplier getByCode(String code); + BmsSupplier getByCode(String code,String belong); List listChild(String pid); diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java index 09f1867f..329a9b91 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.bms.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bms.entity.BmsRegion; @@ -47,6 +48,9 @@ public class BmsSupplierServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); lqw.eq(BmsSupplier::getCode,code); + lqw.eq(BmsSupplier::getBelong,belong); return this.getOne(lqw,false); } @@ -92,15 +97,16 @@ public class BmsSupplierServiceImpl extends ServiceImpl suppliers = this.list(lqw); for (BmsSupplier supplier : suppliers) { - BmsSupplier parentSupplier = this.getByCode(supplier.getParentCode()); + BmsSupplier parentSupplier = this.getByCode(supplier.getParentCode(),supplier.getBelong()); if(parentSupplier==null){ log.warn("无效的供应商父级编码:{}",supplier.getParentCode()); supplier.setPid("0"); @@ -132,7 +138,7 @@ public class BmsSupplierServiceImpl extends ServiceImpl saveBatch(@RequestBody @Valid SysUserBatchBo batchBo){ - for (SysUserBo userBo : batchBo.getUserList()) { - SysUser dbData = sysUserService.getById(userBo.getId()); - SysUser param = CopierUtil.copy(userBo,dbData==null?new SysUser():dbData); - //设置普通管理员 - param.setSuperFlag(0); - param.setTenantId(AuthContextUtils.getTenant()); - param.setAccount(param.getMobile()); - param.setPassword(SecureUtil.md5(GySysConst.DEFAULT_PASSWORD)); - if(param.getMobile()!=null){ - param.setAccount(param.getMobile()); - } - //检查手机号是否已用 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.ne(SysUser::getId,userBo.getId()); - wrapper.eq(SysUser::getMobile,param.getMobile()); - Long count = sysUserService.count(wrapper); - if(count>0L){ - return R.error("手机号已被注册"); - } - if(dbData == null){ - sysUserService.save(param); - }else { - sysUserService.updateById(param); - } - if(param.getId()!=null&& com.qs.serve.common.util.CollectionUtil.isNotEmpty(userBo.getRoleIds())){ - sysRoleService.saveUserRole4Edit(userBo.getRoleIds(),param.getId()); - } - } - return R.ok(); - } - /** * 重置密码 * @param uid diff --git a/src/main/java/com/qs/serve/modules/sys/entity/SysDict.java b/src/main/java/com/qs/serve/modules/sys/entity/SysDict.java index 8c278b68..76ec2cc4 100644 --- a/src/main/java/com/qs/serve/modules/sys/entity/SysDict.java +++ b/src/main/java/com/qs/serve/modules/sys/entity/SysDict.java @@ -33,7 +33,7 @@ public class SysDict implements Serializable { /** */ @TableField(value = "key_val") @Length(max = 50,message = "长度不能超过50字") - private String key; + private String keyVal; /** */ @Length(max = 50,message = "长度不能超过50字") diff --git a/src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam3.java b/src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam3.java new file mode 100644 index 00000000..782df625 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sys/entity/bo/SysRelateSuppliersParam3.java @@ -0,0 +1,25 @@ +package com.qs.serve.modules.sys.entity.bo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/10/25 + */ +@Data +public class SysRelateSuppliersParam3 { + + /** + * 删除传入空数组 + */ + String[] userIds; + + /** + * 供应商id列表 + */ + @NotNull + Long supplierId; + +} diff --git a/src/main/resources/mapper/bms/BmsSupplierMapper.xml b/src/main/resources/mapper/bms/BmsSupplierMapper.xml index d8b66f12..96f01132 100644 --- a/src/main/resources/mapper/bms/BmsSupplierMapper.xml +++ b/src/main/resources/mapper/bms/BmsSupplierMapper.xml @@ -4,6 +4,8 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + @@ -14,12 +16,19 @@ + + + + + + + @@ -32,6 +41,12 @@ bms_supplier.`code`, bms_supplier.`pid`, bms_supplier.`parent_code`, + bms_supplier.`user_id`, + bms_supplier.`user_code`, + bms_supplier.`user_name`, + bms_supplier.`other_user_ids`, + bms_supplier.`stop_flag`, + bms_supplier.`belong`, bms_supplier.`create_time`, bms_supplier.`create_by`, bms_supplier.`update_time`, @@ -54,6 +69,8 @@ and `bms_supplier`.`code` = #{query.code} and `bms_supplier`.`pid` = #{query.pid} and `bms_supplier`.`parent_code` = #{query.parentCode} + and `bms_supplier`.`stop_flag` = #{query.stopFlag} + and `bms_supplier`.`belong` = #{query.belong} and `bms_supplier`.`create_time` = #{query.createTime} and `bms_supplier`.`create_by` = #{query.createBy} and `bms_supplier`.`update_time` = #{query.updateTime} @@ -61,7 +78,7 @@ and `bms_supplier`.`tenant_id` = #{query.tenantId} and `bms_supplier`.`del_flag` = #{query.delFlag} - and `bms_supplier_user`.`user_id` = #{query.currUserId} + and (`bms_supplier`.`user_id` = #{query.currUserId} or FIND_IN_SET(#{query.currUserId},`bms_supplier`.`other_user_ids`) )