src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -68,5 +68,8 @@ registration.excludePathPatterns("/api/ai/company/list"); registration.excludePathPatterns("/api/ai/common/**"); registration.excludePathPatterns("/api/ai/videoPlay/**"); registration.excludePathPatterns("/api/yh/agent/categorySysList"); registration.excludePathPatterns("/api/yh/agent/agentSysList"); } } src/main/java/cc/mrbird/febs/common/utils/YHLoginUserUtil.java
New file @@ -0,0 +1,20 @@ package cc.mrbird.febs.common.utils; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.yinhe.entity.YhAiMember; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /** * @author xxx * @date 2020-08-24 **/ public class YHLoginUserUtil { public static YhAiMember getLoginUser() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); return (YhAiMember) request.getSession().getAttribute("member"); } } src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java
@@ -19,46 +19,46 @@ @ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true") public class BaiduJob { @Autowired private RedisUtils redisUtils; @Resource RestTemplate restTemplate; @Scheduled(cron = "0 0 1 * * ? ") public void getAccessToken(){ // 官网获取的 API Key 更新为你注册的 String clientId = "MPHXcBxkGLIDOmoaahS9pIB7"; // 官网获取的 Secret Key 更新为你注册的 String clientSecret = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw"; String authHost = "https://aip.baidubce.com/oauth/2.0/token?"; String getAccessTokenUrl = authHost // 1. grant_type为固定参数 + "grant_type=client_credentials" // 2. 官网获取的 API Key + "&client_id=" + clientId // 3. 官网获取的 Secret Key + "&client_secret=" + clientSecret; String jsonStr = restTemplate.getForObject(getAccessTokenUrl, String.class); /** * 返回结果 * {"access_token":"ACCESS_TOKEN","expires_in":7200} */ if (!jsonStr.contains("access_token")) { System.out.println("获取access_token失败"); } JSONObject jsonObject = JSONObject.parseObject(jsonStr); String accessToken = jsonObject.getString("access_token"); String accessTokenKey = WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY; if (StrUtil.isEmpty(accessToken)) { log.error("获取baidu access_token失败: {}" , jsonObject.getString("errmsg")); throw new ApiException("获取access token失败"); } else { log.info("baidu access_token : {}",accessToken); System.out.println(accessToken); redisUtils.set(accessTokenKey,accessToken); } } // @Autowired // private RedisUtils redisUtils; // @Resource // RestTemplate restTemplate; // // @Scheduled(cron = "0 0 1 * * ? ") // public void getAccessToken(){ // // 官网获取的 API Key 更新为你注册的 // String clientId = "MPHXcBxkGLIDOmoaahS9pIB7"; // // 官网获取的 Secret Key 更新为你注册的 // String clientSecret = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw"; // String authHost = "https://aip.baidubce.com/oauth/2.0/token?"; // String getAccessTokenUrl = authHost // // 1. grant_type为固定参数 // + "grant_type=client_credentials" // // 2. 官网获取的 API Key // + "&client_id=" + clientId // // 3. 官网获取的 Secret Key // + "&client_secret=" + clientSecret; // String jsonStr = restTemplate.getForObject(getAccessTokenUrl, String.class); // // /** // * 返回结果 // * {"access_token":"ACCESS_TOKEN","expires_in":7200} // */ // if (!jsonStr.contains("access_token")) { // System.out.println("获取access_token失败"); // } // JSONObject jsonObject = JSONObject.parseObject(jsonStr); // String accessToken = jsonObject.getString("access_token"); // // String accessTokenKey = WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY; // if (StrUtil.isEmpty(accessToken)) { // log.error("获取baidu access_token失败: {}" , jsonObject.getString("errmsg")); // throw new ApiException("获取access token失败"); // } else { // log.info("baidu access_token : {}",accessToken); // System.out.println(accessToken); // redisUtils.set(accessTokenKey,accessToken); // } // } } src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
@@ -27,77 +27,77 @@ @ConditionalOnProperty(prefix = "system", name = "job", havingValue = "false") public class OrderOvertimeJob { @Autowired private MallOrderInfoMapper orderInfoMapper; @Autowired private MallMemberMapper mallMemberMapper; @Autowired private MallOrderItemMapper mallOrderItemMapper; @Autowired private MallGoodsMapper mallGoodsMapper; @Autowired private MallGoodsSkuMapper mallGoodsSkuMapper; @Autowired private MallMemberCouponMapper mallMemberCouponMapper; @Scheduled(cron = "0 0/5 * * * ? ") public void overtimeJob() { log.info("订单超时任务执行"); List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoUpTime(OrderStatusEnum.WAIT_PAY.getValue()); if (CollUtil.isNotEmpty(orderList)) { for (MallOrderInfo orderInfo : orderList) { //更新订单状态 orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY); orderInfoMapper.updateById(orderInfo); List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); if(CollUtil.isNotEmpty(mallOrderItemList)){ for(MallOrderItem mallOrderItem : mallOrderItemList){ MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId()); if (sku == null) { throw new FebsException("购买商品或sku不存在"); } // if (sku.getStock() < mallOrderItem.getCnt()) { // @Autowired // private MallOrderInfoMapper orderInfoMapper; // // @Autowired // private MallMemberMapper mallMemberMapper; // // @Autowired // private MallOrderItemMapper mallOrderItemMapper; // // @Autowired // private MallGoodsMapper mallGoodsMapper; // // @Autowired // private MallGoodsSkuMapper mallGoodsSkuMapper; // // @Autowired // private MallMemberCouponMapper mallMemberCouponMapper; // // @Scheduled(cron = "0 0/5 * * * ? ") // public void overtimeJob() { // log.info("订单超时任务执行"); // List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoUpTime(OrderStatusEnum.WAIT_PAY.getValue()); // if (CollUtil.isNotEmpty(orderList)) { // for (MallOrderInfo orderInfo : orderList) { // //更新订单状态 // orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); // orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY); // orderInfoMapper.updateById(orderInfo); // // List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); // if(CollUtil.isNotEmpty(mallOrderItemList)){ // for(MallOrderItem mallOrderItem : mallOrderItemList){ // MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId()); // if (sku == null) { // throw new FebsException("购买商品或sku不存在"); // } // //// if (sku.getStock() < mallOrderItem.getCnt()) { //// throw new FebsException(sku.getSkuName() + "库存不足"); //// } // // MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); // Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt()); // if(1 != goodsResult){ // throw new FebsException(mallGoods.getGoodsName() + "库存不足"); // } // // Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); // if(1 != skuResult){ // throw new FebsException(sku.getSkuName() + "库存不足"); // } MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt()); if(1 != goodsResult){ throw new FebsException(mallGoods.getGoodsName() + "库存不足"); } Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); if(1 != skuResult){ throw new FebsException(sku.getSkuName() + "库存不足"); } Long memberCouponId = mallOrderItem.getMemberCouponId(); MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId); if(ObjectUtil.isNotEmpty(mallMemberCoupon)){ mallMemberCoupon.setState(1); mallMemberCouponMapper.updateById(mallMemberCoupon); } } } } } } @Autowired private RedisUtils redisUtils; @Scheduled(cron = "0/5 * * * * ? ") public void wakeup() { redisUtils.set("wakeup", "wakeup"); } // Long memberCouponId = mallOrderItem.getMemberCouponId(); // MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId); // if(ObjectUtil.isNotEmpty(mallMemberCoupon)){ // mallMemberCoupon.setState(1); // mallMemberCouponMapper.updateById(mallMemberCoupon); // } // } // } // } // } // // } // // // // @Autowired // private RedisUtils redisUtils; // // @Scheduled(cron = "0/5 * * * * ? ") // public void wakeup() { // redisUtils.set("wakeup", "wakeup"); // } } src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java
@@ -37,170 +37,170 @@ @ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true") public class OrderSettlementJob { @Autowired private MallOrderInfoMapper mallOrderInfoMapper; @Autowired private MallOrderItemMapper mallOrderItemMapper; @Autowired private IApiMallMemberWalletService memberWalletService; @Autowired private IMallMoneyFlowService mallMoneyFlowService; @Autowired private MallMemberMapper mallMemberMapper; @Autowired private MallGoodsSkuMapper mallGoodsSkuMapper; @Autowired private MallLeaderAchieveMapper mallLeaderAchieveMapper; @Autowired private MallTeamLeaderMapper mallTeamLeaderMapper; @Autowired private DataDictionaryCustomMapper dataDictionaryCustomMapper; @Autowired private IMemberProfitService memberProfitService; @Autowired private IMallAchieveService mallAchieveService; @Autowired private AgentProducer agentProducer; /** * 普通商品结算 */ // @Autowired // private MallOrderInfoMapper mallOrderInfoMapper; // // @Autowired // private MallOrderItemMapper mallOrderItemMapper; // // @Autowired // private IApiMallMemberWalletService memberWalletService; // // @Autowired // private IMallMoneyFlowService mallMoneyFlowService; // // @Autowired // private MallMemberMapper mallMemberMapper; // // @Autowired // private MallGoodsSkuMapper mallGoodsSkuMapper; // // @Autowired // private MallLeaderAchieveMapper mallLeaderAchieveMapper; // // @Autowired // private MallTeamLeaderMapper mallTeamLeaderMapper; // // @Autowired // private DataDictionaryCustomMapper dataDictionaryCustomMapper; // // @Autowired // private IMemberProfitService memberProfitService; // // @Autowired // private IMallAchieveService mallAchieveService; // // @Autowired // private AgentProducer agentProducer; // // /** // * 普通商品结算 // */ //// @Scheduled(cron = "0 0 0 * * ?") //// public void normalGoodsSettlementJob() { //// log.info("普通商品结算"); //// List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10)); //// if (CollUtil.isEmpty(orderInfos)) { //// return; //// } //// //// for (MallOrderInfo orderInfo : orderInfos) { //// MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId()); //// if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) { //// continue; //// } //// //// for (MallOrderItem item : orderInfo.getItems()) { //// MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId()); //// BigDecimal score = sku.getPresentPrice(); //// //// memberWalletService.add(score, member.getId(), "score"); //// mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); //// //// mallAchieveService.add(item.getId()); //// } //// //// // 普通商品动态分红结算 //// memberProfitService.dynamicProfit(orderInfo.getId(), 1); //// } //// } // // /** // * 自动确认收货 // */ // @Scheduled(cron = "0 0 0 * * ?") // public void normalGoodsSettlementJob() { // log.info("普通商品结算"); // List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10)); // if (CollUtil.isEmpty(orderInfos)) { // return; // } // // for (MallOrderInfo orderInfo : orderInfos) { // MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId()); // if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) { // continue; // } // // for (MallOrderItem item : orderInfo.getItems()) { // MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId()); // BigDecimal score = sku.getPresentPrice(); // // memberWalletService.add(score, member.getId(), "score"); // mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); // // mallAchieveService.add(item.getId()); // } // // // 普通商品动态分红结算 // memberProfitService.dynamicProfit(orderInfo.getId(), 1); // } // } /** * 自动确认收货 */ @Scheduled(cron = "0 0 0 * * ?") // @Scheduled(cron = "1 * * * * ?") public void orderAutoConfirmJob() { log.info("自动确认收货"); DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode()); Integer value = Integer.parseInt(dic.getValue()); List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value)); if(CollUtil.isNotEmpty(orderInfos)){ // for(MallOrderInfo orderInfo : orderInfos){ // MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); // Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch(); // if(1 == profitSwitch){ // BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent()); //// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); //// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN); // //生成一条团长提成记录 // Long id = orderInfo.getId(); // List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); // if(CollUtil.isNotEmpty(mallOrderItemList)){ // for(MallOrderItem mallOrderItem : mallOrderItemList){ // Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState(); // if(1 == state){ // MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve(); // mallLeaderAchieve.setMemberId(orderInfo.getMemberId()); // mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo()); // mallLeaderAchieve.setOrderItemId(mallOrderItem.getId()); // BigDecimal itemAmount = mallOrderItem.getAmount(); // mallLeaderAchieve.setAmount(itemAmount); // BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN); // mallLeaderAchieve.setProfitAmount(bigDecimal); // mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); // mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); // mallLeaderAchieveMapper.insert(mallLeaderAchieve); // } // } // } // } // } mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value)); orderInfos.forEach(item -> { agentProducer.sendGetScoreMsg(item.getId()); }); } } /** * 团长第二天才会结算前一天的所有提成 * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成 * 修改业绩的状态 * 并生成一条提成流水 */ // @Scheduled(cron = "0 0 1 * * ?") //// @Scheduled(cron = "1 * * * * ?") // public void leaderAchieveAuto() { // log.info("团长每日提成"); // //获取每日提成总数 // /** // * a.unique_code uniqueCode 团长特征码 // * , IFNULL(sum(a.amount),0) amount 每日提成总金额 // */ // DateTime dateTime = DateUtil.offsetDay(new Date(), -1); //// DateTime dateTime = DateUtil.offsetDay(new Date(), 0); // List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime); // if (CollUtil.isNotEmpty(allLeaderAchieve)) { // for (Map<String, String> map : allLeaderAchieve) { // String uniqueCode = map.get("uniqueCode"); // Object profitAmount = map.get("profitAmount"); // public void orderAutoConfirmJob() { // log.info("自动确认收货"); // DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode()); // Integer value = Integer.parseInt(dic.getValue()); // List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value)); // if(CollUtil.isNotEmpty(orderInfos)){ //// for(MallOrderInfo orderInfo : orderInfos){ //// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); //// Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch(); //// if(1 == profitSwitch){ //// BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent()); ////// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); ////// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN); //// //生成一条团长提成记录 //// Long id = orderInfo.getId(); //// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); //// if(CollUtil.isNotEmpty(mallOrderItemList)){ //// for(MallOrderItem mallOrderItem : mallOrderItemList){ //// Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState(); //// if(1 == state){ //// MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve(); //// mallLeaderAchieve.setMemberId(orderInfo.getMemberId()); //// mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo()); //// mallLeaderAchieve.setOrderItemId(mallOrderItem.getId()); //// BigDecimal itemAmount = mallOrderItem.getAmount(); //// mallLeaderAchieve.setAmount(itemAmount); //// BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN); //// mallLeaderAchieve.setProfitAmount(bigDecimal); //// mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); //// mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); //// mallLeaderAchieveMapper.insert(mallLeaderAchieve); //// } //// } //// } //// } //// } // mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value)); // // MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode); // Integer profitSwitch = mallTeamLeader.getProfitSwitch(); // if(1 == profitSwitch){ // //直接舍弃小数点的第三位 // BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN); // MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); // memberWalletService.addBalance(achieveMoney,mallMember.getId()); // String achieveNo = "TC."+ MallUtils.getOrderNum(); // mallMoneyFlowService.addMoneyFlow( // mallMember.getId(), // achieveMoney, // MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), // achieveNo, // FlowTypeEnum.BALANCE.getValue()); // // //更新到已提成状态 // mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); // } // } // orderInfos.forEach(item -> { // agentProducer.sendGetScoreMsg(item.getId()); // }); // } // } // public static void main(String[] args) { // BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN); // System.out.println(bigDecimal); // } // /** // * 团长第二天才会结算前一天的所有提成 // * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成 // * 修改业绩的状态 // * 并生成一条提成流水 // */ //// @Scheduled(cron = "0 0 1 * * ?") ////// @Scheduled(cron = "1 * * * * ?") //// public void leaderAchieveAuto() { //// log.info("团长每日提成"); //// //获取每日提成总数 //// /** //// * a.unique_code uniqueCode 团长特征码 //// * , IFNULL(sum(a.amount),0) amount 每日提成总金额 //// */ //// DateTime dateTime = DateUtil.offsetDay(new Date(), -1); ////// DateTime dateTime = DateUtil.offsetDay(new Date(), 0); //// List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime); //// if (CollUtil.isNotEmpty(allLeaderAchieve)) { //// for (Map<String, String> map : allLeaderAchieve) { //// String uniqueCode = map.get("uniqueCode"); //// Object profitAmount = map.get("profitAmount"); //// //// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode); //// Integer profitSwitch = mallTeamLeader.getProfitSwitch(); //// if(1 == profitSwitch){ //// //直接舍弃小数点的第三位 //// BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN); //// MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); //// memberWalletService.addBalance(achieveMoney,mallMember.getId()); //// String achieveNo = "TC."+ MallUtils.getOrderNum(); //// mallMoneyFlowService.addMoneyFlow( //// mallMember.getId(), //// achieveMoney, //// MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), //// achieveNo, //// FlowTypeEnum.BALANCE.getValue()); //// //// //更新到已提成状态 //// mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); //// } //// } //// } //// } // //// public static void main(String[] args) { //// BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN); //// System.out.println(bigDecimal); //// } } src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -37,38 +37,38 @@ @ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true") public class ProfitJob { @Resource private HappyActivityService happyActivityService; /** * 活动时间结束更新 * 一分钟运行一次 */ @Scheduled(cron = "0 0/1 * * * ? ") public void activityEnd() { happyActivityService.activityEnd(); } /** * 活动时间开始更新 * 一分钟运行一次 */ @Scheduled(cron = "0 0/1 * * * ? ") public void activityStart() { happyActivityService.activityStart(); } /** * 订单失效 * 五分钟运行一次 */ @Scheduled(cron = "0 0/5 * * * ? ") public void overtimeJob() { happyActivityService.overtimeJob(); } // @Resource // private HappyActivityService happyActivityService; // // /** // * 活动时间结束更新 // * 一分钟运行一次 // */ // @Scheduled(cron = "0 0/1 * * * ? ") // public void activityEnd() { // happyActivityService.activityEnd(); // } // // /** // * 活动时间开始更新 // * 一分钟运行一次 // */ // @Scheduled(cron = "0 0/1 * * * ? ") // public void activityStart() { // // happyActivityService.activityStart(); // // } // // // // /** // * 订单失效 // * 五分钟运行一次 // */ // @Scheduled(cron = "0 0/5 * * * ? ") // public void overtimeJob() { // happyActivityService.overtimeJob(); // } } src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java
@@ -77,27 +77,4 @@ } @Scheduled(cron = "0 0 0/1 * * ? ") public void expireCoupon() { List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByExpireTime(DateUtil.date()); if(CollUtil.isEmpty(mallMemberCoupons)){ return; } for(MallMemberCoupon mallMemberCoupon : mallMemberCoupons){ mallMemberCoupon.setState(3); mallMemberCouponMapper.updateById(mallMemberCoupon); } } /** * 更新发票记录表数据 * 定时,每天凌晨一点 * 已完成的订单,更新到发票记录中 */ @Scheduled(cron = "0 0 1 * * ?") public void mallInvoiceJob() { mallInvoiceService.mallInvoiceJob(); } } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -758,7 +758,6 @@ ); String inviteId = ShareCodeUtil.toSerialCode(entity.getId()); entity.setInviteId(inviteId); entity.setName("XCX"+inviteId); yhAiMemberMapper.updateById(entity); } else { if ("1".equals(entity.getAccountStatus())) { src/main/java/cc/mrbird/febs/pay/util/WechatConfigure.java
@@ -6,7 +6,7 @@ public static final String SEND_INFO_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="; public static final String WX_ACCESS_TOKEN_REDIS_KEY = "access_token"; public static final String WX_ACCESS_TOKEN_REDIS_KEY = "yh_access_token"; public static final String BAIDU_ACCESS_TOKEN_REDIS_KEY = "bd_access_token"; public static final String UNIFIEDORDER = "https://api.mch.weixin.qq.com/pay/unifiedorder"; src/main/java/cc/mrbird/febs/yinhe/controller/YHApiAgentController.java
New file @@ -0,0 +1,102 @@ package cc.mrbird.febs.yinhe.controller; import cc.mrbird.febs.ai.req.product.ApiProductInfoDto; import cc.mrbird.febs.ai.req.product.ApiProductPageDto; import cc.mrbird.febs.ai.res.product.ApiProductInfoVo; import cc.mrbird.febs.ai.res.product.ApiProductVo; import cc.mrbird.febs.ai.res.productPoint.ApiProductPointVo; import cc.mrbird.febs.ai.service.AiProductService; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.vo.MallMemberVo; import cc.mrbird.febs.yinhe.req.*; import cc.mrbird.febs.yinhe.res.*; import cc.mrbird.febs.yinhe.service.YhAiService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** * @author Administrator */ @Slf4j @Validated @RestController @RequiredArgsConstructor @RequestMapping(value = "/api/yh/agent") @Api(value = "YHApiAgentController", tags = "AI-银和-智能体相关接口") public class YHApiAgentController { private final YhAiService service; @ApiOperation(value = "获取用户信息", notes = "获取用户信息") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = YHMemberVo.class) }) @GetMapping(value = "/memberInfo") public FebsResponse memberInfo() { return service.memberInfo(); } @ApiOperation(value = "公司-智能体分类", notes = "公司-智能体分类") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = YHCategoryVo.class) }) @PostMapping(value = "/categoryList") public FebsResponse categoryList(@RequestBody @Validated YHCategoryDto dto) { return service.categoryList(dto); } @ApiOperation(value = "公司-智能体", notes = "公司-智能体") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = YHAgentVo.class) }) @PostMapping(value = "/agentList") public FebsResponse agentList(@RequestBody @Validated YHAgentDto dto) { return service.agentList(dto); } @ApiOperation(value = "公司-智能体-查看详情", notes = "公司-智能体-查看详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = YHAgentInitVo.class) }) @PostMapping(value = "/agentInfo") public FebsResponse agentInfo(@RequestBody @Validated YHAgentInitDto dto) { return service.agentInfo(dto); } @ApiOperation(value = "首页-智能体分类", notes = "首页-智能体分类") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = YHSysCategoryVo.class) }) @PostMapping(value = "/categorySysList") public FebsResponse categoryList(@RequestBody @Validated YHSysCategoryDto dto) { return service.categorySysList(dto); } @ApiOperation(value = "首页-智能体", notes = "首页-智能体") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = YHSysAgentVo.class) }) @PostMapping(value = "/agentSysList") public FebsResponse agentList(@RequestBody @Validated YHSysAgentDto dto) { return service.agentSysList(dto); } @ApiOperation(value = "退出", notes = "退出") @PostMapping(value = "/logout") public FebsResponse logout() { return service.logout(); } } src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgent.java
New file @@ -0,0 +1,40 @@ package cc.mrbird.febs.yinhe.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("ai_agent") public class YHAiAgent extends YhBaseEntity { /** 主键 */ private String id; /** 公司ID */ private String companyId; /** 代理分类ID */ private String agentCategoryId; /** 名称 */ private String name; /** 状态 0-禁用 1-启用 2-已删除 */ private Integer state; /** 描述 */ private String description; /** 背景图片 */ private String backImg; /** 小图标 */ private String iconImg; /** 提示词 */ private String prompt; /** 开场白 */ private String introduct; } src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentCategory.java
New file @@ -0,0 +1,40 @@ package cc.mrbird.febs.yinhe.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("ai_agent_category") public class YHAiAgentCategory extends YhBaseEntity { /** 主键 */ private String id; /** 公司ID */ private String companyId; /** 名称 */ private String name; /** 背景图片 */ private String backImg; /** 小图标 */ private String iconImg; /** 排序 */ private Integer sort; /** 状态 0-禁用 1-启用 2-已删除 */ private Integer state; /** 是否推荐到小程序首页 1-推荐 0-不推荐 */ private Integer hotState; /** 级别 */ private Integer level; /** 父级ID */ private String parentId; } src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentStartQuestion.java
New file @@ -0,0 +1,22 @@ package cc.mrbird.febs.yinhe.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("ai_agent_start_question") public class YHAiAgentStartQuestion extends YhBaseEntity { /** 主键 */ private String id; /** 公司ID */ private String companyId; /** 代理ID */ private String agentId; /** 问题内容 */ private String title; } src/main/java/cc/mrbird/febs/yinhe/entity/YHSysAgent.java
New file @@ -0,0 +1,45 @@ package cc.mrbird.febs.yinhe.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; /** * 智能体信息表 ai_sys_agent * * @author ruoyi */ @Data @TableName("sys_agent") public class YHSysAgent extends YhBaseEntity { /** 主键 */ private String id; /** 公司ID */ private String companyId; /** 分类ID */ private String agentCategoryId; /** 名称 */ private String name; /** 状态 0-禁用 1-启用 2-已删除 */ private Integer state; /** 描述 */ private String description; /** 背景图片 */ private String backImg; /** 小图标 */ private String iconImg; /** 提示词 */ private String prompt; /** 开场白 */ private String introduct; } src/main/java/cc/mrbird/febs/yinhe/entity/YhSysAgentCategory.java
New file @@ -0,0 +1,46 @@ package cc.mrbird.febs.yinhe.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; /** * 智能体分类表 ai_sys_agent_category * * @author ruoyi */ @Data @TableName("sys_agent_category") public class YhSysAgentCategory extends YhBaseEntity { /** 主键 */ private String id; /** 公司ID */ private String companyId; /** 名称 */ private String name; /** 背景图片 */ private String backImg; /** 小图标 */ private String iconImg; /** 排序 */ private Integer sort; /** 状态 0-禁用 1-启用 2-已删除 */ private Integer state; /** 是否推荐到首页 1-推荐 0-不推荐 */ private Integer hotState; /** 层级 */ private Integer level; /** 父级ID */ private String parentId; } src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentCategoryMapper.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.yinhe.mapper; import cc.mrbird.febs.yinhe.entity.YHAiAgentCategory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YHAiAgentCategoryMapper extends BaseMapper<YHAiAgentCategory> { } src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentMapper.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.yinhe.mapper; import cc.mrbird.febs.yinhe.entity.YHAiAgent; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YHAiAgentMapper extends BaseMapper<YHAiAgent> { } src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentStartQuestionMapper.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.yinhe.mapper; import cc.mrbird.febs.yinhe.entity.YHAiAgentStartQuestion; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YHAiAgentStartQuestionMapper extends BaseMapper<YHAiAgentStartQuestion> { } src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.yinhe.mapper; import cc.mrbird.febs.yinhe.entity.YHSysAgent; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YHSysAgentMapper extends BaseMapper<YHSysAgent> { } src/main/java/cc/mrbird/febs/yinhe/mapper/YhSysAgentCategoryMapper.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.yinhe.mapper; import cc.mrbird.febs.yinhe.entity.YhSysAgentCategory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YhSysAgentCategoryMapper extends BaseMapper<YhSysAgentCategory> { } src/main/java/cc/mrbird/febs/yinhe/req/YHAgentDto.java
New file @@ -0,0 +1,14 @@ package cc.mrbird.febs.yinhe.req; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "YHAgentDto", description = "参数") public class YHAgentDto { @ApiModelProperty(value = "分类", example = "1") private String agentCategoryId; } src/main/java/cc/mrbird/febs/yinhe/req/YHAgentInitDto.java
New file @@ -0,0 +1,17 @@ package cc.mrbird.febs.yinhe.req; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @Data @ApiModel(value = "YHAgentInitDto", description = "参数") public class YHAgentInitDto { @NotBlank(message = "智能体不能为空") @ApiModelProperty(value = "智能体ID", example = "you_ke_*****") private String id; } src/main/java/cc/mrbird/febs/yinhe/req/YHCategoryDto.java
New file @@ -0,0 +1,19 @@ package cc.mrbird.febs.yinhe.req; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @Data @ApiModel(value = "YHCategoryDto", description = "参数") public class YHCategoryDto { @ApiModelProperty(value = "ID", example = "10") private String id; @ApiModelProperty(value = "是否推荐到小程序首页 1-推荐 0-不推荐", example = "1") private Integer hotState; } src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentDto.java
New file @@ -0,0 +1,13 @@ package cc.mrbird.febs.yinhe.req; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "YHSysAgentDto", description = "参数") public class YHSysAgentDto { @ApiModelProperty(value = "分类", example = "1") private String agentCategoryId; } src/main/java/cc/mrbird/febs/yinhe/req/YHSysCategoryDto.java
New file @@ -0,0 +1,18 @@ package cc.mrbird.febs.yinhe.req; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @Data @ApiModel(value = "YHSysCategoryDto", description = "参数") public class YHSysCategoryDto { @ApiModelProperty(value = "产品ID", example = "10") private String id; @ApiModelProperty(value = "是否推荐到小程序首页 1-推荐 0-不推荐", example = "1") private Integer hotState; } src/main/java/cc/mrbird/febs/yinhe/res/YHAgentInitVo.java
New file @@ -0,0 +1,27 @@ package cc.mrbird.febs.yinhe.res; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "YHAgentInitVo", description = "详情响应") public class YHAgentInitVo { @ApiModelProperty(value = "智能体ID*", example = "1") private String id; @ApiModelProperty(value = "名称*", example = "1") private String name; @ApiModelProperty(value = "描述*", example = "1") private String description; @ApiModelProperty(value = "小图标*", example = "1") private String iconImg; @ApiModelProperty(value = "开场白*", example = "1") private String introduct; @ApiModelProperty(value = "开场白预设问题", example = "1") private List<String> items; } src/main/java/cc/mrbird/febs/yinhe/res/YHAgentVo.java
New file @@ -0,0 +1,22 @@ package cc.mrbird.febs.yinhe.res; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "YHAgentVo", description = "参数") public class YHAgentVo { @ApiModelProperty(value = "智能体ID*", example = "1") private String id; @ApiModelProperty(value = "名称*", example = "1") private String name; @ApiModelProperty(value = "描述*", example = "1") private String description; @ApiModelProperty(value = "小图标*", example = "1") private String iconImg; } src/main/java/cc/mrbird/febs/yinhe/res/YHCategoryVo.java
New file @@ -0,0 +1,16 @@ package cc.mrbird.febs.yinhe.res; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "YHCategoryVo", description = "参数") public class YHCategoryVo { @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "ID") private String id; } src/main/java/cc/mrbird/febs/yinhe/res/YHMemberVo.java
New file @@ -0,0 +1,43 @@ package cc.mrbird.febs.yinhe.res; import cc.mrbird.febs.mall.vo.memberLevel.ApiLabelInfoVo; import cc.mrbird.febs.vip.entity.MallVipConfig; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; import java.util.List; @Data @ApiModel(value = "YHMemberVo", description = "参数") public class YHMemberVo { @ApiModelProperty(value = "会员ID") private String memberUuid; @ApiModelProperty(value = "头像") private String avatar; @ApiModelProperty(value = "昵称") private String name; @ApiModelProperty(value = "真实姓名") private String realName; @ApiModelProperty(value = "性别") private String sex; @ApiModelProperty(value = "公司ID") private String companyId; @ApiModelProperty(value = "公司") private String companyName; @ApiModelProperty(value = "手机号") private String phone; } src/main/java/cc/mrbird/febs/yinhe/res/YHSysAgentVo.java
New file @@ -0,0 +1,19 @@ package cc.mrbird.febs.yinhe.res; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "YHSysAgentVo", description = "参数") public class YHSysAgentVo { @ApiModelProperty(value = "智能体ID*", example = "1") private String id; @ApiModelProperty(value = "名称*", example = "1") private String name; @ApiModelProperty(value = "描述*", example = "1") private String description; @ApiModelProperty(value = "小图标*", example = "1") private String iconImg; } src/main/java/cc/mrbird/febs/yinhe/res/YHSysCategoryVo.java
New file @@ -0,0 +1,16 @@ package cc.mrbird.febs.yinhe.res; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "YHSysCategoryVo", description = "参数") public class YHSysCategoryVo { @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "ID") private String id; } src/main/java/cc/mrbird/febs/yinhe/service/YhAiMemberService.java
File was deleted src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java
New file @@ -0,0 +1,27 @@ package cc.mrbird.febs.yinhe.service; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.yinhe.entity.YhAiMember; import cc.mrbird.febs.yinhe.req.*; import com.baomidou.mybatisplus.extension.service.IService; /** * 用户表 Service 接口 * 对应数据库表:ai_member */ public interface YhAiService extends IService<YhAiMember> { FebsResponse memberInfo(); FebsResponse categoryList(YHCategoryDto dto); FebsResponse agentList(YHAgentDto dto); FebsResponse agentInfo(YHAgentInitDto dto); FebsResponse categorySysList(YHSysCategoryDto dto); FebsResponse agentSysList(YHSysAgentDto dto); FebsResponse logout(); } src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
New file @@ -0,0 +1,221 @@ package cc.mrbird.febs.yinhe.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.common.utils.YHLoginUserUtil; import cc.mrbird.febs.yinhe.entity.*; import cc.mrbird.febs.yinhe.mapper.*; import cc.mrbird.febs.yinhe.req.*; import cc.mrbird.febs.yinhe.res.*; import cc.mrbird.febs.yinhe.service.YhAiService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class YhAiServiceImpl extends ServiceImpl<YhAiMemberMapper, YhAiMember> implements YhAiService { private final YhAiMemberMapper yhAiMemberMapper; private final YHAiCompanyMapper yhAiCompanyMapper; private final YHAiAgentCategoryMapper yhAiAgentCategoryMapper; private final YHAiAgentMapper yhAiAgentMapper; private final YHAiAgentStartQuestionMapper yhAiAgentStartQuestionMapper; private final YhSysAgentCategoryMapper yhSysAgentCategoryMapper; private final YHSysAgentMapper yhSysAgentMapper; private final RedisUtils redisUtils; @Override public FebsResponse memberInfo() { String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid(); YHMemberVo yhMemberVo = new YHMemberVo(); YhAiMember yhAiMember = yhAiMemberMapper.selectOne( Wrappers.lambdaQuery(YhAiMember.class) .eq(YhAiMember::getMemberUuid, memberUuid) ); if (ObjectUtil.isNotEmpty(yhAiMember)){ String companyId = yhAiMember.getCompanyId(); YHAiCompany yhAiCompany = yhAiCompanyMapper.selectById(companyId); yhMemberVo.setMemberUuid(yhAiMember.getMemberUuid()); yhMemberVo.setAvatar(yhAiMember.getAvatar()); yhMemberVo.setName(yhAiMember.getName()); yhMemberVo.setRealName(yhAiMember.getRealName()); yhMemberVo.setSex(yhAiMember.getSex()); yhMemberVo.setCompanyId(yhAiCompany.getId()); yhMemberVo.setCompanyName(yhAiCompany.getName()); yhMemberVo.setPhone(yhAiMember.getPhone()); } return new FebsResponse().success().data(yhMemberVo); } @Override public FebsResponse categoryList(YHCategoryDto dto) { String companyId = YHLoginUserUtil.getLoginUser().getCompanyId(); List<YHCategoryVo> yhCategoryVos = new ArrayList<>(); LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class); query.eq(YHAiAgentCategory::getCompanyId,companyId); query.eq(YHAiAgentCategory::getState,1); if (ObjectUtil.isNotEmpty(dto.getId())){ query.eq(YHAiAgentCategory::getId,dto.getId()); } if (ObjectUtil.isNotEmpty(dto.getHotState())){ query.eq(YHAiAgentCategory::getHotState,dto.getHotState()); } query.orderByAsc(YHAiAgentCategory::getSort); List<YHAiAgentCategory> yhAiAgentCategories = yhAiAgentCategoryMapper.selectList(query); if (CollUtil.isNotEmpty(yhAiAgentCategories)){ for (YHAiAgentCategory yhAiAgentCategory : yhAiAgentCategories) { YHCategoryVo yhCategoryVo = new YHCategoryVo(); yhCategoryVo.setName(yhAiAgentCategory.getName()); yhCategoryVo.setId(yhAiAgentCategory.getId()); yhCategoryVos.add(yhCategoryVo); } } return new FebsResponse().success().data(yhCategoryVos); } @Override public FebsResponse agentList(YHAgentDto dto) { String companyId = YHLoginUserUtil.getLoginUser().getCompanyId(); ArrayList<YHAgentVo> yhAgentVos = new ArrayList<>(); LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class); query.eq(YHAiAgent::getCompanyId,companyId); query.eq(YHAiAgent::getState,1); if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){ query.eq(YHAiAgent::getAgentCategoryId,dto.getAgentCategoryId()); } query.orderByDesc(YHAiAgent::getCreateTime); List<YHAiAgent> yhAiAgents = yhAiAgentMapper.selectList(query); if (CollUtil.isNotEmpty(yhAiAgents)){ for (YHAiAgent yhAiAgent : yhAiAgents) { YHAgentVo yhAgentVo = new YHAgentVo(); yhAgentVo.setId(yhAiAgent.getId()); yhAgentVo.setName(yhAiAgent.getName()); yhAgentVo.setDescription(yhAiAgent.getDescription()); yhAgentVo.setIconImg(yhAiAgent.getIconImg()); yhAgentVos.add(yhAgentVo); } } return new FebsResponse().success().data(yhAgentVos); } @Override public FebsResponse agentInfo(YHAgentInitDto dto) { String companyId = YHLoginUserUtil.getLoginUser().getCompanyId(); YHAgentInitVo yhAgentInitVo = new YHAgentInitVo(); String id = dto.getId(); YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id); if (ObjectUtil.isNotEmpty(yhAiAgent)){ yhAgentInitVo.setId(yhAiAgent.getId()); yhAgentInitVo.setName(yhAiAgent.getName()); yhAgentInitVo.setDescription(yhAiAgent.getDescription()); yhAgentInitVo.setIconImg(yhAiAgent.getIconImg()); yhAgentInitVo.setIntroduct(yhAiAgent.getIntroduct()); List<YHAiAgentStartQuestion> yhAiAgentStartQuestions = yhAiAgentStartQuestionMapper.selectList( Wrappers.lambdaQuery(YHAiAgentStartQuestion.class).eq(YHAiAgentStartQuestion::getAgentId, id) ); if (CollUtil.isNotEmpty(yhAiAgentStartQuestions)){ List<String> questions = new ArrayList<>(); for (YHAiAgentStartQuestion yhAiAgentStartQuestion : yhAiAgentStartQuestions) { questions.add(yhAiAgentStartQuestion.getTitle()); } yhAgentInitVo.setItems(questions); } } return new FebsResponse().success().data(yhAgentInitVo); } @Override public FebsResponse categorySysList(YHSysCategoryDto dto) { List<YHSysCategoryVo> vos = new ArrayList<>(); LambdaQueryWrapper<YhSysAgentCategory> query = Wrappers.lambdaQuery(YhSysAgentCategory.class); query.eq(YhSysAgentCategory::getState,1); if (ObjectUtil.isNotEmpty(dto.getId())){ query.eq(YhSysAgentCategory::getId,dto.getId()); } if (ObjectUtil.isNotEmpty(dto.getHotState())){ query.eq(YhSysAgentCategory::getHotState,dto.getHotState()); } query.orderByAsc(YhSysAgentCategory::getSort); List<YhSysAgentCategory> yhSysAgentCategories = yhSysAgentCategoryMapper.selectList(query); if (CollUtil.isNotEmpty(yhSysAgentCategories)){ for (YhSysAgentCategory yhSysAgentCategory : yhSysAgentCategories) { YHSysCategoryVo vo = new YHSysCategoryVo(); vo.setId(yhSysAgentCategory.getId()); vo.setName(yhSysAgentCategory.getName()); vos.add(vo); } } return new FebsResponse().success().data(vos); } @Override public FebsResponse agentSysList(YHSysAgentDto dto) { ArrayList<YHSysAgentVo> vos = new ArrayList<>(); LambdaQueryWrapper<YHSysAgent> query = Wrappers.lambdaQuery(YHSysAgent.class); query.eq(YHSysAgent::getState,1); if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){ query.eq(YHSysAgent::getAgentCategoryId,dto.getAgentCategoryId()); } query.orderByDesc(YHSysAgent::getCreateTime); List<YHSysAgent> list = yhSysAgentMapper.selectList(query); if (CollUtil.isNotEmpty(list)){ for (YHSysAgent entity : list) { YHSysAgentVo vo = new YHSysAgentVo(); vo.setId(entity.getId()); vo.setName(entity.getName()); vo.setDescription(entity.getDescription()); vo.setIconImg(entity.getIconImg()); vos.add(vo); } } return new FebsResponse().success().data(vos); } @Override public FebsResponse logout() { String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); String redisKey = AppContants.XCX_LOGIN_PREFIX + memberUuid; String existToken = redisUtils.getString(redisKey); if (StrUtil.isNotBlank(existToken)) { Object o = redisUtils.get(existToken); if (ObjectUtil.isNotEmpty(o)) { redisUtils.del(existToken); } } redisUtils.del(AppContants.XCX_LOGIN_PREFIX + memberUuid); return new FebsResponse().success().message("退出登录"); } } src/main/resources/application-test.yml
@@ -15,16 +15,16 @@ datasource: # 数据源-1,名称为 base base: username: ai_one password: ai_one!@#123 username: ry_vue_ai password: ry_vue_ai!@#123 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/ai_one?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 url: jdbc:mysql://8.166.133.146:3306/ry_vue_ai?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 redis: # Redis数据库索引(默认为 0) database: 1 database: 3 # Redis服务器地址 host: 127.0.0.1 host: 8.166.133.146 # Redis服务器连接端口 port: 6379 # Redis 密码 @@ -42,7 +42,7 @@ # 连接超时时间(毫秒) timeout: 5000000 rabbitmq: host: 127.0.0.1 host: 8.166.133.146 port: 5672 username: xc_rabbit password: xuncong123 @@ -70,8 +70,8 @@ # wecharpaySecret: CSxc168888CSxc168888CSxc168888xc xcx: wechar_login_url: https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code xcx_appid: wxcd0555ebf4448971 xcx_secret: 0a10fa3b9388ddd5d5ad4c8bd6637be1 xcx_appid: wx203cb932dc947a15 xcx_secret: 1e61bee704b159577cc2a58f80f19190 debug: true wecharPaynotifyUrl: http://happy.csxuncong.com/api/xcxPay/wxpayCallback wecharActivityPaynotifyUrl: http://happy.csxuncong.com/api/xcxPay/activityOrderCallback