From 1b5e03568666fed13c73a7dc6c856fb50bcd9a12 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Tue, 9 Jul 2024 16:36:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=85=A7=E7=89=87=E6=AF=94?= =?UTF-8?q?=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 12 +++ .../controller/ArtificerController.java | 2 +- .../sqx/modules/artificer/dao/OrdersDao.java | 1 + .../modules/artificer/entity/Artificer.java | 2 + .../service/impl/ArtificerServiceImpl.java | 96 ++++++++++++++++++- .../modules/file/utils/FileUploadUtils.java | 16 ++++ .../resources/mapper/artificer/OrdersDao.xml | 43 +++++++-- 7 files changed, 164 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index c943b68..880d113 100644 --- a/pom.xml +++ b/pom.xml @@ -427,6 +427,18 @@ 0.3.7.2 + + com.baidu.aip + java-sdk + 4.16.16 + + + org.slf4j + slf4j-simple + + + + diff --git a/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java index 4b6b493..64bce60 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java @@ -444,7 +444,7 @@ public class ArtificerController { } @GetMapping("/selectArtificerMoneyList") - @ApiOperation("技师收益排行榜") + @ApiOperation("技师收益排行榜(在线时长+业绩++加钟率+充值率)") public Result selectArtificerMoneyList(Integer page,Integer limit,String startTime,String endTime,String title,String classifyId){ return artificerService.selectArtificerMoneyList(page, limit, startTime, endTime, title,classifyId); } diff --git a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java index 2f7dbd7..79c5ae9 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java @@ -136,4 +136,5 @@ public interface OrdersDao extends BaseMapper { List getZxscList(Long userId, String startTime, String endTime); List getParentOrders(Long parentId); + } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/entity/Artificer.java b/src/main/java/com/sqx/modules/artificer/entity/Artificer.java index 2d6bd63..f5d0f0b 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Artificer.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Artificer.java @@ -139,6 +139,8 @@ public class Artificer implements Serializable { */ private Integer technicianType; + private String bdxsl;//比对相似率 + /** * 技师类型描述 */ diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java index 7f3a2c2..a3b489e 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.sqx.common.utils.*; +import com.sqx.face.FaceMain; import com.sqx.map.CommonMapUtils; import com.sqx.modules.app.entity.UserMoney; import com.sqx.modules.app.service.UserMoneyService; @@ -22,6 +23,7 @@ import com.sqx.modules.artificer.service.ArtificerTimeService; import com.sqx.modules.artificer.service.CollectArtificerService; import com.sqx.modules.common.dao.CommonInfoDao; import com.sqx.modules.common.service.CommonInfoService; +import com.sqx.modules.file.utils.FileUploadUtils; import com.sqx.modules.message.entity.MessageInfo; import com.sqx.modules.message.service.MessageService; import com.sqx.modules.pay.dao.CashOutDao; @@ -65,6 +67,9 @@ public class ArtificerServiceImpl extends ServiceImpl i @Autowired private CommonInfoDao commonInfoDao; + @Autowired + private FaceMain faceMain; + @Override public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId,String artificerName, String longitude,String latitude,Integer sort,Integer authentication, @@ -520,7 +525,45 @@ public class ArtificerServiceImpl extends ServiceImpl i @Override public Result selectArtificerMoneyList(Integer page,Integer limit,String startTime,String endTime,String title,String classifyId){ - return Result.success().put("data",new PageUtils(baseMapper.selectArtificerMoneyList(new Page<>(page,limit),startTime,endTime,title,classifyId))); + IPage> pageList = baseMapper.selectArtificerMoneyList(new Page<>(page,limit),startTime,endTime,title,classifyId); + for(Map map:pageList.getRecords()){ + Long artificerId = Long.parseLong(map.get("artificerId").toString()); + //当期业绩 + Integer currentPerformance = ordersDao.selectOrdersArtificerIntegralEarnings(artificerId, endTime, startTime); + map.put("yj",String.valueOf(currentPerformance)); + + //当期订单数:计算订单发生了按摩行为的订单数,订单状态经历了开始服务到订单结束。 + String currentPeriodOrdersSum = ordersDao.selectOrdersArtificerIntegral(artificerId, endTime, startTime); + BigDecimal currentPeriodOrdersSumBig = new BigDecimal(currentPeriodOrdersSum); + + //当期加钟率:本周期内,加钟数/本单数 + String v = ordersDao.selectOrdersArtificerIntegraladdNum(artificerId, endTime, startTime); + //加钟数 + BigDecimal currentPeriodAddBellsSumBig = new BigDecimal(v); + //加钟率 + BigDecimal clockRate = BigDecimal.ZERO; + //充值率 + BigDecimal divide1 = BigDecimal.ZERO; + if (currentPeriodOrdersSumBig.compareTo(new BigDecimal("0")) != 0) { + clockRate = currentPeriodAddBellsSumBig.divide(currentPeriodOrdersSumBig, 2, RoundingMode.HALF_UP);//加钟率 + + //当前周期充值率(本周期内充值订单数/本单数) + String currentPeriodRechargeSum = ordersDao.selectOrdersCurrentPeriodRechargeSum(artificerId, endTime, startTime); + BigDecimal c = new BigDecimal(currentPeriodRechargeSum); + divide1 = c.divide(currentPeriodOrdersSumBig, 2, RoundingMode.HALF_UP);//充值率 + } else { + clockRate = new BigDecimal("0"); + divide1 = new BigDecimal("0"); + } + map.put("jzl",String.valueOf(clockRate));//加钟率 + map.put("czl",String.valueOf(divide1));//充值率 + //在线时长 + String mint = ordersDao.selectOrdersZxscNum(artificerId,startTime,endTime); + map.put("zxsc",String.valueOf(mint));//充值率 + + } + + return Result.success().put("data",pageList); } @Override @@ -722,6 +765,57 @@ public class ArtificerServiceImpl extends ServiceImpl i @Override public Result updateShz(Artificer artificer) { if(artificer.getArtificerId()!=null){ + + try { + if(StringUtils.isNotEmpty(artificer.getLifePhoto())){ + String lifePhoto = artificer.getLifePhoto();//生活照 + if(artificer.getLifePhoto().indexOf(",")>-1){ + lifePhoto = artificer.getLifePhoto().split(",")[0]; + } + Artificer artificerPar = baseMapper.selectById(artificer.getArtificerId()); + String artificerImg = artificerPar.getArtificerImg();//头像 + + log.error("---------图片----------生活照:"+lifePhoto); + log.error("---------图片----------头像照:"+artificerImg); + String base64Img1 = FileUploadUtils.convertToBase64(lifePhoto); + String base64Img2 = FileUploadUtils.convertToBase64(artificerImg); + log.error("---------base64----------生活照:"+base64Img1); + log.error("---------base64----------头像照:"+base64Img2); + + + faceMain.runFlag(); + //对比 + org.json.JSONObject res = faceMain.matchBySystemFileUrl(base64Img1,base64Img2,false); + log.error("---------res----------:"+res); + + faceMain.runFlag(); + if(res == null){ + faceMain.delRunFlag(); + return Result.error("对比接口调用失败!"); + } + + //判断是否调用成功 + Integer errorCode = res.getInt("error_code"); + String errorMsg = res.getString("error_msg"); + if(errorCode != 0){ + faceMain.delRunFlag(); + return Result.error("对比失败:" + errorMsg + ",错误码为:" + errorCode + "!"); + } + + //保存结果 + org.json.JSONObject result = res.getJSONObject("result"); + log.error("---------result----------:"+result); + + String score = String.valueOf(result.getInt("score")); + System.out.println("--------score-----------------:"+score); + artificer.setBdxsl(score); + } + }catch (Exception e){ + e.printStackTrace(); + } + + + artificer.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); baseMapper.updateById(artificer); return Result.success(); diff --git a/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java b/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java index 95ba15c..39b98df 100644 --- a/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java +++ b/src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java @@ -11,6 +11,9 @@ import org.springframework.web.multipart.MultipartFile; import java.io.*; import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Base64; import java.util.Date; /** @@ -241,4 +244,17 @@ public class FileUploadUtils } return extension; } + + public static String convertToBase64(String imagePath) { + String base64Image = ""; + try { + Path path = Paths.get(imagePath); + byte[] imageBytes = Files.readAllBytes(path); + base64Image = Base64.getEncoder().encodeToString(imageBytes); + } catch (Exception e) { + e.printStackTrace(); + } + return base64Image; + } + } \ No newline at end of file diff --git a/src/main/resources/mapper/artificer/OrdersDao.xml b/src/main/resources/mapper/artificer/OrdersDao.xml index 2307fac..ed5fffa 100644 --- a/src/main/resources/mapper/artificer/OrdersDao.xml +++ b/src/main/resources/mapper/artificer/OrdersDao.xml @@ -1037,7 +1037,13 @@ left join tb_user u on u.user_id=o.user_id left join consortia c on c.consortia_id=o.consortia_id where o.artificer_id=#{artificerId} - and o.end_times BETWEEN #{startDate} and #{endDate} + + and o.end_times >= #{startDate} + + + and o.end_times <= #{endDate} + + and o.status in (3,5) @@ -1049,7 +1055,13 @@ left join tb_user u on u.user_id=o.user_id left join consortia c on c.consortia_id=o.consortia_id where o.artificer_id=#{artificerId} - and o.end_times BETWEEN #{startDate} and #{endDate} + + + and o.end_times >= #{startDate} + + + and o.end_times <= #{endDate} + and o.status in (3,5) and o.parent_id = 0 @@ -1062,7 +1074,14 @@ left join tb_user u on u.user_id=o.user_id left join consortia c on c.consortia_id=o.consortia_id where o.artificer_id=#{artificerId} - and o.end_times BETWEEN #{startDate} and #{endDate} and o.parent_id = 0 + + and o.end_times >= #{startDate} + + + and o.end_times <= #{endDate} + + + and o.parent_id = 0 @@ -1122,8 +1148,13 @@