package com.hx.other.service.controller; import com.hx.common.BaseController; import com.hx.other.service.model.Employee; import com.hx.other.service.model.OrdersTotal; import com.hx.other.service.model.PerformanceInfo; import com.hx.other.service.model.User; import com.hx.other.service.service.EmployeeService; import com.hx.other.service.service.OrdersTotalService; import com.hx.other.service.service.PerformanceInfoService; import com.hx.other.service.service.UserService; import com.hx.resultTool.Result; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; /** * @Author: cmg * @Date: 2023/4/23 15:30 */ @RestController @RequestMapping("/init/data") public class InitDataController extends BaseController { @Resource private EmployeeService employeeService; @Resource private UserService userService; @Resource private OrdersTotalService ordersTotalService; @Resource private PerformanceInfoService performanceInfoService; @RequestMapping("/data") public Result initData() { String[] XING = new String[]{"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许"}; String[] MING = new String[]{"晓", "霜", "碧", "凡", "夏", "菡", "曼", "香", "若", "烟", "半", "梦", "雅", "绿", "冰", "蓝", "灵", "槐", "平", "安", "书", "翠", "翠", "风", "代", "云", "梦", "曼", "幼", "翠", "梦", "琪", "之", "雅", "之", "桃", "慕", "青", "尔", "岚", "初", "夏", "沛", "菡", "傲", "珊", "曼", "文", "乐", "菱", "惜", "文", "香", "寒",}; String[] USER_LEVEL = new String[]{"准会员", "普卡", "潜客", "金卡", "钻石卡", "银卡", "黑钻卡"}; String[] CHANNEL_TYPE = new String[]{"PR渠道", "TMK渠道", "三方平台", "会员", "前员工", "医生", "天猫", "大众点评", "微博", "抖音", "新氧", "爱尔健员工", "私域", "百度", "红人合作", "艾芯荟", "路过"}; String[] SHOP_ID = new String[]{"4eefc8a1bfa611ecaeb57cd30a51ed1a", "605e391b620d11ebb06bb8599f4cafbe", "b88e3cd8620d11ebb06bb8599f4cafbe", "b96aa6d1620d11ebb06bb8599f4cafbe", "bb4e8a7d620d11ebb06bb8599f4cafbe", "cd8b395f945c11ecaeb57cd30a51ed1a"}; String[] SHOP_NAME = new String[]{"北京光华店", "新天地店", "东银店", "", "杭州店", "静安店", "古北店"}; String[] USER_STATUS = new String[]{"active_member", "sleeping_member", "deep_sleep_member"}; String[] PROJECT_NAME = new String[]{"玻尿酸", "Fotona","海菲秀","皮秒","乔雅登","OPT"}; String[] PROJECT_ID = new String[]{"000075ee7afc11ebb06bb8599f4cafbe", "007cc926647911ebb06bb8599f4cafbe","018cbc9e8b9711ebb06bb8599f4cafbe","01abe206620e11ebb06bb8599f4cafbe", "035d7079647711ebb06bb8599f4cafbe","03b0269b620e11ebb06bb8599f4cafbe"}; Random random = new Random(); //初始化顾问 Employee employee = new Employee(); employee.setCnName("王小雅"); employeeService.insert(employee); int xLen = XING.length; int mLen = MING.length; Set set = new HashSet<>(); List employeeList = new ArrayList(); for(int i = 0;i < 30;i ++) { employee = new Employee(); employee.setCnName(XING[random.nextInt(xLen)] + MING[random.nextInt(mLen)]); if(set.contains(employee.getCnName())) { continue; } set.add(employee.getCnName()); employeeService.insert(employee); employeeList.add(employee); } //初始化用户 User user; int ranInt; Calendar calendar; List userList = new ArrayList<>(); set.clear(); Map map = new HashMap<>(); for(int i = 0;i < 200;i ++) { user = new User(); user.setName(XING[random.nextInt(xLen)] + MING[random.nextInt(mLen)]); if(set.contains(user.getName())) { continue; } set.add(user.getName()); user.setGender(random.nextInt(2) + 1); ranInt = random.nextInt(employeeList.size()); user.setHisCorpUserId(employeeList.get(ranInt).getId()); user.setHisCorpUserName(employeeList.get(ranInt).getCnName()); user.setUserLevel(USER_LEVEL[random.nextInt(USER_LEVEL.length)]); user.setChannelType(CHANNEL_TYPE[random.nextInt(CHANNEL_TYPE.length)]); ranInt = random.nextInt(SHOP_ID.length); user.setShopId(SHOP_ID[ranInt]); user.setShopName(SHOP_NAME[ranInt]); user.setUserStatus(USER_STATUS[random.nextInt(USER_STATUS.length)]); calendar = Calendar.getInstance(); calendar.add(Calendar.YEAR, -1); calendar.add(Calendar.DAY_OF_YEAR, random.nextInt(720) - 360); user.setCreateTime(calendar.getTime()); userService.insert(user); userList.add(user); map.put(user.getId(), user); } //初始化订单 OrdersTotal ordersTotal; List ordersTotalList = new ArrayList<>(); for(int i = 0;i < 10000; i ++) { ordersTotal = new OrdersTotal(); ordersTotal.setActualTotal(BigDecimal.valueOf(random.nextInt(10000))); ordersTotal.setOrderNo(UUID.randomUUID().toString()); user = userList.get(random.nextInt(userList.size())); ordersTotal.setShopId(user.getShopId()); ordersTotal.setShopName(user.getShopName()); ordersTotal.setUserId(user.getId()); ordersTotal.setUserName(user.getName()); calendar = Calendar.getInstance(); calendar.add(Calendar.YEAR, -1); calendar.add(Calendar.DAY_OF_YEAR, random.nextInt(720) - 360); ordersTotal.setCreateTime(calendar.getTime()); ordersTotalService.insert(ordersTotal); ordersTotalList.add(ordersTotal); } //初始化业绩 PerformanceInfo performanceInfo; for(int i = 0;i < 10000;i ++) { performanceInfo = new PerformanceInfo(); ranInt = random.nextInt(ordersTotalList.size()); ordersTotal = ordersTotalList.get(ranInt); performanceInfo.setPerformanceTotal(ordersTotal.getActualTotal()); user = map.get(ordersTotal.getUserId()); performanceInfo.setBelongConsultantId(user.getHisCorpUserName()); performanceInfo.setBelongConsultantId(user.getHisCorpUserId()); performanceInfo.setUserId(user.getId()); performanceInfo.setUserName(user.getName()); employee = employeeList.get(random.nextInt(employeeList.size())); performanceInfo.setDeductionDoctorId(employee.getId()); performanceInfo.setDeductionDoctorName(employee.getCnName()); performanceInfo.setDeductionTime(ordersTotal.getCreateTime()); employee = employeeList.get(random.nextInt(employeeList.size())); performanceInfo.setNurseCorpUserId(employee.getId()); performanceInfo.setNurseCorpUserName(employee.getCnName()); ranInt = random.nextInt(SHOP_ID.length); performanceInfo.setServiceShopId(SHOP_ID[ranInt]); performanceInfo.setServiceShopName(SHOP_NAME[ranInt]); performanceInfo.setCreateTime(ordersTotal.getCreateTime()); ranInt = random.nextInt(PROJECT_ID.length); performanceInfo.setCommonId(PROJECT_ID[ranInt]); performanceInfo.setCommonName(PROJECT_NAME[ranInt]); performanceInfoService.insert(performanceInfo); } return Result.success(); } }