activeMQ增删改查

实体类:
package com.beagledata.mgc.lucas.jdcvmatch.common.domain;

import com.beagledata.mgc.lucas.jdcvmatch.common.MongoBaseEntity;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/**

  • Created by liulu on 2019/9/6.
    */
    @Document(collection = “cv”)
    public class CV extends MongoBaseEntity {
    private static final long serialVersionUID = -7341317053118138725L;

    /**

    • 罗科仕简历ID
      /
      @Indexed(unique = true, sparse = true)
      private String cvId;
      /
      *
    • 应聘人姓名
      /
      private String name;
      /
      *
    • 应聘人性别0:未知1:男2:女
      /
      private Integer sex;
      /
      *
    • 婚姻状况 未婚:0 已婚:1
      /
      private Integer marriage;
      /
      *
    • 应聘人出生日期
      /
      private Date birth;
      /
      *
    • 现所在地
      /
      private String addr;
      /
      *
    • 顾问评价
      /
      private String assessment;
      /
      *
    • 教育经历
      /
      private String edu;
      /
      *
    • 工作经历
      /
      private String workExperience;
      /
      *
    • 项目经历
      /
      private String projectExperience;
      /
      *
    • 目前薪资
      /
      private Double currentSalary;
      /
      *
    • 培训经历
      /
      private String trainingCourses;
      /
      *
    • 其它资料
      */
      private String other;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getCvId() {
    return cvId;
    }

    public void setCvId(String cvId) {
    this.cvId = cvId;
    }

    public Integer getSex() {
    return sex;
    }

    public void setSex(Integer sex) {
    this.sex = sex;
    }

    public Integer getMarriage() {
    return marriage;
    }

    public void setMarriage(Integer marriage) {
    this.marriage = marriage;
    }

    public String getAddr() {
    return addr;
    }

    public void setAddr(String addr) {
    this.addr = addr;
    }

    public String getAssessment() {
    return assessment;
    }

    public void setAssessment(String assessment) {
    this.assessment = assessment;
    }

    public String getEdu() {
    return edu;
    }

    public void setEdu(String edu) {
    this.edu = edu;
    }

    public String getWorkExperience() {
    return workExperience;
    }

    public void setWorkExperience(String workExperience) {
    this.workExperience = workExperience;
    }

    public String getProjectExperience() {
    return projectExperience;
    }

    public void setProjectExperience(String projectExperience) {
    this.projectExperience = projectExperience;
    }

    public Double getCurrentSalary() {
    return currentSalary;
    }

    public void setCurrentSalary(Double currentSalary) {
    this.currentSalary = currentSalary;
    }

    public String getTrainingCourses() {
    return trainingCourses;
    }

    public void setTrainingCourses(String trainingCourses) {
    this.trainingCourses = trainingCourses;
    }

    public String getOther() {
    return other;
    }

    public void setOther(String other) {
    this.other = other;
    }

    public Date getBirth() {
    return birth;
    }

    public void setBirth(Date birth) {
    this.birth = birth;
    }

    @Override
    public String toString() {
    return “CV{” +
    “cvId=’” + cvId + ‘’’ +
    “, name=’” + name + ‘’’ +
    “, sex=” + sex +
    “, marriage=” + marriage +
    “, birth=” + birth +
    “, addr=’” + addr + ‘’’ +
    “, assessment=’” + assessment + ‘’’ +
    “, edu=’” + edu + ‘’’ +
    “, workExperience=’” + workExperience + ‘’’ +
    “, projectExperience=’” + projectExperience + ‘’’ +
    “, currentSalary=” + currentSalary +
    “, trainingCourses=’” + trainingCourses + ‘’’ +
    “, other=’” + other + ‘’’ +
    ‘}’;
    }
    }

查询接口:
package com.beagledata.mgc.lucas.jdcvmatch.admin.service.impl;

import com.beagledata.mgc.lucas.jdcvmatch.admin.service.CvService;
import com.beagledata.mgc.lucas.jdcvmatch.common.Result;
import com.beagledata.mgc.lucas.jdcvmatch.common.domain.CV;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.regex.Pattern;

/**

  • Created by mahongfei on 2019/9/9.
    */
    @Service
    public class CvServiceImpl implements CvService {
    private static final Logger logger = LoggerFactory.getLogger(CvServiceImpl.class);

    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public Result list() {
    try {
    return Result.newSuccess().withData(mongoTemplate.findAll(CV.class));
    } catch (Exception e) {
    logger.error(e.getLocalizedMessage(), e);
    throw new IllegalArgumentException(“查询简历列表出错”);
    }
    }

    @Override
    public Result pageList(int page, int pageNum, CV cv) {
    try {
    Pageable pageable = new PageRequest((page > 0 ? page - 1 : page), pageNum);
    Query query = new Query();
    long total = mongoTemplate.count(query, CV.class);
    query.with(pageable);//设置分页
    query.with(new Sort(Sort.Direction.DESC, “createTime”));//默认按创建时间降序
    if (cv != null) {
    if (!StringUtils.isEmpty(cv.getName())) { //简历名称模糊查询
    query.addCriteria(Criteria.where(“name”).regex(Pattern.compile(String.format("^.%s.$", cv.getName()), Pattern.CASE_INSENSITIVE)));
    }
    }
    List cvs = mongoTemplate.find(query, CV.class);
    return Result.newSuccess().withData(cvs).withTotal(total);
    } catch (Exception e) {
    logger.error(e.getLocalizedMessage(), e);
    throw new IllegalArgumentException(“查询简历列表出错”);
    }
    }

    @Override
    public Result getBycvId(String cvId) {
    if (StringUtils.isEmpty(cvId)) {
    logger.error(“查询简历详情,cvId为空”);
    throw new IllegalArgumentException(“查询简历详情出错,参数不能为空”);
    }
    try {
    Query query = new Query(Criteria.where(“cvId”).is(cvId));
    return Result.newSuccess().withData(mongoTemplate.find(query, CV.class));
    } catch (Exception e) {
    logger.info(String.format(“查询简历详情出错,cvId = %s”, cvId));
    logger.error(e.getLocalizedMessage(), e);
    throw new IllegalArgumentException(“查询简历详情出错”);
    }
    }
    }
    增删改接口:
    package com.beagledata.mgc.lucas.jdcvmatch.openapi.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.beagledata.mgc.lucas.jdcvmatch.common.Result;
import com.beagledata.mgc.lucas.jdcvmatch.common.domain.CV;
import com.beagledata.mgc.lucas.jdcvmatch.openapi.mq.Producer;
import com.beagledata.mgc.lucas.jdcvmatch.common.QueueName;
import com.beagledata.mgc.lucas.jdcvmatch.openapi.service.CvService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**

  • Created by mahongfei on 2019/9/9.
    */
    @Service
    public class CvSerciveImpl implements CvService {
    private static final Logger logger = LoggerFactory.getLogger(JdServiceImpl.class);

    @Autowired
    private Producer producer;
    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public Result add(String cvJson) {
    producer.sendTextMsg(QueueName.CV_ADD, cvJson);
    return Result.newSuccess();
    }

    @Override
    public Result delete(String deleteJson) {
    producer.sendTextMsg(QueueName.CV_DEL, deleteJson);
    return Result.newSuccess();
    }

    @Override
    public Result update(String updateJson) {
    producer.sendTextMsg(QueueName.CV_UPDATE, updateJson);
    return Result.newSuccess();
    }

    @Override
    @JmsListener(destination = QueueName.CV_ADD)
    public void consumerAdd(String text) {
    logger.info(“consumerAdd 接收到的报文为:” + text);
    if (StringUtils.isEmpty(text)) {
    logger.info(“消费CV新增同步, 消息内容为空”);
    return;
    }
    try {
    JSONObject cvJson = JSONObject.parseObject(text);
    if (cvJson == null) {
    logger.info(“CV数据同步 [新增], cvJson为空”);
    return;
    }
    String cvId = cvJson.getString(“id”);
    if (StringUtils.isEmpty(cvId)) {
    logger.info(“cv数据同步 [新增], cvId为空”);
    return;
    }
    Query query = new Query(Criteria.where(“cvId”).is(cvId));
    Update update = new Update();
    update.set(“cvId”, cvId);
    update.set(“name”, cvJson.getString(“name”));
    update.set(“sex”, Integer.parseInt(cvJson.getString(“gender_id”)));
    update.set(“marriage”, Integer.parseInt(cvJson.getString(“is_married”)));
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
    Date date = sdf.parse(cvJson.getString(“birth_year”)
    + “-” + cvJson.getString(“birth_month”)
    + “-” + cvJson.getString(“birth_day”));
    update.set(“birth”, date);
    update.set(“addr”, cvJson.getString(“address”));
    update.set(“assessment”, cvJson.getString(“description”));
    update.set(“edu”, String.valueOf(cvJson.getJSONArray(“education_experience”)));
    update.set(“workExperience”, String.valueOf(cvJson.getJSONArray(“work_experience”)));
    update.set(“projectExperience”, String.valueOf(cvJson.getJSONArray(“project_experience”)));
    double value = Double.parseDouble(cvJson.getString(“salary_total”));
    update.set(“currentSalary”, value * 10000);
    mongoTemplate.upsert(query, update, CV.class);
    } catch (Exception e) {
    logger.error(e.getLocalizedMessage(), e);
    }
    }

    @Override
    @JmsListener(destination = QueueName.CV_DEL)
    public void consumerDel(String deleteJson) {
    logger.info(“consumerDel 接收到的报文为:” + deleteJson);
    try {
    JSONObject cvJson = JSONObject.parseObject(deleteJson);
    if (cvJson == null) {
    logger.info(“cv数据同步 [更新], cvJson为空”);
    return;
    }
    String cvId = cvJson.getString(“id”);
    Query query = Query.query(Criteria.where(“cvId”).is(cvId));
    mongoTemplate.remove(query, CV.class);
    } catch (Exception e) {
    logger.error(e.getLocalizedMessage() ,e);

     }
    

    }

    @Override
    @JmsListener(destination = QueueName.CV_UPDATE)
    public void consumerUpdate(String text) {
    logger.info(“consumerUpdate 接收到的报文为:” + text);
    try {
    JSONObject json = JSONObject.parseObject(text);
    if (json == null) {
    logger.info(“cv数据同步 [更新], json为空”);
    return;
    }
    String cvId = json.getString(“id”);
    Query query = Query.query(Criteria.where(“cvId”).is(cvId));
    Update update = new Update();
    update.set(“name”, json.getString(“name”));
    update.set(“sex”, Integer.parseInt(json.getString(“gender_id”)));
    update.set(“marriage”, Integer.parseInt(json.getString(“is_married”)));
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
    Date date = sdf.parse(json.getString(“birth_year”)
    + “-” + json.getString(“birth_month”)
    + “-” + json.getString(“birth_day”));
    update.set(“birth”, date);
    update.set(“addr”, json.getString(“address”));
    update.set(“assessment”, json.getString(“description”));
    update.set(“edu”, String.valueOf(json.getJSONArray(“education_experience”)));
    update.set(“workExperience”, String.valueOf(json.getJSONArray(“work_experience”)));
    update.set(“projectExperience”, String.valueOf(json.getJSONArray(“project_experience”)));
    double value = Double.parseDouble(json.getString(“salary_total”));
    update.set(“currentSalary”, value * 10000);
    update.set(“updateTime”, new Date());
    mongoTemplate.updateFirst(query, update, CV.class);
    } catch (Exception e) {
    logger.error(e.getLocalizedMessage() ,e);
    }
    }

}
生产者接口:
package com.beagledata.mgc.lucas.jdcvmatch.openapi.mq;

import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;
import javax.jms.Destination;

/**

  • 统一向MQ生成消息,根据queueName区分增删改查操作

  • Created by Cyf on 2019/9/9
    **/
    @Component
    public class Producer {
    @Autowired
    private JmsMessagingTemplate template;

    public void sendTextMsg(String queueName, String message){
    Destination destination = new ActiveMQQueue(queueName);
    template.convertAndSend(destination, message);
    }
    }
    配置:
    server:
    port: ${LJCM_OPENAPI_SERVER_PORT:33405}
    context-path: /manage
    spring:
    data:
    mongodb:
    uri: L J C M M O N G O D B U R I : m o n g o d b : / / 172.16.210.20 , 172.16.210.21 , 172.16.210.22 / l u c a s h r ? r e p l i c a S e t = d e v a c t i v e m q : b r o k e r − u r l : f a i l o v e r : ( {LJCM_MONGODB_URI:mongodb://172.16.210.20,172.16.210.21,172.16.210.22/lucas_hr?replicaSet=dev} activemq: broker-url: failover:( LJCMMONGODBURI:mongodb://172.16.210.20,172.16.210.21,172.16.210.22/lucashr?replicaSet=devactivemq:brokerurl:failover:({LJCM_ACTIVEMQ_BROKER_URL:tcp://localhost:61616})
    pool:
    enabled: true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值