master
parent
f941271019
commit
370caf60a4
@ -0,0 +1,47 @@
|
||||
package com.bsd.cases.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.bsd.cases.service.CaseContentScoreService;
|
||||
import com.bsd.cases.util.AjaxRequest;
|
||||
import com.bsd.cases.util.AjaxResult;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@CrossOrigin
|
||||
@RestController
|
||||
@RequestMapping("/case-content-score")
|
||||
public class CaseContentScoreController {
|
||||
|
||||
@Resource
|
||||
private CaseContentScoreService caseContentScoreService;
|
||||
|
||||
@RequestMapping("/add-score")
|
||||
public AjaxResult addScore(@RequestBody AjaxRequest ajaxRequest, HttpServletRequest request) {
|
||||
AjaxResult ajaxResult = new AjaxResult();
|
||||
JSONObject data = ajaxRequest.getData();
|
||||
if (null == data){
|
||||
ajaxResult.setRetcode(AjaxResult.FAILED);
|
||||
ajaxResult.setRetmsg("data missing");
|
||||
}else {
|
||||
Long contentId = data.getLong("contentId");
|
||||
Double score = data.getDouble("score");
|
||||
if (null==contentId){
|
||||
ajaxResult.setRetcode(AjaxResult.FAILED);
|
||||
ajaxResult.setRetmsg("文章id不可为空");
|
||||
return ajaxResult;
|
||||
}
|
||||
if (null == score){
|
||||
ajaxResult.setRetcode(AjaxResult.FAILED);
|
||||
ajaxResult.setRetmsg("评分不可为空");
|
||||
return ajaxResult;
|
||||
}
|
||||
ajaxResult = caseContentScoreService.addScore(contentId,score);
|
||||
}
|
||||
return ajaxResult;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.bsd.cases.mapper;
|
||||
|
||||
import com.bsd.cases.model.CaseContentScore;
|
||||
import com.bsd.cases.util.CommonMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface CaseContentScoreMapper extends CommonMapper<CaseContentScore> {
|
||||
Double getAverageScore(@Param("contentId")Long contentId);
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.bsd.cases.model;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("case_content_score")
|
||||
public class CaseContentScore extends BaseEntity{
|
||||
|
||||
private Long contentId;
|
||||
|
||||
private Double score;
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.bsd.cases.service;
|
||||
|
||||
import com.bsd.cases.util.AjaxResult;
|
||||
|
||||
public interface CaseContentScoreService<CaseContentScore> extends BaseService<CaseContentScore> {
|
||||
|
||||
AjaxResult addScore(Long contentId, Double score);
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package com.bsd.cases.service.impl;
|
||||
|
||||
import com.bsd.cases.constants.Constants;
|
||||
import com.bsd.cases.mapper.CaseContentMapper;
|
||||
import com.bsd.cases.mapper.CaseContentScoreMapper;
|
||||
import com.bsd.cases.mapper.CaseContentStaticalMapper;
|
||||
import com.bsd.cases.model.CaseContent;
|
||||
import com.bsd.cases.model.CaseContentScore;
|
||||
import com.bsd.cases.model.CaseContentStatical;
|
||||
import com.bsd.cases.service.CaseContentScoreService;
|
||||
import com.bsd.cases.util.AjaxResult;
|
||||
import org.apache.ibatis.annotations.Case;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
|
||||
@Service("caseContentScoreService")
|
||||
@Transactional
|
||||
public class CaseContentScoreServiceImpl extends BaseServiceImpl<CaseContentScoreMapper, CaseContentScore>
|
||||
implements CaseContentScoreService<CaseContentScore> {
|
||||
|
||||
@Resource
|
||||
private CaseContentScoreMapper caseContentScoreMapper;
|
||||
@Resource
|
||||
private CaseContentMapper caseContentMapper;
|
||||
@Resource
|
||||
private CaseContentStaticalMapper caseContentStaticalMapper;
|
||||
|
||||
/**
|
||||
* 评分
|
||||
* @param contentId
|
||||
* @param score
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult addScore(Long contentId, Double score) {
|
||||
AjaxResult ajaxResult = new AjaxResult();
|
||||
CaseContent findCaseContent = new CaseContent();
|
||||
findCaseContent.setState(Constants.STATE_VALID);
|
||||
findCaseContent.setId(contentId);
|
||||
CaseContent caseContent = caseContentMapper.selectOne(findCaseContent);
|
||||
if (null == caseContent){
|
||||
ajaxResult.setRetcode(AjaxResult.FAILED);
|
||||
ajaxResult.setRetmsg("未找到该文章");
|
||||
}else {
|
||||
if (score>5||score<0){
|
||||
ajaxResult.setRetcode(AjaxResult.FAILED);
|
||||
ajaxResult.setRetmsg("评分不可大于5或小于0");
|
||||
}else {
|
||||
CaseContentScore caseContentScore = new CaseContentScore();
|
||||
caseContentScore.setScore(score);
|
||||
caseContentScore.setContentId(contentId);
|
||||
caseContentScore.setCreateDateTime(new Date());
|
||||
caseContentScore.setUpdateDateTime(new Date());
|
||||
//set 人
|
||||
caseContentScore.setState(Constants.STATE_VALID);
|
||||
caseContentScoreMapper.insert(caseContentScore);
|
||||
Double averageScore = caseContentScoreMapper.getAverageScore(contentId);
|
||||
CaseContentStatical findCaseContentStatical = new CaseContentStatical();
|
||||
findCaseContentStatical.setState(Constants.STATE_VALID);
|
||||
findCaseContentStatical.setContentId(contentId);
|
||||
CaseContentStatical caseContentStatical = caseContentStaticalMapper.selectOne(findCaseContentStatical);
|
||||
caseContentStatical.setScore(averageScore);
|
||||
caseContentStatical.setUpdateDateTime(new Date());
|
||||
caseContentStaticalMapper.updateByPrimaryKeySelective(caseContentStatical);
|
||||
ajaxResult.setRetmsg("已成功评分");
|
||||
ajaxResult.setRetcode(AjaxResult.SUCCESS);
|
||||
}
|
||||
}
|
||||
return ajaxResult;
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.bsd.cases.mapper.CaseContentScoreMapper">
|
||||
<select id="getAverageScore" resultType="Double">
|
||||
SELECT round(AVG(score),1)as score FROM `case_content_score` where content_id = #{contentId};
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue