diff --git a/playlet-admin/src/main/java/com/playlet/web/controller/app/PlayletPublicDetailAppController.java b/playlet-admin/src/main/java/com/playlet/web/controller/app/PlayletPublicDetailAppController.java index 3a227ce..0be2dc8 100644 --- a/playlet-admin/src/main/java/com/playlet/web/controller/app/PlayletPublicDetailAppController.java +++ b/playlet-admin/src/main/java/com/playlet/web/controller/app/PlayletPublicDetailAppController.java @@ -11,6 +11,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @Slf4j @Api(tags = "公众号*文章详情接口") @RestController @@ -30,9 +32,22 @@ public class PlayletPublicDetailAppController { @RequestParam(value = "pageNum") Integer pageNum, @RequestParam(value = "pageSize") Integer pageSize) { playletPublicDetail.setType("01"); + playletPublicDetail.setTopStatus("01"); return Result.success(playletPublicDetailAppService.getList(playletPublicDetail, pageNum, pageSize)); } + /** + * 分页查询任务列表 + */ + @ResponseBody + @PostMapping("/getTopList") + @ApiOperation(value = "查询置顶文章列表") + public Result> getTopList(@RequestBody PlayletPublicDetail playletPublicDetail) { + playletPublicDetail.setType("01"); + playletPublicDetail.setTopStatus("02"); + return Result.success(playletPublicDetailAppService.getTopList(playletPublicDetail)); + } + /** * 任务详情 */ diff --git a/playlet-admin/src/main/java/com/playlet/web/controller/app/PublicDetailCommentAppController.java b/playlet-admin/src/main/java/com/playlet/web/controller/app/PublicDetailCommentAppController.java index 008b2ff..9470d13 100644 --- a/playlet-admin/src/main/java/com/playlet/web/controller/app/PublicDetailCommentAppController.java +++ b/playlet-admin/src/main/java/com/playlet/web/controller/app/PublicDetailCommentAppController.java @@ -26,10 +26,10 @@ public class PublicDetailCommentAppController { @ResponseBody @PostMapping("/add") @ApiOperation(value = "新增用户评论") - public Result add(@RequestBody PublicDetailComment detailComment) { + public Result add(@RequestBody PublicDetailComment detailComment) { detailComment.setCreateTime(new Date()); detailCommentAppService.add(detailComment); - return Result.success(); + return Result.success(detailComment); } @ResponseBody diff --git a/playlet-admin/src/main/java/com/playlet/web/controller/system/PlayletPublicDetailController.java b/playlet-admin/src/main/java/com/playlet/web/controller/system/PlayletPublicDetailController.java index 0760e4a..65a319f 100644 --- a/playlet-admin/src/main/java/com/playlet/web/controller/system/PlayletPublicDetailController.java +++ b/playlet-admin/src/main/java/com/playlet/web/controller/system/PlayletPublicDetailController.java @@ -4,6 +4,7 @@ import java.util.List; import com.playlet.common.utils.StringUtils; import com.playlet.system.domain.PlayletPublicAccount; +import com.playlet.system.domain.PublicDetailComment; import com.playlet.system.service.IPlayletItemService; import com.playlet.system.service.IPlayletPublicAccountService; import com.playlet.system.service.IPublicDetailShareService; @@ -52,6 +53,17 @@ public class PlayletPublicDetailController extends BaseController return prefix + "/wxQrcode"; } + @PostMapping("/changeStatus") + @ResponseBody + public AjaxResult changeStatus(PlayletPublicDetail playletPublicDetail) + { + // 查询文章 + PlayletPublicDetail model = playletPublicDetailService.getById(playletPublicDetail.getId()); + model.setTopStatus(playletPublicDetail.getTopStatus()); + playletPublicDetailService.updateById(model); + return AjaxResult.success(); + } + @PostMapping("/checkExist") @ResponseBody public AjaxResult checkExist(@RequestBody Long id) { diff --git a/playlet-admin/src/main/java/com/playlet/web/controller/system/PublicDetailCommentController.java b/playlet-admin/src/main/java/com/playlet/web/controller/system/PublicDetailCommentController.java index 44c8280..4221126 100644 --- a/playlet-admin/src/main/java/com/playlet/web/controller/system/PublicDetailCommentController.java +++ b/playlet-admin/src/main/java/com/playlet/web/controller/system/PublicDetailCommentController.java @@ -154,15 +154,17 @@ public class PublicDetailCommentController extends BaseController // 查询评论 PublicDetailComment model = publicDetailCommentService.getById(publicDetailComment.getId()); // 查询是否已经有置顶的评论 - PublicDetailComment topModel = publicDetailCommentService.lambdaQuery() - .eq(PublicDetailComment::getDetailId, model.getDetailId()) - .eq(PublicDetailComment::getTopStatus, "02") - .one(); - if(topModel != null){ - topModel.setTopStatus("01"); - publicDetailCommentService.updateById(topModel); + if("02".equals(publicDetailComment.getTopStatus())){ + PublicDetailComment topModel = publicDetailCommentService.lambdaQuery() + .eq(PublicDetailComment::getDetailId, model.getDetailId()) + .eq(PublicDetailComment::getTopStatus, "02") + .one(); + if(topModel != null){ + topModel.setTopStatus("01"); + publicDetailCommentService.updateById(topModel); + } } - model.setTopStatus("02"); + model.setTopStatus(publicDetailComment.getTopStatus()); publicDetailCommentService.updateById(model); return AjaxResult.success(); } diff --git a/playlet-admin/src/main/java/com/playlet/web/controller/tool/WxController.java b/playlet-admin/src/main/java/com/playlet/web/controller/tool/WxController.java index 8649e4d..04475d4 100644 --- a/playlet-admin/src/main/java/com/playlet/web/controller/tool/WxController.java +++ b/playlet-admin/src/main/java/com/playlet/web/controller/tool/WxController.java @@ -31,6 +31,13 @@ public class WxController { return Result.success(wxService.getOpenidByCode(code)); } + @ApiOperation(value = "获取企业openId", httpMethod = "POST") + @PostMapping("/getCompanyOpenidByCode") + @ResponseBody + public Result getCompanyOpenidByCode(@RequestParam(value = "code") String code){ + return Result.success(wxService.getCompanyOpenidByCode(code)); + } + @ApiOperation(value = "前端入参appid等信息,获取openId", httpMethod = "POST") @PostMapping("/getOpenidByCodeAndId") @ResponseBody @@ -48,6 +55,22 @@ public class WxController { return Result.success(wxService.getWxInfo(openId, accessToken)); } + @ApiOperation(value = "获取非本企业用户信息", httpMethod = "POST") + @PostMapping("/getCompanyWxInfo") + @ResponseBody + public Result getCompanyWxInfo(@RequestParam(value = "openId") String openId, + @RequestParam(value = "accessToken") String accessToken){ + // todo 缺少企业获取用户信息的实现 + return Result.success(wxService.getWxInfo(openId, accessToken)); + } + + @ApiOperation(value = "获取企业用户信息", httpMethod = "POST") + @PostMapping("/getCompanyByUserId") + @ResponseBody + public Result getCompanyByUserId(@RequestParam(value = "userTicket") String userTicket){ + return Result.success(wxService.getCompanyByUserId(userTicket)); + } + @ApiOperation(value = "获取jsapi_ticket", httpMethod = "GET") @GetMapping("/getWxTicket") @ResponseBody diff --git a/playlet-admin/src/main/java/com/playlet/web/service/WxService.java b/playlet-admin/src/main/java/com/playlet/web/service/WxService.java index f669d4b..a4d4182 100644 --- a/playlet-admin/src/main/java/com/playlet/web/service/WxService.java +++ b/playlet-admin/src/main/java/com/playlet/web/service/WxService.java @@ -18,4 +18,8 @@ public interface WxService { Map getWxTicket(String requestUrl); + String getCompanyOpenidByCode(String code); + + String getCompanyByUserId(String userTicket); + } diff --git a/playlet-admin/src/main/java/com/playlet/web/service/app/PlayletPublicDetailAppService.java b/playlet-admin/src/main/java/com/playlet/web/service/app/PlayletPublicDetailAppService.java index 172ca55..6ff2ed2 100644 --- a/playlet-admin/src/main/java/com/playlet/web/service/app/PlayletPublicDetailAppService.java +++ b/playlet-admin/src/main/java/com/playlet/web/service/app/PlayletPublicDetailAppService.java @@ -4,9 +4,13 @@ import com.github.pagehelper.PageInfo; import com.playlet.system.domain.PlayletPublicAccount; import com.playlet.system.domain.PlayletPublicDetail; +import java.util.List; + public interface PlayletPublicDetailAppService { PageInfo getList(PlayletPublicDetail playletPublicDetail, Integer pageNum, Integer pageSize); PlayletPublicDetail getById(Long id); + List getTopList(PlayletPublicDetail playletPublicDetail); + } diff --git a/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PlayletPublicDetailAppServiceImpl.java b/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PlayletPublicDetailAppServiceImpl.java index f18bab2..44a6977 100644 --- a/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PlayletPublicDetailAppServiceImpl.java +++ b/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PlayletPublicDetailAppServiceImpl.java @@ -43,6 +43,15 @@ public class PlayletPublicDetailAppServiceImpl implements PlayletPublicDetailApp return PageInfo.of(list); } + @Override + public List getTopList(PlayletPublicDetail playletPublicDetail) { + List list = iPlayletPublicDetailService.selectPlayletPublicDetailList(playletPublicDetail); + list.forEach(model->{ + model.setPlayletPublicAccount(iPlayletPublicAccountService.selectPlayletPublicAccountById(model.getPublicId())); + }); + return list; + } + @Override public PlayletPublicDetail getById(Long id) { PlayletPublicDetail model = iPlayletPublicDetailService.getById(id); diff --git a/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailCommentAppServiceImpl.java b/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailCommentAppServiceImpl.java index 54ad313..c75901f 100644 --- a/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailCommentAppServiceImpl.java +++ b/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailCommentAppServiceImpl.java @@ -43,6 +43,7 @@ public class PublicDetailCommentAppServiceImpl implements PublicDetailCommentApp PageHelper.startPage(pageNum, pageSize); List comments = iPublicDetailCommentService.lambdaQuery() .eq(PublicDetailComment::getDetailId, detailComment.getDetailId()) + .eq(PublicDetailComment::getTopStatus, "01") .orderByDesc(PublicDetailComment::getStarCount) .orderByDesc(PublicDetailComment::getCreateTime) .list(); @@ -94,9 +95,22 @@ public class PublicDetailCommentAppServiceImpl implements PublicDetailCommentApp @Override public PublicDetailComment getTopComment(PublicDetailComment detailComment) { // 查询是否已经有置顶的评论 - return iPublicDetailCommentService.lambdaQuery() + PublicDetailComment model = iPublicDetailCommentService.lambdaQuery() .eq(PublicDetailComment::getDetailId, detailComment.getDetailId()) .eq(PublicDetailComment::getTopStatus, "02") .one(); + model.setCommentResponse(iPublicCommentResponseService.lambdaQuery().eq(PublicCommentResponse::getCommentId, model.getId()).one()); + if(detailComment.getUserId() != null){ + long star = iPublicCommentStarService.lambdaQuery() + .eq(PublicCommentStar::getCommentId, model.getId()) + .eq(PublicCommentStar::getUserId, detailComment.getUserId()) + .count(); + if(star > 0){ + model.setIsStar("02"); + }else { + model.setIsStar("01"); + } + } + return model; } } diff --git a/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailShareAppServiceImpl.java b/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailShareAppServiceImpl.java index 048c42b..5503cc7 100644 --- a/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailShareAppServiceImpl.java +++ b/playlet-admin/src/main/java/com/playlet/web/service/app/impl/PublicDetailShareAppServiceImpl.java @@ -26,9 +26,13 @@ public class PublicDetailShareAppServiceImpl implements PublicDetailShareAppServ @Override public void addRecord(PublicDetailShare publicDetailShare) { // 翻译 + PlayletPublicUser share = iPlayletPublicUserService.selectPlayletPublicUserById(publicDetailShare.getAuthorId()); PlayletPublicUser userOne = iPlayletPublicUserService.selectPlayletPublicUserById(publicDetailShare.getReaderOneId()); PlayletPublicUser userTwo = iPlayletPublicUserService.selectPlayletPublicUserById(publicDetailShare.getReaderTwoId()); publicDetailShare.setCreateTime(new Date()); + if(share != null){ + publicDetailShare.setAuthorName(share.getName()); + } if(userOne != null){ publicDetailShare.setReaderOneName(userOne.getName()); } diff --git a/playlet-admin/src/main/java/com/playlet/web/service/impl/WxServiceImpl.java b/playlet-admin/src/main/java/com/playlet/web/service/impl/WxServiceImpl.java index ee61cba..f11f12d 100644 --- a/playlet-admin/src/main/java/com/playlet/web/service/impl/WxServiceImpl.java +++ b/playlet-admin/src/main/java/com/playlet/web/service/impl/WxServiceImpl.java @@ -1,5 +1,7 @@ package com.playlet.web.service.impl; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.playlet.common.constant.PlayletConstants; import com.playlet.common.utils.http.HttpUtils; @@ -36,6 +38,18 @@ public class WxServiceImpl implements WxService { return null; } + private String getCompanyAccessToken() { + String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ww5bfaf714b2e57900&corpsecret=0JvbBfgkvbsm_fYdFI6e18-qR1sXn9wuCepHYb19d6w"; + log.info("调用微信获取access_token,入参url:{}", url); + String result = HttpUtils.sendGet(url); + log.info("调用微信获取access_token,响应内容:{}", result); + JSONObject json = JSONObject.parseObject(result); + if(json.containsKey(PlayletConstants.ACCESS_TOKEN)){ + return json.getString(PlayletConstants.ACCESS_TOKEN); + } + return null; + } + @Override public String getOpenidByCode(String code) { String url = "https://api.weixin.qq.com/sns/jscode2session?appid="+ wxConfig.getAppId() + "&secret=" + wxConfig.getSecret() + "&js_code=" + code + "&grant_type=authorization_code"; @@ -49,6 +63,34 @@ public class WxServiceImpl implements WxService { return null; } + @Override + public String getCompanyOpenidByCode(String code) { + String accessToken = this.getCompanyAccessToken(); + String url = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=" + accessToken + "&code=" + code; + log.info("调用微信获取openId,入参url:{}", url); + String result = HttpUtils.sendGet(url); + log.info("调用微信获取openId,响应内容:{}", result); + JSONObject json = JSONObject.parseObject(result); + if(json.containsKey("errcode") && "0".equals(json.getString("errcode"))){ + return result; + } + return null; + } + + @Override + public String getCompanyByUserId(String userTicket) { + String accessToken = this.getCompanyAccessToken(); + String url = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=" + accessToken; + Map headerMap = new HashMap<>(); + headerMap.put("Content-Type", "application/json"); + JSONObject body = new JSONObject(); + body.put("user_ticket", userTicket); + log.info("调用企业微信获取敏感信息,入参url:{}, 请求内容:{}", url, body); + HttpResponse result = HttpUtil.createPost(url).addHeaders(headerMap).body(JSONObject.toJSONString(body)).execute(); + log.info("调用微信获取openId,响应内容:{}", result); + return result.body(); + } + @Override public String getOpenidByCode(String code, String appId, String secret) { String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="+ appId + "&secret=" + secret + "&code=" + code + "&grant_type=authorization_code"; diff --git a/playlet-admin/src/main/resources/templates/system/playlet/detail/add.html b/playlet-admin/src/main/resources/templates/system/playlet/detail/add.html index 6fd9462..604f37b 100644 --- a/playlet-admin/src/main/resources/templates/system/playlet/detail/add.html +++ b/playlet-admin/src/main/resources/templates/system/playlet/detail/add.html @@ -51,6 +51,15 @@ +
+ +
+ +
+ +
+
+
@@ -187,6 +196,25 @@ }) + // 详情页 + $("#headUrlFile").fileinput({ + uploadUrl: ctx + 'tool/oss/uploadFromPlaylet', + maxFileCount: 1, + dropZoneEnabled: false, //是否显示拖拽区域 + showPreview: false, + autoReplace: true + }).on('fileuploaded', function (event, data, previewId, index) { + console.log(data); + if(data.response.success){ + $("input[name='headUrl']").val(data.response.msg) + }else { + alert("上传失败!"); + } + }).on('fileremoved', function (event, id, index) { + $("input[name='" + event.currentTarget.id + "']").val('') + $("input[name='headUrl']").val('') + }) + // 详情页 $("#pdfUrlFile").fileinput({ uploadUrl: ctx + 'tool/oss/uploadFromPlaylet', diff --git a/playlet-admin/src/main/resources/templates/system/playlet/detail/detail.html b/playlet-admin/src/main/resources/templates/system/playlet/detail/detail.html index e001df7..46a3264 100644 --- a/playlet-admin/src/main/resources/templates/system/playlet/detail/detail.html +++ b/playlet-admin/src/main/resources/templates/system/playlet/detail/detail.html @@ -50,6 +50,7 @@ \ No newline at end of file diff --git a/playlet-system/src/main/java/com/playlet/system/domain/PlayletPublicDetail.java b/playlet-system/src/main/java/com/playlet/system/domain/PlayletPublicDetail.java index 2ffcc41..038925d 100644 --- a/playlet-system/src/main/java/com/playlet/system/domain/PlayletPublicDetail.java +++ b/playlet-system/src/main/java/com/playlet/system/domain/PlayletPublicDetail.java @@ -74,6 +74,12 @@ public class PlayletPublicDetail extends BaseEntity @ApiModelProperty(value = "图片") private String imgUrl; + @ApiModelProperty(value = "头部图片") + private String headUrl; + + @ApiModelProperty(value = "精选文章 01.普通 02.精选") + private String topStatus; + @TableField(exist = false) private String pdfUrl; diff --git a/playlet-system/src/main/resources/mapper/system/PlayletPublicDetailMapper.xml b/playlet-system/src/main/resources/mapper/system/PlayletPublicDetailMapper.xml index 261a8a8..c4da266 100644 --- a/playlet-system/src/main/resources/mapper/system/PlayletPublicDetailMapper.xml +++ b/playlet-system/src/main/resources/mapper/system/PlayletPublicDetailMapper.xml @@ -28,6 +28,8 @@ + + @@ -36,8 +38,8 @@ - select id, public_id, item_id, read_count,star_count, - item_one,item_two,item_three,item_four,item_five, + select id, public_id, item_id, head_url, read_count,star_count, + item_one,item_two,item_three,item_four,item_five,top_status, item_six,item_seven,item_eight,item_nine,item_ten, title,type,author_alias,img_url, content, create_by, create_time, update_by, update_time, detail_tag, remark, address, transmit_count from playlet_public_detail @@ -49,6 +51,7 @@ and public_id = #{publicId} and type = #{type} and read_count = #{readCount} + and top_status = #{topStatus} and content = #{content} order by create_time desc @@ -83,6 +86,7 @@ item_nine, item_ten, img_url, + head_url, create_by, create_time, update_by, @@ -112,6 +116,7 @@ #{itemNine}, #{itemTen}, #{imgUrl}, + #{headUrl}, #{createBy}, #{createTime}, #{updateBy}, @@ -145,6 +150,7 @@ item_nine = #{itemNine}, item_ten = #{itemTen}, img_url = #{imgUrl}, + head_url = #{headUrl}, create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy},