Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
| | |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="列表图/视频" prop="files" > |
| | | <upload width="100px" height="100px" :max-length="1" @dele="delFile" :list="form.fileList" accept=".png,.jpg,.jpeg,.mp4" folder="news" @loading="loading = true" @success="fileResult($event)" /> |
| | | <upload width="100px" height="100px" :max-length="1" @dele="delFile" :list="form.fileList" accept=".png,.jpg,.jpeg,.mp4" folder="spokesman" @loading="loading = true" @success="fileResult($event)" /> |
| | | </el-form-item> |
| | | <el-form-item label="跳转类型" prop="linkType" required> |
| | | <el-radio-group v-model="form.linkType" > |
| | |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="图集上传 (最多9张)" v-if="form.fileType !=1"> |
| | | <upload width="100px" height="100px" :max-length="9" @dele="delFile" :list="fileImgList" accept=".png,.jpg,.jpeg" folder="news" @loading="loading = true" @success="fileResult($event)" /> |
| | | <upload width="100px" height="100px" :max-length="9" @dele="delFile" :list="fileImgList" accept=".png,.jpg,.jpeg" folder="spokesman" @loading="loading = true" @success="fileResult($event)" /> |
| | | </el-form-item> |
| | | <el-form-item label="视频上传(单个)" v-if="form.fileType === 1"> |
| | | <upload width="100px" height="100px" :max-length="1" @dele="delFile" :list="fileVideoList" accept=".mp4" folder="news" @loading="loading = true" @success="fileResult($event)" /> |
| | | <upload width="100px" height="100px" :max-length="1" @dele="delFile" :list="fileVideoList" accept=".mp4" folder="spokesman" @loading="loading = true" @success="fileResult($event)" /> |
| | | </el-form-item> |
| | | <el-form-item label="排序码(升序)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请输入排序码" v-trim/> |
| | |
| | | private String type; |
| | | private String video; |
| | | private String intro; |
| | | private Boolean isNew; |
| | | |
| | | } |
| | |
| | | private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1"; |
| | | //过期时间(s) 86400L=1天 604800L=7天 |
| | | private static final long expire = 86400L; |
| | | //redis过期时间 |
| | | private static final Integer redisExpire = 3; |
| | | |
| | | /** |
| | | * 生成token,根据userId和默认过期时间 |
| | |
| | | * 生成token,根据userId和默认过期时间 |
| | | */ |
| | | public static String generateTokenForZb(Long userId,String userType,String userInfo,RedisTemplate<String,Object> redisTemplate) { |
| | | Long expiredSeconds = getExpireSeconds(); |
| | | final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000); |
| | | return generateTokenZb(userId,userType,userInfo, expirationDate,redisTemplate); |
| | | } |
| | | |
| | | |
| | | public static String generateTokenZb(Long userId, String userType,String userInfo, Date expiredDate,RedisTemplate<String,Object> redisTemplate) { |
| | | String tokenKey = UUID.randomUUID() + "_" + userId; |
| | | redisTemplate.opsForValue().set(userType + "_" +tokenKey,userInfo); |
| | | redisTemplate.opsForValue().set(userType + "_" +tokenKey,userInfo,redisExpire,TimeUnit.HOURS); |
| | | return tokenKey; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 验证token是否失效 |
| | |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(Objects.isNull(member.getOpenid())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已注销,请重新登录"); |
| | | } |
| | | if(Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已删除,请联系管理员"); |
| | | } |
| | |
| | | return null; |
| | | } |
| | | |
| | | public static String desensitizationPhone(String phone) { |
| | | return phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); |
| | | } |
| | | |
| | | |
| | | |
| | | public enum VehiclePlateNoEnum { |
| | | /** |
| | |
| | | @ExcelColumn(name="姓名") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "member用户名称",hidden = true) |
| | | @TableField(exist = false) |
| | | private String memberName; |
| | | |
| | | @ApiModelProperty(value = "openid") |
| | | @TableField(exist = false) |
| | | private String openid; |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | MPJLambdaWrapper<CustomerLog> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.selectAll(CustomerLog.class) |
| | | .selectAs(Member::getName,CustomerLog::getMemberName) |
| | | .leftJoin(Customer.class,Customer::getId,CustomerLog::getCostomerId) |
| | | .eq(CustomerLog::getIsdeleted, Constants.ZERO) |
| | | .leftJoin(Member.class,Member::getId,Customer::getMemberId) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getType()),CustomerLog::getType, pageWrap.getModel().getType()) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Customer::getMemberId, pageWrap.getModel().getMemberId()); |
| | | if (pageWrap.getModel().getMemberId() != null) { |
| | |
| | | for (CustomerLog customerLog:pageData.getRecords()) { |
| | | if(Objects.nonNull(pageWrap.getModel().getIsHiddenPhone())&& Constants.equalsInteger(pageWrap.getModel().getIsHiddenPhone(),Constants.ZERO)){ |
| | | customerLog.setPhone( |
| | | customerLog.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2") |
| | | Constants.desensitizationPhone(customerLog.getPhone()) |
| | | ); |
| | | if(Constants.equalsInteger(customerLog.getType(),Constants.TWO)&& StringUtils.isNotBlank(customerLog.getMemberName())){ |
| | | customerLog.setName(customerLog.getMemberName()); |
| | | } |
| | | } |
| | | } |
| | | return pageData; |
| | |
| | | param.setArticleId(articleId); |
| | | param.setToken(ztBaseInfoResponse.getToken()); |
| | | param.setActionType(actionType); |
| | | ZTBaseResponse ztBaseResponse = zbomZhongTaiService.collectDo(param); |
| | | if(Objects.isNull(ztBaseResponse)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"中台接口响应失败"); |
| | | }else{ |
| | | if(!ztBaseResponse.getSuccess()){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"中台请求信息异常:"+ztBaseResponse.getMsg()); |
| | | } |
| | | } |
| | | zbomZhongTaiService.collectDo(param); |
| | | } |
| | | |
| | | @Override |
| | |
| | | // String openId = code; |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone")); |
| | | Users users = new Users(); |
| | | if(StringUtils.isBlank(iamId)){ |
| | | if(StringUtils.isNotBlank(iamId)){ |
| | | users = usersMapper.selectOne(new QueryWrapper<Users>().lambda() |
| | | .eq(Users::getIamId,iamId) |
| | | .last("limit 1") |
| | |
| | | member.setAuthStatus(Constants.ZERO); |
| | | } |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member); |
| | | if(Objects.isNull(ztUserGetTokenResponse)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!"); |
| | | }else{ |
| | | if(!Objects.isNull(ztUserGetTokenResponse)){ |
| | | member.setToken(ztUserGetTokenResponse.getToken()); |
| | | } |
| | | memberMapper.insert(member); |
| | |
| | | this.saveCustomerUser(users,member.getId()); |
| | | member = this.getMemberInfo(member.getId()); |
| | | } |
| | | String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate); |
| | | String token = JwtTokenUtil.generateTokenForZb(member.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setSessionKey(session.getSessionKey()); |
| | |
| | | } |
| | | |
| | | public void saveCustomerUser(Users users,Long memberId){ |
| | | if(!(Objects.nonNull(users)&&Objects.nonNull(memberId))){ |
| | | return; |
| | | } |
| | | if( customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda() |
| | | .eq(CustomerUser::getIsdeleted,Constants.ZERO) |
| | | .eq(CustomerUser::getUserId,users.getId()) |
| | | .eq(CustomerUser::getMemberId,memberId)) <= Constants.ZERO ){ |
| | | CustomerUser customerUser = new CustomerUser(); |
| | | customerUser.setUserId(users.getId()); |
| | | customerUser.setCreateDate(new Date()); |
| | | customerUser.setMemberId(memberId); |
| | | customerUser.setPhone(users.getPhone()); |
| | | customerUser.setIamUserId(users.getIamId()); |
| | | customerUser.setName(users.getName()); |
| | | customerUser.setUsername(users.getIamUsername()); |
| | | customerUser.setAddr(users.getShopAddress()); |
| | | customerUserMapper.insert(customerUser); |
| | | //TODO 等待调起中台接口 |
| | | if(Objects.nonNull(users)&&Objects.nonNull(memberId)) { |
| | | if (customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda() |
| | | .eq(CustomerUser::getIsdeleted, Constants.ZERO) |
| | | .eq(CustomerUser::getUserId, users.getId()) |
| | | .eq(CustomerUser::getMemberId, memberId)) <= Constants.ZERO) { |
| | | CustomerUser customerUser = new CustomerUser(); |
| | | customerUser.setUserId(users.getId()); |
| | | customerUser.setCreateDate(new Date()); |
| | | customerUser.setMemberId(memberId); |
| | | customerUser.setPhone(users.getPhone()); |
| | | customerUser.setIamUserId(users.getIamId()); |
| | | customerUser.setName(users.getName()); |
| | | customerUser.setUsername(users.getIamUsername()); |
| | | customerUser.setAddr(users.getShopAddress()); |
| | | customerUserMapper.insert(customerUser); |
| | | //TODO 等待调起中台接口 |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(StringUtils.isBlank(member.getPhone())){ |
| | | redisTemplate.delete(token); |
| | | return null; |
| | | } |
| | | //校验用户token信息 |
| | | MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),ZTConstants.CUSTOMER); |
| | | //调起中台注销接口 |
| | |
| | | .set(Member::getOpenid,null) |
| | | .set(Member::getPhone,null) |
| | | .set(Member::getEditDate,new Date()) |
| | | .eq(Member::getId,member.getId()) |
| | | .eq(Member::getOpenid,member.getOpenid()) |
| | | ); |
| | | redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId()); |
| | | redisTemplate.delete(token); |
| | | return ztBaseRequst; |
| | | } |
| | | |
| | |
| | | IPage<News> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<News> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if(Objects.isNull(pageWrap.getModel())){ |
| | | News news = new News(); |
| | | pageWrap.setModel(news); |
| | | } |
| | | pageWrap.getModel().setIsdeleted(Constants.ZERO); |
| | | queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,News::getEditor) |
| | | .selectAll(News.class) |
| | |
| | | |
| | | PageData<News> pageData = PageData.from(newsMapper.selectJoinPage(page, News.class,queryWrapper)); |
| | | if(pageData!=null && pageData.getRecords()!=null && pageData.getRecords().size()>0){ |
| | | |
| | | List<Long> idList = new ArrayList<>(); |
| | | for(News model : pageData.getRecords()){ |
| | | idList.add(model.getId()); |
| | |
| | | for(News model : pageData.getRecords()){ |
| | | setFilelistById(model,files); |
| | | } |
| | | |
| | | } |
| | | return pageData; |
| | | } |
| | |
| | | if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前账户已删除"); |
| | | } |
| | | if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){ |
| | | if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前账户已停用,请联系管理员"); |
| | | } |
| | | users.setOpenid(openId); |
| | | usersMapper.updateById(users); |
| | | //创建token |
| | | String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate); |
| | | String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate); |
| | | accountResponse.setToken(token); |
| | | getUsersDetail(users); |
| | | accountResponse.setSessionKey(session.getSessionKey()); |
| | |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员"); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){ |
| | |
| | | Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda() |
| | | .eq(Users::getPhone,phone).last("limit 1")); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setPhone(phone); |
| | | accountResponse.setPhone( Constants.desensitizationPhone(phone)); |
| | | if(Objects.isNull(users)){ |
| | | return accountResponse; |
| | | } |
| | | accountResponse.setUsers(users); |
| | | String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate); |
| | | String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate); |
| | | accountResponse.setToken(token); |
| | | return accountResponse; |
| | | } catch (Exception e) { |
| | |
| | | if(Objects.isNull(users)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(StringUtils.isBlank(users.getOpenid())){ |
| | | redisTemplate.delete(token); |
| | | return null; |
| | | } |
| | | //校验用户token信息 |
| | | MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS); |
| | | //调起中台注销接口 |
| | |
| | | usersMapper.update(new UpdateWrapper<Users>().lambda() |
| | | .set(Users::getOpenid,null) |
| | | .set(Users::getEditDate,new Date()) |
| | | .eq(Users::getId,users.getId()) |
| | | .eq(Users::getOpenid,users.getOpenid()) |
| | | ); |
| | | redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId()); |
| | | redisTemplate.delete(token); |
| | | return ztBaseRequst; |
| | | } |
| | | |
| | |
| | | import com.doumee.biz.zbom.model.zhongtai.*; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.*; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.config.annotation.UserLoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "分类数据 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getCatalogList") |
| | |
| | | }) |
| | | public ApiResponse<List<ZTCatalogInfoResponse>> getCatalogList (@RequestBody ZTCatalogListRequest ztCatalogListRequest ) { |
| | | ztCatalogListRequest.setUserId(getMemberId()+""); |
| | | ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztCatalogListRequest.setUserType(getUserType()); |
| | | List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest); |
| | | return ApiResponse.success("查询成功",ztCatalogInfoResponseList); |
| | | } |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "标签数据 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getCataLogTagList") |
| | |
| | | }) |
| | | public ApiResponse<List<ZTTagInfoResponse>> getCataLogTagList(@RequestBody ZTCatalogListRequest ztCatalogListRequest ) { |
| | | ztCatalogListRequest.setUserId(getMemberId()+""); |
| | | ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztCatalogListRequest.setUserType(getUserType()); |
| | | List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest); |
| | | return ApiResponse.success("查询成功",ztTagInfoResponseList); |
| | | } |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "行为内容接口 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/actionDo") |
| | |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "actionType", value = "行为类型:收藏:collect;取消收藏:collect_cancel;喜欢:like;取消喜欢:like_cancel;浏览:view;分享:share;下载:download", required = true), |
| | | }) |
| | | public ApiResponse actionDo(@RequestParam String id,@RequestParam String actionType) { |
| | | getZhongTaiDataService.actionDo(getMemberId(),ZTConstants.CUSTOMER,id,actionType); |
| | | getZhongTaiDataService.actionDo(getMemberId(),getUserType(),id,actionType); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "定制服务列表", notes = "客户端小程序") |
| | | @GetMapping("/getCustomizedNewsList") |
| | |
| | | return ApiResponse.success("查询成功",newsService.getCustomizedNewsList(Constants.ONE,null,null)); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "定制服务详情", notes = "客户端小程序") |
| | | @GetMapping("/getCustomizedNewsDetail") |
| | |
| | | return ApiResponse.success("查询成功",newsService.getCustomizedNewsDetail(id)); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "保存推广咨询分享记录", notes = "客户端小程序") |
| | | @GetMapping("/saveShareRecord") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTCusFavoritesInfoResponse>> getZhongTaiCusFavorite(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTCusFavoritesInfoResponse> ztBasePageResponse = getZhongTaiDataService.getZhongTaiCusFavorite(ztContentListRequest); |
| | | return ApiResponse.success("获取成功",ztBasePageResponse); |
| | | } |
| | |
| | | }) |
| | | public ApiResponse<List<ZTCusCarouselImageResponse>> getZhongTaiCarouselImage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | List<ZTCusCarouselImageResponse> ztCusCarouselImageResponseList = getZhongTaiDataService.getZhongTaiCarouselImage(ztContentListRequest); |
| | | return ApiResponse.success("获取成功",ztCusCarouselImageResponseList); |
| | | } |
| | |
| | | }) |
| | | public ApiResponse<ZTCusCarouselImageResponse> getZhongTaiCarouselImageDetail(@RequestBody ZTDataDetailRequest ztDataDetailRequest) { |
| | | ztDataDetailRequest.setUserId(getMemberId()+""); |
| | | ztDataDetailRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztDataDetailRequest.setUserType(getUserType()); |
| | | ZTCusCarouselImageResponse ztCusCarouselImageResponse = getZhongTaiDataService.getZhongTaiCarouselImageDetail(ztDataDetailRequest); |
| | | return ApiResponse.success("获取成功",ztCusCarouselImageResponse); |
| | | } |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "咨询分页列表 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getZhongTaiProductNewsPage") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTProductNewsInfoResponse>> getZhongTaiProductNewsPage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTProductNewsInfoResponse> ztBasePageResponse= getZhongTaiDataService.getZhongTaiProductNewsPage(ztContentListRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "产品分页列表 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getZhongTaiProductPage") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTProductInfoResponse>> getZhongTaiProductPage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTProductInfoResponse> ztBasePageResponse= getZhongTaiDataService.getZhongTaiProductPage(ztContentListRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "实景分页列表 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getZhongTaiRealcasePage") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTRealcaseInfoResponse>> getZhongTaiRealcasePage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTRealcaseInfoResponse> ztBasePageResponse= getZhongTaiDataService.getZhongTaiRealcasePage(ztContentListRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "视频分页列表 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getZhongTaiVideoPage") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTVideoInfoResponse>> getZhongTaiVideoPage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTVideoInfoResponse> ztBasePageResponse= getZhongTaiDataService.getZhongTaiVideoPage(ztContentListRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "全屋案例分页列表 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getZhongTaiWholecasePage") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTCaseInfoResponse>> getZhongTaiWholecasePage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTCaseInfoResponse> ztBasePageResponse= getZhongTaiDataService.getZhongTaiWholecasePage(ztContentListRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "志说装修分页列表 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/getZhongTaiZbDecoPage") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTZbDecoInfoResponse>> getZhongTaiZbDecoPage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztContentListRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTZbDecoInfoResponse> ztBasePageResponse= getZhongTaiDataService.getZhongTaiZbDecoPage(ztContentListRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "全屋案例详情 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/getWholecaseInfo") |
| | |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse<ZTCaseInfoResponse> getWholecaseInfo(@RequestParam String id) { |
| | | ZTCaseInfoResponse ztCaseInfoResponse= getZhongTaiDataService.getWholecaseInfo(id,ZTConstants.CUSTOMER,getMemberId()); |
| | | ZTCaseInfoResponse ztCaseInfoResponse= getZhongTaiDataService.getWholecaseInfo(id,getUserType(),getMemberId()); |
| | | return ApiResponse.success("查询成功",ztCaseInfoResponse); |
| | | } |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @GetMapping("/getProductNewsInfo") |
| | | @ApiOperation(value = "产品资讯详情 - 中台", notes = "客户端小程序") |
| | |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse<ZTProductNewsInfoResponse> getProductNewsInfo(@RequestParam String id) { |
| | | ZTProductNewsInfoResponse ztProductNewsInfoResponse= getZhongTaiDataService.getProductNewsInfo(id,ZTConstants.CUSTOMER,getMemberId()); |
| | | ZTProductNewsInfoResponse ztProductNewsInfoResponse= getZhongTaiDataService.getProductNewsInfo(id,getUserType(),getMemberId()); |
| | | return ApiResponse.success("查询成功",ztProductNewsInfoResponse); |
| | | } |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "实景案例 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/getRealcaseInfo") |
| | |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse<ZTRealcaseInfoResponse> getRealcaseInfo(@RequestParam String id) { |
| | | ZTRealcaseInfoResponse ztRealcaseInfoResponse= getZhongTaiDataService.getRealcaseInfo(id,ZTConstants.CUSTOMER,getMemberId()); |
| | | ZTRealcaseInfoResponse ztRealcaseInfoResponse= getZhongTaiDataService.getRealcaseInfo(id,getUserType(),getMemberId()); |
| | | return ApiResponse.success("查询成功",ztRealcaseInfoResponse); |
| | | } |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "产品详情 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/getProductInfo") |
| | |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse<ZTProductInfoResponse> getProductInfo(@RequestParam String id) { |
| | | ZTProductInfoResponse ztProductInfoResponse= getZhongTaiDataService.getProductInfo(id,ZTConstants.CUSTOMER,getMemberId()); |
| | | ZTProductInfoResponse ztProductInfoResponse= getZhongTaiDataService.getProductInfo(id,getUserType(),getMemberId()); |
| | | return ApiResponse.success("查询成功",ztProductInfoResponse); |
| | | } |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @LoginRequired |
| | | @ApiOperation(value = "我的收藏/喜欢列表 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/collectLikePage") |
| | |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>> collectLikePage(@RequestBody ZTCollectLikeRequest ztCollectLikeRequest) { |
| | | ztCollectLikeRequest.setUserId(getMemberId()+""); |
| | | ztCollectLikeRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ztCollectLikeRequest.setUserType(getUserType()); |
| | | ZTBasePageResponse<ZTCollectLikeInfoResponse> ztBasePageResponse= getZhongTaiDataService.collectLikePage(ztCollectLikeRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "【B端小程序】每日上新数据") |
| | | @GetMapping("/getDailyUpdates") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "fileType", value = "附件类型 0图片 1视频", required = false) |
| | | }) |
| | | public ApiResponse<DailyUpdatesResponse> getDailyUpdates(Integer fileType) { |
| | |
| | | } |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation("【B端小程序】 推广咨询分页") |
| | | @PostMapping("/newsPage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse<PageData<News>> newsPage (@RequestBody PageWrap<News> pageWrap) { |
| | | return ApiResponse.success(newsService.findPage(pageWrap)); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "手机号快捷登录", notes = "客户端小程序") |
| | | @ApiOperation(value = "手机号快捷登录", notes = "员工端小程序") |
| | | @PostMapping("/getWxMiniPhoneLogin") |
| | | public ApiResponse<AccountResponse> getWxMiniPhone(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) { |
| | | return ApiResponse.success("获取成功",usersService.getWxMiniPhoneLogin(wxPhoneRequest)); |
| | |
| | | crmCustomerListRequest.setUserId(getUserId()); |
| | | return ApiResponse.success(getCrmDataService.getCrmCustomerList(crmCustomerListRequest)); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "分类数据 - 中台", notes = "员工端小程序") |
| | | @PostMapping("/getCatalogList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse<List<ZTCatalogInfoResponse>> getCatalogList (@RequestBody ZTCatalogListRequest ztCatalogListRequest ) { |
| | | List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest); |
| | | return ApiResponse.success("查询成功",ztCatalogInfoResponseList); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "标签数据 - 中台", notes = "员工端小程序") |
| | | @PostMapping("/getCataLogTagList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse<List<ZTTagInfoResponse>> getCataLogTagList(@RequestBody ZTCatalogListRequest ztCatalogListRequest ) { |
| | | List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest); |
| | | return ApiResponse.success("查询成功",ztTagInfoResponseList); |
| | | } |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "用户注销", notes = "员工端小程序") |
| | |
| | | "requires": { |
| | | "jsbn": "^1.1.0" |
| | | } |
| | | }, |
| | | "moment": { |
| | | "version": "2.30.1", |
| | | "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", |
| | | "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" |
| | | }, |
| | | "mp-html": { |
| | | "version": "2.5.0", |
| | | "resolved": "https://registry.npmmirror.com/mp-html/-/mp-html-2.5.0.tgz", |
| | | "integrity": "sha512-uvBH5tIaDIlj8qaxsvNXU3RKX0jvXOo3J6FAi/notUv/ds6j79UUTE82aDkxxUk0eLUU0CiCqMrR7WWnytk30Q==" |
| | | } |
| | | } |
| | | } |
| | |
| | | "main": ".eslintrc.js", |
| | | "dependencies": { |
| | | "@vant/weapp": "^1.11.6", |
| | | "miniprogram-sm-crypto": "^0.3.13" |
| | | "miniprogram-sm-crypto": "^0.3.13", |
| | | "moment": "^2.30.1", |
| | | "mp-html": "^2.5.0" |
| | | }, |
| | | "devDependencies": {}, |
| | | "scripts": { |
| | |
| | | import { newsPage } from '../../api/index' |
| | | import moment from "moment"; |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | */ |
| | | data: { |
| | | capacity: 10, |
| | | page: 0, |
| | | page: 1, |
| | | list: [], |
| | | total: 0, |
| | | }, |
| | |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | |
| | | this.getList() |
| | | }, |
| | | getList() { |
| | | newsPage() |
| | | newsPage({capacity:this.data.capacity, |
| | | page:this.data.page, |
| | | model:{type:0}}) |
| | | .then(res =>{ |
| | | if(this.data.page == res.data.page){ |
| | | res.data.records.forEach(element => { |
| | | element.createDate = moment(element.createDate).format("yyyy/MM/DD") |
| | | }) |
| | | this.setData({list: [...this.data.list, ...res.data.records || []], |
| | | total:res.data.total}) |
| | | } |
| | | console.log(this.data) |
| | | }) |
| | | }, |
| | | onReady() { |
| | | |
| | |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | | onReachBottom() { |
| | | console.log('触底事件'); |
| | | const { total, list, page } = this.data |
| | | if(total > list.length){ |
| | | this.setData({ page: page + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: '暂无更多数据', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | downfile(e){ |
| | | const item = e.currentTarget.dataset.index; |
| | | const files = [] |
| | | if(item.fileType ==1 && item.fileList && item.fileList.length && item.fileList[0].fileurlFull ){ |
| | | files.push(item.fileList[0].fileurlFull) |
| | | } |
| | | if(item.fileType !=1 && item.fileList && item.fileList.length ){ |
| | | item.fileList.forEach(ee => { |
| | | if(ee.fileurlFull){ |
| | | files.push(ee.fileurlFull) |
| | | } |
| | | }) |
| | | } |
| | | if(item.fileType ==1){ |
| | | this.downloadVideoFileDo(files,item.title) |
| | | }else{ |
| | | this.downloadImageFileDo(files,item.title) |
| | | } |
| | | }, |
| | | downloadImageFileDo(files,title){ |
| | | wx.showLoading({ |
| | | title: '正在下载', |
| | | }) |
| | | let temp = 0; |
| | | if(files.length){ |
| | | for(let i = 0;i<files.length;i++){ |
| | | let filePath = wx.env.USER_DATA_PATH + '/' + new Date().valueOf()+i + '.jpg' ; |
| | | wx.downloadFile({ |
| | | url: files[i], |
| | | filePath: filePath, |
| | | timeout:180000, |
| | | success: function (res) { |
| | | var tempFp = res.filePath |
| | | wx.saveImageToPhotosAlbum({ |
| | | filePath: tempFp, |
| | | success(result) { |
| | | temp ++; |
| | | console.log(result) |
| | | if(temp == files.length){ |
| | | wx.hideLoading(); |
| | | wx.setClipboardData({ |
| | | data: title, |
| | | success: function (res) { |
| | | wx.getClipboardData({ |
| | | success: function (res) { |
| | | wx.showToast({ |
| | | title: '文案已复制成功,去分享吧' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, fail(err) { |
| | | wx.showToast({ |
| | | title: '图片下载失败哦' |
| | | }) |
| | | } |
| | | }) |
| | | } , fail(err) { |
| | | wx.showToast({ |
| | | title: '图片下载失败哦' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | downloadVideoFileDo(files,title){ |
| | | wx.showLoading({ |
| | | title: '正在下载', |
| | | }) |
| | | if(files.length){ |
| | | let filePath = wx.env.USER_DATA_PATH + '/' + new Date().valueOf() + '0.mp4'; |
| | | wx.downloadFile({ |
| | | url: files[0], |
| | | filePath: filePath, |
| | | timeout:180000, |
| | | success: function (res) { |
| | | var tempFp = res.filePath |
| | | wx.saveVideoToPhotosAlbum({ |
| | | filePath: tempFp, |
| | | success(result) { |
| | | console.log(result) |
| | | wx.hideLoading(); |
| | | wx.setClipboardData({ |
| | | data: title, |
| | | success: function (res) { |
| | | wx.getClipboardData({ |
| | | success: function (res) { |
| | | wx.showToast({ |
| | | title: '文案已复制成功,去分享吧' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, fail(err) { |
| | | wx.showToast({ |
| | | title: '视频下载失败哦' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | |
| | | <view class="container"> |
| | | <view class="home_title">推广发布</view> |
| | | <view class="content"> |
| | | <view class="time">2022/22/22</view> |
| | | <view class="text">懂生活,会设计,意式简约单人沙发椅,为您创造多种可能的生活方式</view> |
| | | <view class="imgs"> |
| | | <view class="img_wrap"> |
| | | <image class="img" mode="widthFix" src=""></image> |
| | | <!-- <image class="icon" src="../../static/ic_top1@2x.png" mode="widthFix"></image> --> |
| | | <view> |
| | | <view class="content" data-id="{{ item.id }}" wx:for="{{ list }}" wx:for-item="item" > |
| | | <view class="time" >{{ item.createDate }}</view> |
| | | <view class="text">{{item.title }}</view> |
| | | <view class="imgs"> |
| | | <video controls wx:if="{{item.fileType ==1 && item.fileList &&item.fileList.length}}" src="{{item.fileList[0].fileurlFull}}" class="video"></video> |
| | | <view wx:if="{{item.fileType !=1 && item.fileList}}" data-id="{{ item.id }}" wx:for-item="item1" wx:for="{{ item.fileList }}" class="img_wrap"> |
| | | <image class="img" mode="widthFix" src="{{item1.fileurlFull}}"></image> |
| | | </view> |
| | | </view> |
| | | <view class="img_wrap"> |
| | | <image class="img" mode="widthFix" src=""></image> |
| | | <!-- <image class="icon" src="../../static/ic_top2@2x.png" mode="widthFix"></image> --> |
| | | <view class="footer"> |
| | | <view class="left"> |
| | | <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image> |
| | | <text>{{item.donwloadNum}}</text> |
| | | </view> |
| | | <view class="btn" bind:tap="downfile" data-index="{{item}}">立即分享</view> |
| | | </view> |
| | | <view class="img_wrap"> |
| | | <image class="img" mode="widthFix" src=""></image> |
| | | <!-- <image class="icon" src="../../static/ic_top3@2x.png" mode="widthFix"></image> --> |
| | | </view> |
| | | </view> |
| | | <view class="footer"> |
| | | <view class="left"> |
| | | <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image> |
| | | <text>123123</text> |
| | | </view> |
| | | <view class="btn">立即分享</view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | |
| | | background: #F7F7F7; |
| | | border-radius: 8rpx; |
| | | padding: 34rpx 40rpx 40rpx; |
| | | margin-bottom: 40rpx; |
| | | } |
| | | .content .time { |
| | | font-weight: 500; |
| | |
| | | } |
| | | .content .imgs { |
| | | display: flex; |
| | | width: 100%; |
| | | flex-wrap: wrap; |
| | | } |
| | | .content .imgs .img_wrap { |
| | | width: 184rpx; |
| | |
| | | border: 1px solid; |
| | | position: relative; |
| | | margin-right: 20rpx; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | .content .imgs .img_wrap:nth-of-type(3n) { |
| | | margin-right: 0; |
| | | } |
| | | .content .imgs .img_wrap .img { |
| | | width: 100%; |
| | | height: 100%; |
| | | max-height: 100%; |
| | | } |
| | | .content .imgs .video { |
| | | width: 100%; |
| | | max-height: 100%; |
| | | } |
| | | .content .imgs .img_wrap .icon { |
| | | position: absolute; |
| | |
| | | }) |
| | | } |
| | | }) |
| | | // wx.saveFile({ |
| | | // tempFilePath: res.tempFilePath, |
| | | // success: function (res) { |
| | | // console.log(res.savedFilePath) |
| | | // } |
| | | // }) |
| | | |
| | | } |
| | | }) |
| | | }, |
| | |
| | | import { baseUrl } from "./config" |
| | | |
| | | import { baseUrl } from "./config" |
| | | export function request(options){ |
| | | let loading = options.loading || '1' // 默认值1显示,否则不显示 |
| | | if(loading == '1'){ |