maven镜像:
<mirror>
<id>huaweicloud</id>
<url>https://repo.huaweicloud.com/repository/maven</url>
<mirrorOf>central</mirrorOf>
</mirror>
eureka-server:
yml:
spring:
application:
name: eureka-server
eureka:
client:
service-url:
defaultZone: http://localhost:5051/eureka
register-with-eureka: false
fetch-registry: false
server:
port: 5051
main方法:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
公共项目:
实体类:
package org.example.entity;
import java.io.Serializable;
public class Options implements Serializable {
private int id;
private String optContent;
private int vote;
private int sid;
private int voteTotal;
public int getVoteTotal() {
return voteTotal;
}
public void setVoteTotal(int voteTotal) {
this.voteTotal = voteTotal;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getOptContent() {
return optContent;
}
public void setOptContent(String optContent) {
this.optContent = optContent;
}
public int getVote() {
return vote;
}
public void setVote(int vote) {
this.vote = vote;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
}
package org.example.entity;
import java.io.Serializable;
import java.util.Date;
public class Subjects implements Serializable {
private int id;
private String title;
private int totalVotes;
private int viewTimes;
private Date createDate;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getTotalVotes() {
return totalVotes;
}
public void setTotalVotes(int totalVotes) {
this.totalVotes = totalVotes;
}
public int getViewTimes() {
return viewTimes;
}
public void setViewTimes(int viewTimes) {
this.viewTimes = viewTimes;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}
remote
public interface OptionsRemote {
@RequestMapping("selectById")
BizVo<List<Options>> selectById(@RequestBody Map<String,Object> map);
@RequestMapping("updateVote")
BizVo<Boolean> updateVote(@RequestBody Map<String,Object> params);
}
public interface SubjectsRemote {
@RequestMapping("subjectByPage")
BizVo<PageInfo<Subjects>> getByPage(@RequestBody Map<String,Object> params);
@RequestMapping("subById")
BizVo<Subjects> getBySub(@RequestBody Map<String,Object> params);
@RequestMapping("updateView")
BizVo<Boolean> updateView(@RequestBody Map<String,Object> params);
@RequestMapping("updateVote")
BizVo<Boolean> updateVote(@RequestBody Map<String,Object> params);
}
工具类
package org.example.util;
public class BizVo<T> {
private int code;
private String msg;
private T payload;
public BizVo() {
}
public BizVo(int code, String msg, T payload) {
this.code = code;
this.msg = msg;
this.payload = payload;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getPayload() {
return payload;
}
public void setPayload(T payload) {
this.payload = payload;
}
}
项目:
dao层
@Mapper
@Repository
public interface OptionsMapper {
List<Options> selectById(int sid);
int updateVote(int id);
}
@Mapper
@Repository
public interface SubjectsMapper {
List<Subjects> subjectList(Map<String,Object> params);
Subjects selectId(int id);
int updateView(int id);
int updateVote(int id);
}
mapper文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.zcoptions.dao.OptionsMapper">
<select id="selectById" resultType="org.example.entity.Options">
select id,optContent,vote,sid from options
where sid = #{sid}
</select>
<update id="updateVote">
update options set vote=vote+1 where id = #{id}
</update>
</mapper>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.zcsubjects.dao.SubjectsMapper">
<select id="subjectList" resultType="org.example.entity.Subjects">
select * from subjects
order by createDate desc
</select>
<select id="selectId" resultType="org.example.entity.Subjects">
select * from subjects where id = #{id}
</select>
<update id="updateView">
update subjects set viewTimes = viewTimes+1 where id = #{id}
</update>
<update id="updateVote">
update subjects set totalVotes = totalVotes+1 where id = #{id}
</update>
</mapper>
service:
public interface OptionsService {
List<Options> getById(int sid);
boolean updateVote(int id);
}
public interface SubjectsService {
PageInfo<Subjects> pageInfo(Map<String,Object> params);
Subjects getBySub(int id);
boolean updateView(int id);
boolean updateVote(int id);
}
serviceImpl:
@Service
public class OptionServiceImpl implements OptionsService {
@Autowired
private OptionsMapper optionsMapper;
@Override
public List<Options> getById(int sid) {
return optionsMapper.selectById(sid);
}
@Override
public boolean updateVote(int id) {
if(optionsMapper.updateVote(id)>0){
return true;
}
return false;
}
}
@Service
public class SubjectsServiceImpl implements SubjectsService {
@Autowired
private SubjectsMapper subjectsMapper;
@Override
public PageInfo<Subjects> pageInfo(Map<String, Object> params) {
PageHelper.startPage(params);
List<Subjects> subjectsList = subjectsMapper.subjectList(params);
return new PageInfo<>(subjectsList);
}
@Override
public Subjects getBySub(int id) {
return subjectsMapper.selectId(id);
}
@Override
public boolean updateView(int id) {
if (subjectsMapper.updateView(id)>0){
return true;
}
return false;
}
@Override
public boolean updateVote(int id) {
if(subjectsMapper.updateVote(id)>0){
return true;
}
return false;
}
}
controller:
@RestController
@CrossOrigin
public class OptionsController implements OptionsRemote {
@Autowired
private OptionsService optionsService;
@Override
public BizVo<List<Options>> selectById(Map<String, Object> map) {
int id = Integer.parseInt(map.get("id").toString());
List<Options> getoptions = optionsService.getById(id);
BizVo<List<Options>> bizVo = new BizVo<>(200,"success",getoptions);
return bizVo;
}
@Override
public BizVo<Boolean> updateVote(Map<String, Object> params) {
int id = Integer.parseInt(params.get("id").toString());
BizVo<Boolean> bizVo = new BizVo<>(200,"success",optionsService.updateVote(id));
return bizVo;
}
}
@RestController
@CrossOrigin
public class SubjectsController implements SubjectsRemote {
@Autowired
private SubjectsService subjectsService;
@Override
public BizVo<PageInfo<Subjects>> getByPage(Map<String, Object> params) {
PageInfo<Subjects> pageInfo = subjectsService.pageInfo(params);
BizVo<PageInfo<Subjects>> bizVo = new BizVo<>(200,"success",pageInfo);
return bizVo;
}
@Override
public BizVo<Subjects> getBySub(Map<String, Object> params) {
int id = Integer.parseInt(params.get("id").toString());
Subjects getSubId = subjectsService.getBySub(id);
BizVo<Subjects> bizVo = new BizVo<>(200,"success",getSubId);
return bizVo;
}
public BizVo<Boolean> updateView(@RequestBody Map<String,Object> params){
int id = Integer.parseInt(params.get("id").toString());
BizVo<Boolean> bizVo = new BizVo<>(200,"success",subjectsService.updateView(id));
return bizVo;
}
@Override
public BizVo<Boolean> updateVote(Map<String, Object> params) {
int id = Integer.parseInt(params.get("id").toString());
BizVo<Boolean> bizVo = new BizVo<>(200,"success",subjectsService.updateVote(id));
return bizVo;
}
}
main方法:
@SpringBootApplication
@EnableDiscoveryClient
public class ZcOptionsApplication {
public static void main(String[] args) {
SpringApplication.run(ZcOptionsApplication.class, args);
}
}
@SpringBootApplication
@EnableDiscoveryClient
public class ZcSubjectsApplication {
public static void main(String[] args) {
SpringApplication.run(ZcSubjectsApplication.class, args);
}
}