生成bindFace小程序码

This commit is contained in:
2025-07-29 14:09:34 +08:00
parent 91867300ed
commit c97c680ca9
3 changed files with 35 additions and 0 deletions

View File

@@ -177,6 +177,10 @@ public class AioDeviceController {
return ApiResponse.success(false);
}
}
@GetMapping("/face/{faceId}/bindWxaCode")
public ApiResponse<String> bindWxaCode(@PathVariable Long faceId) {
return ApiResponse.success(faceService.bindWxaCode(faceId));
}
// 照片商品列表
@GetMapping("/{faceId}/photo")
public ApiResponse<List<GoodsDetailVO>> sourceGoodsList(@PathVariable Long faceId) {

View File

@@ -38,4 +38,6 @@ public interface FaceService {
ApiResponse<List<ContentPageVO>> contentListUseDefaultFace();
void bindFace(Long faceId, Long memberId);
String bindWxaCode(Long faceId);
}

View File

@@ -24,6 +24,7 @@ import com.ycwl.basic.model.pc.face.entity.FaceEntity;
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
@@ -45,6 +46,7 @@ import com.ycwl.basic.service.task.TaskFaceService;
import com.ycwl.basic.service.task.TaskService;
import com.ycwl.basic.storage.StorageFactory;
import com.ycwl.basic.storage.adapters.IStorageAdapter;
import com.ycwl.basic.storage.enums.StorageAcl;
import com.ycwl.basic.storage.utils.StorageUtil;
import com.ycwl.basic.task.VideoPieceGetter;
import com.ycwl.basic.utils.*;
@@ -53,6 +55,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
@@ -529,5 +532,31 @@ public class FaceServiceImpl implements FaceService {
faceRepository.clearFaceCache(faceId);
}
@Override
public String bindWxaCode(Long faceId) {
FaceEntity face = faceRepository.getFace(faceId);
MpConfigEntity mpConfig = scenicRepository.getScenicMpConfig(face.getScenicId());
if (mpConfig == null) {
throw new BaseException("小程序配置不存在");
}
String appId = mpConfig.getAppId();
String appSecret = mpConfig.getAppSecret();
String path = "pages/videoSynthesis/bind_face";
String filePath = "qr_code_bf" + faceId + ".jpg";
IStorageAdapter adapter = StorageFactory.use();
if (adapter.isExists(filePath)) {
return adapter.getUrl(filePath);
}
try {
File file = new File(filePath);
WxMpUtil.generateUnlimitedWXAQRCode(appId, appSecret, path, faceId.toString(), file);
String s = adapter.uploadFile(null, file, filePath);
file.delete();
adapter.setAcl(StorageAcl.PUBLIC_READ, filePath);
return s;
} catch (Exception e) {
throw new BaseException("生成二维码失败");
}
}
}