diff --git a/src/main/java/com/ycwl/basic/config/FaceDetectConfig.java b/src/main/java/com/ycwl/basic/config/FaceDetectConfig.java new file mode 100644 index 0000000..b1f7dd3 --- /dev/null +++ b/src/main/java/com/ycwl/basic/config/FaceDetectConfig.java @@ -0,0 +1,21 @@ +package com.ycwl.basic.config; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * 阿里云OSS配置 + * + * @author songmingsong + **/ +@Data +@Component +public class FaceDetectConfig { + @Value("${aliYunFace.accessKeyId}") + private String accessKeyId; + @Value("${aliYunFace.accessKeySecret}") + private String accessKeySecret; + @Value("${aliYunFace.region}") + private String region; +} diff --git a/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java index 569a22e..00e2aaa 100644 --- a/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java @@ -21,4 +21,6 @@ public interface DeviceMapper { int deleteById(Long id); int update(DeviceAddOrUpdateReq deviceReqQuery); int updateStatus(Long id); + + List listByScenicId(Long scenicId); } diff --git a/src/main/java/com/ycwl/basic/mapper/pc/ScenicAccountMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/ScenicAccountMapper.java new file mode 100644 index 0000000..ca5901b --- /dev/null +++ b/src/main/java/com/ycwl/basic/mapper/pc/ScenicAccountMapper.java @@ -0,0 +1,15 @@ +package com.ycwl.basic.mapper.pc; + +import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ScenicAccountMapper { + ScenicAccountEntity getByAccount(String account); + int add(ScenicAccountEntity scenicAccount); + ScenicAccountEntity getSuperAccountOfScenic(Long scenicId); + int update(ScenicAccountEntity scenicAccount); + int deleteById(Long id); + int updateStatus(Long id); + int deleteByScenicId(Long scenicId); +} diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java b/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java index d195acc..04418c7 100644 --- a/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java @@ -20,6 +20,7 @@ public class BrokerEntity { * 推客名称 */ private String name; + private String phone; /** * 专属优惠码,新建时生成 */ @@ -30,4 +31,8 @@ public class BrokerEntity { private Integer status; private Date createAt; private Date updateAt; + private Integer brokerOrderCount; + private Integer brokerOrderAmount; + private Date firstBrokerDate; + private Date lastBrokerDate; } diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java index c3ff059..9775b67 100644 --- a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java @@ -18,6 +18,8 @@ public class BrokerReqQuery extends BaseQueryParameterReq { private Long id; @ApiModelProperty("推客名称") private String name; + @ApiModelProperty("手机号") + private String phone; @ApiModelProperty("专属优惠码") private String promoCode; @ApiModelProperty("状态,0禁用,1启用") diff --git a/src/main/java/com/ycwl/basic/model/pc/face/entity/FaceEntity.java b/src/main/java/com/ycwl/basic/model/pc/face/entity/FaceEntity.java index f428caa..9db8b04 100644 --- a/src/main/java/com/ycwl/basic/model/pc/face/entity/FaceEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/face/entity/FaceEntity.java @@ -16,6 +16,10 @@ import java.util.Date; public class FaceEntity { @TableId private Long id; + /** + * 人脸得分 + */ + private float score; /** * 会员id */ diff --git a/src/main/java/com/ycwl/basic/model/pc/faceSample/entity/FaceSampleEntity.java b/src/main/java/com/ycwl/basic/model/pc/faceSample/entity/FaceSampleEntity.java index 7f8dc23..25ac0b9 100644 --- a/src/main/java/com/ycwl/basic/model/pc/faceSample/entity/FaceSampleEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/faceSample/entity/FaceSampleEntity.java @@ -15,10 +15,19 @@ import java.util.Date; public class FaceSampleEntity { @TableId private Long id; + /** + * 景区ID + */ + private Long scenicId; /** * 来源设备 */ private Long deviceId; + /** + * 样本ID + */ + private Long sourceId; + private float score; /** * 人脸照片 */ diff --git a/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java index 6ab0884..0dd67c9 100644 --- a/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java @@ -16,6 +16,11 @@ import java.util.Date; @Data @ApiModel("人脸样本查询参数") public class FaceSampleReqQuery extends BaseQueryParameterReq { + /** + * 景区ID + */ + @ApiModelProperty("景区ID") + private Long scenicId; /** * 来源设备 */ diff --git a/src/main/java/com/ycwl/basic/model/pc/faceSample/resp/FaceSampleRespVO.java b/src/main/java/com/ycwl/basic/model/pc/faceSample/resp/FaceSampleRespVO.java index 69f48d8..b3d7ea1 100644 --- a/src/main/java/com/ycwl/basic/model/pc/faceSample/resp/FaceSampleRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/faceSample/resp/FaceSampleRespVO.java @@ -16,6 +16,11 @@ import java.util.Date; @ApiModel("人脸样本响应参数") public class FaceSampleRespVO { private Long id; + /** + * 景区ID + */ + @ApiModelProperty("景区ID") + private Long scenicId; /** * 来源设备 */ diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java new file mode 100644 index 0000000..8c8c3ee --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java @@ -0,0 +1,19 @@ +package com.ycwl.basic.model.pc.scenic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("scenic_account") +public class ScenicAccountEntity { + private Long id; + private Long scenicId; + private Integer isSuper; + private String name; + private String account; + private String password; + private Date createTime; + private Date updateTime; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java index 224946d..eb74a15 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java @@ -22,6 +22,11 @@ public class ScenicAddOrUpdateReq { */ @ApiModelProperty("景区名称") private String name; + /** + * 景区电话 + */ + @ApiModelProperty("联系电话") + private String phone; /** * 景区介绍 */ @@ -75,4 +80,9 @@ public class ScenicAddOrUpdateReq { private ScenicConfigEntity scenicConfig; @ApiModelProperty("景区源素材价格,元") private BigDecimal price; + + @ApiModelProperty("账号") + private String account; + @ApiModelProperty("密码") + private String password; } diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java b/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java index 2685313..87d7b7e 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java @@ -23,6 +23,16 @@ public class ScenicRespVO { */ @ApiModelProperty("景区名称") private String name; + /** + * 账号 + */ + @ApiModelProperty("账号") + private String account; + /** + * 联系电话 + */ + @ApiModelProperty("联系电话") + private String phone; /** * 景区介绍 */ diff --git a/src/main/java/com/ycwl/basic/model/task/resp/AddFaceRespVo.java b/src/main/java/com/ycwl/basic/model/task/resp/AddFaceRespVo.java new file mode 100644 index 0000000..6afc14e --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/task/resp/AddFaceRespVo.java @@ -0,0 +1,8 @@ +package com.ycwl.basic.model.task.resp; + +import lombok.Data; + +@Data +public class AddFaceRespVo { + private float score; +} diff --git a/src/main/java/com/ycwl/basic/model/task/resp/SearchFaceRespVo.java b/src/main/java/com/ycwl/basic/model/task/resp/SearchFaceRespVo.java new file mode 100644 index 0000000..99dc3cf --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/task/resp/SearchFaceRespVo.java @@ -0,0 +1,11 @@ +package com.ycwl.basic.model.task.resp; + +import lombok.Data; + +import java.util.List; + +@Data +public class SearchFaceRespVo { + private float score; + private List sampleListIds; +} diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java index 8ce6fb5..3dfe1a8 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java @@ -8,6 +8,7 @@ import com.ycwl.basic.model.pc.renderWorker.req.RenderWorkerReqQuery; import com.ycwl.basic.service.pc.RenderWorkerService; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.SnowFlakeUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,6 +45,10 @@ public class RenderWorkerServiceImpl implements RenderWorkerService { @Override public ApiResponse add(RenderWorkerEntity renderWorker) { renderWorker.setId(SnowFlakeUtil.getLongId()); + if (StringUtils.isEmpty(renderWorker.getAccessKey())) { + renderWorker.setAccessKey(SnowFlakeUtil.getId()); + } + renderWorker.setStatus(0); int add = renderWorkerMapper.add(renderWorker); if (add == 0) { return ApiResponse.fail("渲染机添加失败"); diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java index 731bb16..954a504 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java @@ -2,7 +2,9 @@ package com.ycwl.basic.service.impl.pc; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.mapper.pc.ScenicAccountMapper; import com.ycwl.basic.mapper.pc.ScenicMapper; +import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; @@ -10,6 +12,7 @@ import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; import com.ycwl.basic.service.pc.ScenicService; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.SnowFlakeUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -24,6 +27,8 @@ import java.util.List; public class ScenicServiceImpl implements ScenicService { @Autowired private ScenicMapper scenicMapper; + @Autowired + private ScenicAccountMapper scenicAccountMapper; @Override public ApiResponse> pageQuery(ScenicReqQuery scenicReqQuery) { @@ -46,9 +51,21 @@ public class ScenicServiceImpl implements ScenicService { @Override @Transactional(rollbackFor = Exception.class) public ApiResponse add(ScenicAddOrUpdateReq scenicAddReq) { + ScenicAccountEntity scenicAccount = scenicAccountMapper.getByAccount(scenicAddReq.getAccount()); + if (scenicAccount != null) { + return ApiResponse.fail("账号已存在"); + } Long scenicId = SnowFlakeUtil.getLongId(); scenicAddReq.setId(scenicId); int add = scenicMapper.add(scenicAddReq); + ScenicAccountEntity account = new ScenicAccountEntity(); + account.setId(SnowFlakeUtil.getLongId()); + account.setScenicId(scenicId); + account.setName(scenicAddReq.getName() + "管理员"); + account.setAccount(scenicAddReq.getAccount()); + account.setPassword(scenicAddReq.getPassword()); + account.setIsSuper(1); + scenicAccountMapper.add(account); if (add > 0) { return ApiResponse.success(true); }else { @@ -62,6 +79,7 @@ public class ScenicServiceImpl implements ScenicService { int i = scenicMapper.deleteById(id); if (i > 0) { scenicMapper.deleteConfigByscenicId(id); + scenicAccountMapper.deleteByScenicId(id); return ApiResponse.success(true); }else { return ApiResponse.fail("景区删除失败"); @@ -70,6 +88,29 @@ public class ScenicServiceImpl implements ScenicService { @Override public ApiResponse update(ScenicAddOrUpdateReq scenicUpdateReq) { + if (StringUtils.isNotBlank(scenicUpdateReq.getAccount()) && StringUtils.isNotBlank(scenicUpdateReq.getPassword())) { + ScenicAccountEntity scenicAccount = scenicAccountMapper.getByAccount(scenicUpdateReq.getAccount()); + if (scenicAccount != null) { + if (!scenicAccount.getScenicId().equals(scenicUpdateReq.getId())) { + return ApiResponse.fail("账号已存在"); + } + } + ScenicAccountEntity account = scenicAccountMapper.getSuperAccountOfScenic(scenicUpdateReq.getId()); + if (account != null) { + account.setAccount(scenicUpdateReq.getAccount()); + account.setPassword(scenicUpdateReq.getPassword()); + scenicAccountMapper.update(account); + } else { + account = new ScenicAccountEntity(); + account.setId(SnowFlakeUtil.getLongId()); + account.setScenicId(scenicUpdateReq.getId()); + account.setName(scenicUpdateReq.getName() + "管理员"); + account.setAccount(scenicUpdateReq.getAccount()); + account.setPassword(scenicUpdateReq.getPassword()); + account.setIsSuper(1); + scenicAccountMapper.add(account); + } + } int i = scenicMapper.update(scenicUpdateReq); if (i > 0) { return ApiResponse.success(true); diff --git a/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java new file mode 100644 index 0000000..bc79db3 --- /dev/null +++ b/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java @@ -0,0 +1,152 @@ +package com.ycwl.basic.service.impl.task; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.facebody.model.v20191230.AddFaceEntityRequest; +import com.aliyuncs.facebody.model.v20191230.AddFaceRequest; +import com.aliyuncs.facebody.model.v20191230.AddFaceResponse; +import com.aliyuncs.facebody.model.v20191230.DeleteFaceEntityRequest; +import com.aliyuncs.facebody.model.v20191230.SearchFaceRequest; +import com.aliyuncs.facebody.model.v20191230.SearchFaceResponse; +import com.ycwl.basic.config.FaceDetectConfig; +import com.ycwl.basic.mapper.pc.DeviceMapper; +import com.ycwl.basic.mapper.pc.FaceMapper; +import com.ycwl.basic.mapper.pc.FaceSampleMapper; +import com.ycwl.basic.mapper.pc.ScenicMapper; +import com.ycwl.basic.model.pc.face.entity.FaceEntity; +import com.ycwl.basic.model.pc.face.resp.FaceRespVO; +import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity; +import com.ycwl.basic.model.pc.faceSample.req.FaceSampleReqQuery; +import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO; +import com.ycwl.basic.model.task.resp.AddFaceRespVo; +import com.ycwl.basic.model.task.resp.SearchFaceRespVo; +import com.ycwl.basic.service.task.TaskFaceService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.profile.DefaultProfile; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class TaskFaceServiceImpl implements TaskFaceService { + @Autowired + private FaceMapper faceMapper; + @Autowired + private FaceSampleMapper faceSampleMapper; + @Autowired + private ScenicMapper scenicMapper; + private static final String DATE_FORMAT="yyyyMMddHHmmssSSS"; + @Autowired + private DeviceMapper deviceMapper; + @Autowired + private FaceDetectConfig faceDetectConfig; + + private IAcsClient getClient() { + DefaultProfile profile = DefaultProfile.getProfile( + faceDetectConfig.getRegion(),faceDetectConfig.getAccessKeyId(), faceDetectConfig.getAccessKeySecret()); + IAcsClient client = new DefaultAcsClient(profile); + return client; + } + @Override + public SearchFaceRespVo searchFace(Long scenicId, Long faceId) { + FaceRespVO faceRespVO = faceMapper.getById(faceId); + IAcsClient client = getClient(); + SearchFaceRequest request = new SearchFaceRequest(); + request.setDbName(scenicId.toString()); + request.setImageUrl(faceRespVO.getFaceUrl()); + request.setLimit(100); + request.setQualityScoreThreshold(80F); + try { + SearchFaceResponse response = client.getAcsResponse(request); + List matchList = response.getData().getMatchList(); + if (matchList.isEmpty()) { + return null; + } + SearchFaceRespVo respVo = new SearchFaceRespVo(); + FaceEntity faceEntity = new FaceEntity(); + faceEntity.setId(faceId); + faceEntity.setMatchResult(JSON.toJSONString(matchList)); + faceEntity.setScore(matchList.get(0).getQualitieScore()); + List faceItems = matchList.get(0).getFaceItems().stream() + .filter(faceItemsItem -> faceItemsItem.getConfidence() > 50).collect(Collectors.toList()); + List faceSampleIds = faceItems.stream() + .map(SearchFaceResponse.Data.MatchListItem.FaceItemsItem::getExtraData) + .map(Long::parseLong) + .collect(Collectors.toList()); + faceEntity.setMatchSampleIds(StringUtils.joinWith(",", faceSampleIds)); + faceMapper.update(faceEntity); + respVo.setSampleListIds(faceSampleIds); + respVo.setScore(matchList.get(0).getQualitieScore()); + return respVo; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + public AddFaceRespVo addFaceSample(Long faceSampleId) { + FaceSampleRespVO faceSampleRespVO = faceSampleMapper.getById(faceSampleId); + AddFaceEntityRequest request = new AddFaceEntityRequest(); + request.setDbName(faceSampleRespVO.getScenicId().toString()); + SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); + String entityId = faceSampleRespVO.getDeviceId().toString() + "_" + sdf.format(faceSampleRespVO.getCreateAt()); + request.setEntityId(entityId); + IAcsClient client = getClient(); + try { + client.getAcsResponse(request); + } catch (ClientException e) { + return null; + } + AddFaceRequest addFaceRequest = new AddFaceRequest(); + addFaceRequest.setDbName(faceSampleRespVO.getScenicId().toString()); + addFaceRequest.setEntityId(entityId); + addFaceRequest.setImageUrl(faceSampleRespVO.getFaceUrl()); + addFaceRequest.setExtraData(faceSampleId.toString()); + AddFaceRespVo respVo = new AddFaceRespVo(); + try { + AddFaceResponse acsResponse = client.getAcsResponse(addFaceRequest); + FaceSampleEntity faceSampleEntity = new FaceSampleEntity(); + faceSampleEntity.setId(faceSampleId); + faceSampleEntity.setScore(acsResponse.getData().getQualitieScore()); + faceSampleEntity.setUpdateAt(new Date()); + faceSampleMapper.update(faceSampleEntity); + respVo.setScore(acsResponse.getData().getQualitieScore()); + } catch (ClientException e) { + return null; + } + return respVo; + } + + @Override + public void batchDeleteFace(Long scenicId) { + FaceSampleReqQuery query = new FaceSampleReqQuery(); + query.setDeviceId(scenicId); + faceSampleMapper.list(query); + Date thatDay = DateUtil.offsetDay(new Date(), -3); + Date dayStart = DateUtil.beginOfDay(thatDay); + Date dayEnd = DateUtil.endOfDay(thatDay); + query.setStartTime(dayStart); + query.setEndTime(dayEnd); + IAcsClient client = getClient(); + SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); + faceSampleMapper.list(query).forEach(faceSampleEntity -> { + String entityId = faceSampleEntity.getDeviceId().toString() + "_" + sdf.format(faceSampleEntity.getCreateAt()); + DeleteFaceEntityRequest request = new DeleteFaceEntityRequest(); + request.setDbName(scenicId.toString()); + request.setEntityId(entityId); + try { + client.getAcsResponse(request); + } catch (ClientException e) { + return; + } + }); + } +} diff --git a/src/main/java/com/ycwl/basic/service/task/TaskFaceService.java b/src/main/java/com/ycwl/basic/service/task/TaskFaceService.java new file mode 100644 index 0000000..76a2eaf --- /dev/null +++ b/src/main/java/com/ycwl/basic/service/task/TaskFaceService.java @@ -0,0 +1,13 @@ +package com.ycwl.basic.service.task; + +import com.ycwl.basic.model.task.resp.AddFaceRespVo; +import com.ycwl.basic.model.task.resp.SearchFaceRespVo; + +public interface TaskFaceService { + + SearchFaceRespVo searchFace(Long scenicId, Long faceId); + + AddFaceRespVo addFaceSample(Long faceSampleId); + + void batchDeleteFace(Long scenicId); +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index aef119f..6ee3a24 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -90,10 +90,15 @@ wx: #阿里云OSS aliYunOss: - endpoint: "https://oss-cn-chengdu.aliyuncs.com" - accessKeyId: "LTAI5t5cydpGpHfYqf31mEJA" - accessKeySecret: "xdFzlwzmE8QPPstbcZY82tU3xj7G0R" - bucketName: "scwzzn-file" - objectName: "image/" - url: "https://scwzzn-file.oss-cn-chengdu.aliyuncs.com/" - region: "cn-hangzhou" \ No newline at end of file + endpoint: "https://oss-cn-shanghai.aliyuncs.com" + accessKeyId: "LTAI5tCa641QdNHH9Ybg9u7V" + accessKeySecret: "RRVIgekoqx96Fgm2Gs7eQshMShcEpk" + bucketName: "frametour-assets" + objectName: "user-faces/" + url: "https://frametour-assets.oss-cn-shanghai.aliyuncs.com/" + region: "cn-shanghai" +#阿里云人脸检测 +aliYunFace: + accessKeyId: "LTAI5tMwrmxVcUEKoH5QzLHx" + accessKeySecret: "ZCIP8aKx1jwX1wkeYIPQEDZ8fPtN1c" + region: "cn-shanghai" \ No newline at end of file diff --git a/src/main/resources/mapper/pc/BrokerMapper.xml b/src/main/resources/mapper/pc/BrokerMapper.xml index a498c76..d2a6700 100644 --- a/src/main/resources/mapper/pc/BrokerMapper.xml +++ b/src/main/resources/mapper/pc/BrokerMapper.xml @@ -23,12 +23,20 @@ delete from broker where id = #{id} + \ No newline at end of file diff --git a/src/main/resources/mapper/pc/FaceMapper.xml b/src/main/resources/mapper/pc/FaceMapper.xml index 3e273d4..9fc6cb3 100644 --- a/src/main/resources/mapper/pc/FaceMapper.xml +++ b/src/main/resources/mapper/pc/FaceMapper.xml @@ -2,8 +2,8 @@ - insert into face(id, member_id, face_url, match_sample_ids, first_match_rate, match_result) - values (#{id}, #{memberId}, #{faceUrl}, #{matchSampleIds}, #{firstMatchRate}, #{matchResult}) + insert into face(id, score, member_id, face_url, match_sample_ids, first_match_rate, match_result) + values (#{id}, #{score}, #{memberId}, #{faceUrl}, #{matchSampleIds}, #{firstMatchRate}, #{matchResult}) update face @@ -11,6 +11,9 @@ member_id = #{memberId}, + + score = #{score}, + face_url = #{faceUrl}, diff --git a/src/main/resources/mapper/pc/FaceSampleMapper.xml b/src/main/resources/mapper/pc/FaceSampleMapper.xml index 3ad9cb7..7315c6a 100644 --- a/src/main/resources/mapper/pc/FaceSampleMapper.xml +++ b/src/main/resources/mapper/pc/FaceSampleMapper.xml @@ -42,9 +42,12 @@ diff --git a/src/main/resources/mapper/pc/ScenicAccountMapper.xml b/src/main/resources/mapper/pc/ScenicAccountMapper.xml new file mode 100644 index 0000000..8dd25d7 --- /dev/null +++ b/src/main/resources/mapper/pc/ScenicAccountMapper.xml @@ -0,0 +1,52 @@ + + + + + insert into scenic_account(id, scenic_id, is_super, name, account, password, create_time, update_time) + values (#{id}, #{scenicId}, #{isSuper}, #{name}, #{account}, #{password}, now(), now()) + + + update scenic_account + + + name = #{name}, + + + account = #{account}, + + + password = #{password}, + + update_time = now() + + where id = #{id} + + + update scenic_account + set status = (CASE + WHEN status = 1 THEN + 0 + WHEN status = 0 THEN + 1 + ELSE null + END) + where id = #{id} + + + delete from scenic_account where id = #{id} + + + delete from scenic_account where scenic_id = #{scenicId} + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/pc/ScenicMapper.xml b/src/main/resources/mapper/pc/ScenicMapper.xml index 68149e5..cb3e504 100644 --- a/src/main/resources/mapper/pc/ScenicMapper.xml +++ b/src/main/resources/mapper/pc/ScenicMapper.xml @@ -16,6 +16,9 @@ `name`=#{name}, + + `phone`=#{phone}, + introduction=#{introduction}, @@ -77,8 +80,10 @@ delete from scenic_config where scenic_id = #{scenicId} - + + +