zhouli 9 months ago
parent
commit
72afe69914

+ 15 - 2
kd-service-api/kd-system-api/src/main/java/org/sky/system/pojo/entity/Tenant.java

@@ -1,5 +1,6 @@
  package org.sky.system.pojo.entity;
 
+ import com.baomidou.mybatisplus.annotation.TableField;
  import com.baomidou.mybatisplus.annotation.TableName;
  import com.fasterxml.jackson.annotation.JsonFormat;
  import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@@ -41,8 +42,15 @@ public class Tenant extends BaseEntity {
 	@Schema(description = "统一社会信用代码")
 	private String uscc;
 
-	@Schema(description = "logo地址")
-	private String logoUrl;
+	@Schema(description = "所属省市区code")
+	private String regionCode;
+
+	@Schema(description = "所属省市区")
+	@TableField(exist = false)
+	private String regionName;
+
+	@Schema(description = "VIP年度,数组")
+	private String vipYears;
 
 	/**
 	 * 域名地址
@@ -59,11 +67,16 @@ public class Tenant extends BaseEntity {
 	 */
 	@Schema(description = "联系人")
 	private String linkman;
+
 	/**
 	 * 联系电话
 	 */
 	@Schema(description = "联系电话")
 	private String contactNumber;
+
+	@Schema(description = "营销员")
+	private String saleman;
+
 	/**
 	 * 联系地址
 	 */

+ 29 - 15
kd-service/kd-system/src/main/java/org/sky/system/controller/TenantController.java

@@ -6,9 +6,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.enums.ParameterIn;
-import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.validation.Valid;
 import lombok.AllArgsConstructor;
@@ -34,7 +31,6 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 import static org.sky.core.cache.constant.CacheConstant.SYS_CACHE;
 import static org.sky.core.tenant.constant.TenantBaseConstant.TENANT_DATASOURCE_CACHE;
@@ -75,17 +71,29 @@ public class TenantController extends KdController {
 	 */
 //	@IsAdmin
 	@GetMapping("/list")
-	@Parameters({
-		@Parameter(name = "tenantId", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
-		@Parameter(name = "tenantName", description = "角色别名", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
-		@Parameter(name = "contactNumber", description = "联系电话", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
-	})
+//	@Parameters({
+//		@Parameter(name = "tenantId", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
+//		@Parameter(name = "tenantName", description = "角色别名", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
+//		@Parameter(name = "contactNumber", description = "联系电话", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
+//	})
+//	@ApiOperationSupport(order = 2)
+//	@Operation(summary = "分页", description = "传入tenant")
+//	public R<IPage<Tenant>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> tenant, Query query, KdUser kdUser) {
+//		TenantWrapper.build().entityQuery(tenant);
+//		QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class);
+//		IPage<Tenant> pages = tenantService.page(Condition.getPage(query), (!kdUser.getTenantId().equals(KdConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, kdUser.getTenantId()) : queryWrapper);
+//		return R.data(pages);
+//	}
+
 	@ApiOperationSupport(order = 2)
 	@Operation(summary = "分页", description = "传入tenant")
-	public R<IPage<Tenant>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> tenant, Query query, KdUser kdUser) {
-		TenantWrapper.build().entityQuery(tenant);
-		QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class);
-		IPage<Tenant> pages = tenantService.page(Condition.getPage(query), (!kdUser.getTenantId().equals(KdConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, kdUser.getTenantId()) : queryWrapper);
+	public R<IPage<Tenant>> list(Tenant tenant, Query query ) {
+//		TenantWrapper.build().entityQuery(tenant);
+//		QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class);
+//		IPage<Tenant> pages = tenantService.page(Condition.getPage(query), (!kdUser.getTenantId().equals(KdConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, kdUser.getTenantId()) : queryWrapper);
+//		return R.data(pages);
+
+		IPage<Tenant> pages = tenantService.selectTenantPage(Condition.getPage(query), tenant);
 		return R.data(pages);
 	}
 
@@ -124,6 +132,14 @@ public class TenantController extends KdController {
 		return R.status(tenantService.submitTenant(tenant));
 	}
 
+
+	@GetMapping("vip-years")
+	@ApiOperationSupport(order = 5)
+	@Operation(summary = "获取vip年度")
+	public R<List<String>> getVipYears(){
+		return R.data(tenantService.getVipYears());
+	}
+
 	/**
 	 * 删除至回收站
 	 */
@@ -239,6 +255,4 @@ public class TenantController extends KdController {
 		CacheUtil.evict(SYS_CACHE, TENANT_PACKAGE_ID, tenantId, Boolean.FALSE);
 		return R.status(tenantService.update(Wrappers.<Tenant>update().lambda().set(Tenant::getPackageId, packageId).eq(Tenant::getTenantId, tenantId)));
 	}
-
-
 }

+ 5 - 1
kd-service/kd-system/src/main/java/org/sky/system/rule/tenant/TenantUserRule.java

@@ -31,9 +31,13 @@ public class TenantUserRule extends RuleComponent {
 		// 新建租户对应的默认管理用户
 		User user = new User();
 		user.setTenantId(tenant.getTenantId());
+//		user.setName("admin");
+//		user.setRealName("admin");
+		user.setAccount("admin");
 		user.setName("admin");
 		user.setRealName("admin");
-		user.setAccount("admin");
+		user.setAccount(tenant.getUscc());
+//		user.setAccount("91110108MA01XYZ123");
 		// 获取参数配置的密码
 		String password = Func.toStr(ParamCache.getValue(PASSWORD_KEY), DEFAULT_PASSWORD);
 		user.setPassword(password);

+ 5 - 0
kd-service/kd-system/src/main/java/org/sky/system/service/ITenantService.java

@@ -72,4 +72,9 @@ public interface ITenantService extends BaseService<Tenant> {
 	 */
 	boolean setting(Integer accountNumber, Date expireTime, String ids);
 
+	/**
+	 * 查询租户的vip年份,因为高频,需要做缓存
+	 * @return
+	 */
+	List<String> getVipYears();
 }

+ 65 - 36
kd-service/kd-system/src/main/java/org/sky/system/service/impl/TenantServiceImpl.java

@@ -1,35 +1,40 @@
- package org.sky.system.service.impl;
-
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import lombok.AllArgsConstructor;
- import org.sky.core.cache.utils.CacheUtil;
- import org.sky.core.literule.engine.RuleEngineExecutor;
- import org.sky.core.literule.provider.LiteRuleResponse;
- import org.sky.core.log.exception.ServiceException;
- import org.sky.core.mp.base.BaseServiceImpl;
- import org.sky.core.mp.enums.StatusType;
- import org.sky.core.tenant.TenantId;
- import org.sky.core.tool.constant.KdConstant;
- import org.sky.core.tool.jackson.JsonUtil;
- import org.sky.core.tool.support.Kv;
- import org.sky.core.tool.utils.DesUtil;
- import org.sky.core.tool.utils.Func;
- import org.sky.system.mapper.TenantMapper;
- import org.sky.system.pojo.entity.*;
- import org.sky.system.rule.context.TenantContext;
- import org.sky.system.service.*;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
-
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
-
- import static org.sky.common.constant.TenantConstant.DES_KEY;
- import static org.sky.core.cache.constant.CacheConstant.SYS_CACHE;
- import static org.sky.system.cache.SysCache.TENANT_TENANT_ID;
- import static org.sky.system.rule.constant.TenantRuleConstant.TENANT_CHAIN_ID;
+package org.sky.system.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.sky.core.cache.utils.CacheUtil;
+import org.sky.core.literule.engine.RuleEngineExecutor;
+import org.sky.core.literule.provider.LiteRuleResponse;
+import org.sky.core.log.exception.ServiceException;
+import org.sky.core.mp.base.BaseServiceImpl;
+import org.sky.core.mp.enums.StatusType;
+import org.sky.core.redis.cache.KdRedis;
+import org.sky.core.secure.utils.SecureUtil;
+import org.sky.core.tenant.TenantId;
+import org.sky.core.tool.constant.KdConstant;
+import org.sky.core.tool.jackson.JsonUtil;
+import org.sky.core.tool.support.Kv;
+import org.sky.core.tool.utils.DesUtil;
+import org.sky.core.tool.utils.Func;
+import org.sky.system.cache.RegionCache;
+import org.sky.system.mapper.RegionMapper;
+import org.sky.system.mapper.TenantMapper;
+import org.sky.system.pojo.entity.*;
+import org.sky.system.rule.context.TenantContext;
+import org.sky.system.service.*;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.sky.common.constant.TenantConstant.DES_KEY;
+import static org.sky.core.cache.constant.CacheConstant.SYS_CACHE;
+import static org.sky.system.cache.SysCache.TENANT_TENANT_ID;
+import static org.sky.system.rule.constant.TenantRuleConstant.TENANT_CHAIN_ID;
 
 /**
  * 服务实现类
@@ -38,7 +43,7 @@
  */
 @Service
 @AllArgsConstructor
-public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> implements  ITenantService {
+public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> implements ITenantService {
 
 	private final TenantId tenantIdGenerator;
 	private final IRoleService roleService;
@@ -46,14 +51,26 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
 	private final IDeptService deptService;
 	private final IPostService postService;
 	private final IRoleMenuService roleMenuService;
-	private final  IDictBizService dictBizService;
+	private final IDictBizService dictBizService;
 	private final IUserService userService;
-	private final  IUserDeptService userDeptService;
+	private final IUserDeptService userDeptService;
 	private final RuleEngineExecutor ruleExecutor;
+	private final RegionMapper regionMapper;
+	private final KdRedis redis;
 
 	@Override
 	public IPage<Tenant> selectTenantPage(IPage<Tenant> page, Tenant tenant) {
-		return page.setRecords(baseMapper.selectTenantPage(page, tenant));
+		List<Tenant> tenants = baseMapper.selectTenantPage(page, tenant);
+		for (Tenant t : tenants) {
+			if (Func.isNotEmpty(t.getRegionCode())) {
+				Region region = RegionCache.getByCode(t.getRegionCode());
+//				Region region = regionMapper.selectOne(Wrappers.<Region>lambdaQuery().eq(Region::getCode, t.getRegionCode()));
+				if (region != null) {
+					t.setRegionName(region.getProvinceName() + "-" + region.getCityName() + "-" + region.getDistrictName());
+				}
+			}
+		}
+		return page.setRecords(tenants);
 	}
 
 	@Override
@@ -105,6 +122,7 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
 		}
 		CacheUtil.clear(SYS_CACHE, tenant.getTenantId());
 		CacheUtil.evict(SYS_CACHE, TENANT_TENANT_ID, tenant.getTenantId(), Boolean.FALSE);
+		CacheUtil.clear("kd:vip:years");
 		return super.saveOrUpdate(tenant);
 	}
 
@@ -239,4 +257,15 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
 		return true;
 	}
 
+	@Override
+	public List<String> getVipYears() {
+ 		return CacheUtil.get("kd:vip:years", "vip:years:", SecureUtil.getTenantId(), () -> {
+			Tenant tenant = this.baseMapper.selectOne(Wrappers.<Tenant>lambdaQuery().eq(Tenant::getTenantId, SecureUtil.getTenantId()));
+			if (Func.notNull(tenant) && Func.isNotBlank(tenant.getVipYears())) {
+				return JSON.parseArray(tenant.getVipYears(), String.class);
+			}
+			return null;
+		});
+	}
+
 }

+ 2 - 1
kd-service/kd-system/src/main/java/org/sky/system/service/impl/UserServiceImpl.java

@@ -157,7 +157,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 	@Override
 	public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) {
 		List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
-		return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId));
+		List<User> users = baseMapper.selectUserPage(page, user, deptIdList, tenantId);
+		return page.setRecords(users);
 	}
 
 	@Override