app
This commit is contained in:
@ -83,5 +83,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode ORDER_NOT_COMPLETE = new ErrorCode(1_004_099_009, "订单未完成");
|
||||
ErrorCode NEED_ADD_USER = new ErrorCode(1_007_901_004, "请先添加人员");
|
||||
ErrorCode ADMIN_CARD_NOT_EXISTS = new ErrorCode(1_007_901_005, "管理员卡不存在");
|
||||
|
||||
ErrorCode APP_UP_NOT_EXISTS = new ErrorCode(1_007_902_001, "app更新不存在");
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,99 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.appup;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.appup.vo.AppUpPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.appup.vo.AppUpRespVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.appup.vo.AppUpSaveReqVO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.appup.AppUpDO;
|
||||
import cn.iocoder.yudao.module.member.service.appup.AppUpService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
|
||||
@Tag(name = "管理后台 - app更新")
|
||||
@RestController
|
||||
@RequestMapping("/member/app-up")
|
||||
@Validated
|
||||
public class AppUpController {
|
||||
|
||||
@Resource
|
||||
private AppUpService appUpService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建app更新")
|
||||
//@PreAuthorize("@ss.hasPermission('member:app-up:create')")
|
||||
public CommonResult<Long> createAppUp(@Valid @RequestBody AppUpSaveReqVO createReqVO) {
|
||||
return success(appUpService.createAppUp(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新app更新")
|
||||
//@PreAuthorize("@ss.hasPermission('member:app-up:update')")
|
||||
public CommonResult<Boolean> updateAppUp(@Valid @RequestBody AppUpSaveReqVO updateReqVO) {
|
||||
appUpService.updateAppUp(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除app更新")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
//@PreAuthorize("@ss.hasPermission('member:app-up:delete')")
|
||||
public CommonResult<Boolean> deleteAppUp(@RequestParam("id") Long id) {
|
||||
appUpService.deleteAppUp(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得app更新")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
//@PreAuthorize("@ss.hasPermission('member:app-up:query')")
|
||||
public CommonResult<AppUpRespVO> getAppUp(@RequestParam("id") Long id) {
|
||||
AppUpDO appUp = appUpService.getAppUp(id);
|
||||
return success(BeanUtils.toBean(appUp, AppUpRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得app更新分页")
|
||||
//@PreAuthorize("@ss.hasPermission('member:app-up:query')")
|
||||
public CommonResult<PageResult<AppUpRespVO>> getAppUpPage(@Valid AppUpPageReqVO pageReqVO) {
|
||||
PageResult<AppUpDO> pageResult = appUpService.getAppUpPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, AppUpRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出app更新 Excel")
|
||||
//@PreAuthorize("@ss.hasPermission('member:app-up:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportAppUpExcel(@Valid AppUpPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<AppUpDO> list = appUpService.getAppUpPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "app更新.xls", "数据", AppUpRespVO.class,
|
||||
BeanUtils.toBean(list, AppUpRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.appup.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - app更新分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class AppUpPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "版本号")
|
||||
private String version;
|
||||
|
||||
@Schema(description = "更新方式", example = "2")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "老版本号")
|
||||
private String oldVersion;
|
||||
|
||||
@Schema(description = "老版本号")
|
||||
private String remarks;
|
||||
|
||||
@Schema(description = "更新内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "文件路径", example = "https://www.iocoder.cn")
|
||||
private String fileUrl;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.appup.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - app更新 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class AppUpRespVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12047")
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "版本号")
|
||||
@ExcelProperty("版本号")
|
||||
private String version;
|
||||
|
||||
@Schema(description = "更新方式", example = "2")
|
||||
@ExcelProperty("更新方式")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "老版本号")
|
||||
@ExcelProperty("老版本号")
|
||||
private String oldVersion;
|
||||
|
||||
@Schema(description = "老版本号")
|
||||
@ExcelProperty("老版本号")
|
||||
private String remarks;
|
||||
|
||||
@Schema(description = "更新内容")
|
||||
@ExcelProperty("更新内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "文件路径", example = "https://www.iocoder.cn")
|
||||
@ExcelProperty("文件路径")
|
||||
private String fileUrl;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.appup.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - app更新新增/修改 Request VO")
|
||||
@Data
|
||||
public class AppUpSaveReqVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12047")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "版本号")
|
||||
private String version;
|
||||
|
||||
@Schema(description = "更新方式", example = "2")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "老版本号")
|
||||
private String oldVersion;
|
||||
|
||||
@Schema(description = "老版本号")
|
||||
private String remarks;
|
||||
|
||||
@Schema(description = "更新内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "文件路径", example = "https://www.iocoder.cn")
|
||||
private String fileUrl;
|
||||
|
||||
}
|
@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.tag.MemberTagDO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||
import cn.iocoder.yudao.module.member.enums.point.MemberPointBizTypeEnum;
|
||||
import cn.iocoder.yudao.module.member.service.card.CardService;
|
||||
import cn.iocoder.yudao.module.member.service.group.MemberGroupService;
|
||||
import cn.iocoder.yudao.module.member.service.level.MemberLevelService;
|
||||
import cn.iocoder.yudao.module.member.service.point.MemberPointRecordService;
|
||||
@ -64,6 +65,8 @@ public class MemberUserController {
|
||||
private MemberGroupService memberGroupService;
|
||||
@Resource
|
||||
private MemberPointRecordService memberPointRecordService;
|
||||
@Resource
|
||||
private CardService cardService;
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新会员用户")
|
||||
@ -104,7 +107,14 @@ public class MemberUserController {
|
||||
@PreAuthorize("@ss.hasPermission('member:user:query')")
|
||||
public CommonResult<MemberUserRespVO> getUser(@RequestParam("id") Long id) {
|
||||
MemberUserDO user = memberUserService.getUser(id);
|
||||
return success(MemberUserConvert.INSTANCE.convert03(user));
|
||||
MemberUserRespVO memberUserRespVO = MemberUserConvert.INSTANCE.convert03(user);
|
||||
//if(StringUtils.isNotEmpty(memberUserRespVO.getFaceId())){
|
||||
// FaceVo faceData = cardService.getFaceData(memberUserRespVO.getFaceId());
|
||||
// System.out.println(faceData.toString());
|
||||
// //memberUserRespVO.setFaceData(faceData);
|
||||
//}
|
||||
|
||||
return success(memberUserRespVO);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@ -115,7 +125,6 @@ public class MemberUserController {
|
||||
if (CollUtil.isEmpty(pageResult.getList())) {
|
||||
return success(PageResult.empty());
|
||||
}
|
||||
|
||||
// 处理用户标签返显
|
||||
Set<Long> tagIds = pageResult.getList().stream()
|
||||
.map(MemberUserDO::getTagIds)
|
||||
@ -129,7 +138,14 @@ public class MemberUserController {
|
||||
// 处理用户分组返显
|
||||
List<MemberGroupDO> groups = memberGroupService.getGroupList(
|
||||
convertSet(pageResult.getList(), MemberUserDO::getGroupId));
|
||||
return success(MemberUserConvert.INSTANCE.convertPage(pageResult, tags, levels, groups));
|
||||
PageResult<MemberUserRespVO> memberUserRespVOPageResult = MemberUserConvert.INSTANCE.convertPage(pageResult, tags, levels, groups);
|
||||
//memberUserRespVOPageResult.getList().forEach(vo ->{
|
||||
// if(StringUtils.isNotEmpty(vo.getFaceId())){
|
||||
// Blob faceData = cardService.getFaceData(vo.getFaceId());
|
||||
// vo.setFaceData(faceData);
|
||||
// }
|
||||
//});
|
||||
return success(memberUserRespVOPageResult);
|
||||
}
|
||||
@GetMapping("/heat")
|
||||
@Operation(summary = "获得会员热量分析")
|
||||
|
@ -51,4 +51,9 @@ public class MemberUserRespVO extends MemberUserBaseVO {
|
||||
|
||||
@Schema(description = "绑定卡号")
|
||||
private String cardId;
|
||||
|
||||
@Schema(description = "绑定卡号")
|
||||
private String faceId;
|
||||
|
||||
private Byte[] faceData;
|
||||
}
|
||||
|
@ -0,0 +1,16 @@
|
||||
package cn.iocoder.yudao.module.member.controller.app.card.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* @author zt
|
||||
* @description <description class purpose>
|
||||
* @since 2024/7/10
|
||||
*/
|
||||
@Data
|
||||
@ToString
|
||||
public class FaceVo {
|
||||
private Long userId;
|
||||
private String featureValue;
|
||||
}
|
@ -12,7 +12,7 @@ public class AppMemberUserUpdateReqVO {
|
||||
private String nickname;
|
||||
|
||||
@Schema(description = "头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/x.png")
|
||||
@URL(message = "头像必须是 URL 格式")
|
||||
//@URL(message = "头像必须是 URL 格式")
|
||||
private String avatar;
|
||||
|
||||
@Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
|
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.member.dal.dataobject.appup;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* app更新 DO
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@TableName("member_app_up")
|
||||
@KeySequence("member_app_up_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class AppUpDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private String version;
|
||||
/**
|
||||
* 更新方式
|
||||
*/
|
||||
private String type;
|
||||
/**
|
||||
* 老版本号
|
||||
*/
|
||||
private String oldVersion;
|
||||
/**
|
||||
* 老版本号
|
||||
*/
|
||||
private String remarks;
|
||||
/**
|
||||
* 更新内容
|
||||
*/
|
||||
private String content;
|
||||
/**
|
||||
* 文件路径
|
||||
*/
|
||||
private String fileUrl;
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package cn.iocoder.yudao.module.member.dal.mysql.appup;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.appup.AppUpDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.appup.vo.*;
|
||||
|
||||
/**
|
||||
* app更新 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface AppUpMapper extends BaseMapperX<AppUpDO> {
|
||||
|
||||
default PageResult<AppUpDO> selectPage(AppUpPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<AppUpDO>()
|
||||
.eqIfPresent(AppUpDO::getVersion, reqVO.getVersion())
|
||||
.eqIfPresent(AppUpDO::getType, reqVO.getType())
|
||||
.eqIfPresent(AppUpDO::getOldVersion, reqVO.getOldVersion())
|
||||
.eqIfPresent(AppUpDO::getRemarks, reqVO.getRemarks())
|
||||
.eqIfPresent(AppUpDO::getContent, reqVO.getContent())
|
||||
.eqIfPresent(AppUpDO::getFileUrl, reqVO.getFileUrl())
|
||||
.betweenIfPresent(AppUpDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(AppUpDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.FaceVo;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -50,4 +51,6 @@ public interface CardMapper extends BaseMapperX<CardDO> {
|
||||
|
||||
|
||||
List<CardDO> selectMoneyList(List<Long> list);
|
||||
|
||||
FaceVo getFaceData(String faceId);
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.member.service.appup;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.appup.vo.*;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.appup.AppUpDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* app更新 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface AppUpService {
|
||||
|
||||
/**
|
||||
* 创建app更新
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createAppUp(@Valid AppUpSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新app更新
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateAppUp(@Valid AppUpSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除app更新
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteAppUp(Long id);
|
||||
|
||||
/**
|
||||
* 获得app更新
|
||||
*
|
||||
* @param id 编号
|
||||
* @return app更新
|
||||
*/
|
||||
AppUpDO getAppUp(Long id);
|
||||
|
||||
/**
|
||||
* 获得app更新分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return app更新分页
|
||||
*/
|
||||
PageResult<AppUpDO> getAppUpPage(AppUpPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package cn.iocoder.yudao.module.member.service.appup;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.appup.vo.*;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.appup.AppUpDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.appup.AppUpMapper;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* app更新 Service 实现类
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class AppUpServiceImpl implements AppUpService {
|
||||
|
||||
@Resource
|
||||
private AppUpMapper appUpMapper;
|
||||
|
||||
@Override
|
||||
public Long createAppUp(AppUpSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
AppUpDO appUp = BeanUtils.toBean(createReqVO, AppUpDO.class);
|
||||
appUpMapper.insert(appUp);
|
||||
// 返回
|
||||
return appUp.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAppUp(AppUpSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateAppUpExists(updateReqVO.getId());
|
||||
// 更新
|
||||
AppUpDO updateObj = BeanUtils.toBean(updateReqVO, AppUpDO.class);
|
||||
appUpMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAppUp(Long id) {
|
||||
// 校验存在
|
||||
validateAppUpExists(id);
|
||||
// 删除
|
||||
appUpMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateAppUpExists(Long id) {
|
||||
if (appUpMapper.selectById(id) == null) {
|
||||
throw exception(APP_UP_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AppUpDO getAppUp(Long id) {
|
||||
return appUpMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<AppUpDO> getAppUpPage(AppUpPageReqVO pageReqVO) {
|
||||
return appUpMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardSaveReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.card.vo.RechargeVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.FaceVo;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
@ -88,4 +89,6 @@ public interface CardService {
|
||||
AppCardMonthVO getMonthMoney(Long userId,String flag, String time);
|
||||
|
||||
Boolean rechargeByAdmin(RechargeVO vo);
|
||||
|
||||
FaceVo getFaceData(String faceId);
|
||||
}
|
@ -11,11 +11,11 @@ import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardSaveReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.card.vo.RechargeVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.card.vo.FaceVo;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.card.CardMapper;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper;
|
||||
import cn.iocoder.yudao.module.member.enums.CostTypeEnum;
|
||||
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
||||
import cn.iocoder.yudao.module.member.util.MemberConstants;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -47,9 +47,6 @@ public class CardServiceImpl implements CardService {
|
||||
|
||||
@Resource
|
||||
private CardMapper cardMapper;
|
||||
@Resource
|
||||
private MemberUserService userService;
|
||||
|
||||
@Resource
|
||||
private MemberGroupMapper memberGroupMapper;
|
||||
|
||||
@ -227,4 +224,9 @@ public class CardServiceImpl implements CardService {
|
||||
//批量添加
|
||||
return cardMapper.insertBatch(addList);
|
||||
}
|
||||
|
||||
|
||||
public FaceVo getFaceData(String faceId){
|
||||
return cardMapper.getFaceData(faceId);
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package cn.iocoder.yudao.module.member.service.card;
|
||||
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.sql.Blob;
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* className:ConvertBlobTypeHandler
|
||||
*
|
||||
* 自定义typehandler,解决mybatis存储blob字段后,出现乱码的问题
|
||||
* 配置mapper.xml:
|
||||
* <result typeHandler="cn.ffcs.drive.common.util.ConvertBlobTypeHandler"/>
|
||||
*
|
||||
* @author pengyh
|
||||
* @version 1.0.0
|
||||
* @date 2014-07-09 11:15:23
|
||||
*
|
||||
*/
|
||||
public class ConvertBlobTypeHandler extends BaseTypeHandler<String> {
|
||||
//###指定字符集
|
||||
private static final String DEFAULT_CHARSET = "utf-8";
|
||||
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i,
|
||||
String parameter, JdbcType jdbcType) throws SQLException {
|
||||
ByteArrayInputStream bis;
|
||||
try {
|
||||
//###把String转化成byte流
|
||||
bis = new ByteArrayInputStream(parameter.getBytes(DEFAULT_CHARSET));
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException("Blob Encoding Error!");
|
||||
}
|
||||
ps.setBinaryStream(i, bis, parameter.length());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(ResultSet rs, String columnName)
|
||||
throws SQLException {
|
||||
Blob blob = rs.getBlob(columnName);
|
||||
byte[] returnValue = null;
|
||||
if (null != blob) {
|
||||
returnValue = blob.getBytes(1, (int) blob.length());
|
||||
}
|
||||
try {
|
||||
//###把byte转化成string
|
||||
return new String(returnValue, DEFAULT_CHARSET);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException("Blob Encoding Error!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(CallableStatement cs, int columnIndex)
|
||||
throws SQLException {
|
||||
Blob blob = cs.getBlob(columnIndex);
|
||||
byte[] returnValue = null;
|
||||
if (null != blob) {
|
||||
returnValue = blob.getBytes(1, (int) blob.length());
|
||||
}
|
||||
try {
|
||||
return new String(returnValue, DEFAULT_CHARSET);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException("Blob Encoding Error!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(ResultSet arg0, int arg1)
|
||||
throws SQLException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
}
|
@ -21,4 +21,13 @@
|
||||
on uc.user_id = mc.user_id and uc.create_time = mc.create_time
|
||||
</select>
|
||||
|
||||
<resultMap type="cn.iocoder.yudao.module.member.controller.app.card.vo.FaceVo" id="face">
|
||||
<id column="user_id" property="userId"/>
|
||||
<result column="feature_value" property="featureValue" typeHandler="cn.iocoder.yudao.module.member.service.card.ConvertBlobTypeHandler"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="getFaceData" resultMap="face">
|
||||
select * from user_face where user_id = #{faceId};
|
||||
</select>
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user