提交 f4515739 authored 作者: chenxinchang's avatar chenxinchang

--no commit message

上级 72d1e499
......@@ -5,17 +5,21 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.constant.member.MemberRequestPath;
import com.zrqx.core.exception.FailedException;
import com.zrqx.core.enums.ResponseCodeEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.exception.ParameterValidateException;
import com.zrqx.core.form.member.bg.emember.SaveEMemberForm;
import com.zrqx.core.form.member.bg.emember.SaveOrUpdateEMemberForm;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.core.vo.member.bg.member.EMemberVO;
import com.zrqx.member.bg.emember.service.ExpertMemberService;
import io.swagger.annotations.Api;
......@@ -34,16 +38,20 @@ public class ExpertMemberController {
private ExpertMemberService service;
@ApiOperation(value = "新增和修改专家用户信息", notes = "新增和修改专家用户信息")
@PostMapping(value = MemberRequestPath.SAVE)
public CallBack<Boolean> saveOrUpdate(@Validated @RequestBody SaveEMemberForm form) {
public CallBack<Boolean> saveOrUpdate(@Validated @RequestBody SaveOrUpdateEMemberForm form) {
service.saveOrUpdate(form);
return CallBack.success(true);
}
@ApiOperation(value = "根据id专家用户信息", notes = "根据id专家用户信息")
@GetMapping(value = MemberRequestPath.GET_OID)
public CallBack<EMemberVO> get(@PathVariable("oid") Integer oid) {
return CallBack.success(service.getById(oid));
}
//@ApiOperation(value = "新增专家用户信息", notes = "新增专家用户")
//@PostMapping(value = MemberRequestPath.SAVE)
public CallBack<Integer> insert(@Validated @RequestBody ExpertMember entity) {
if(service.insert(entity)) {
throw new FailedException();
throw new BaseException(ResponseCodeEnum.FAIL);
};
return CallBack.success(entity.getId());
}
......@@ -57,7 +65,7 @@ public class ExpertMemberController {
}
BeanUtils.copyProperties(entity, member);
if(service.updateByPrimaryKey(member)) {
throw new FailedException();
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success();
}
......
package com.zrqx.member.bg.emember.mapper;
import com.zrqx.core.model.member.ExpertMember;
import org.apache.ibatis.annotations.Select;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.vo.member.bg.member.EMemberVO;
public interface ExpertMemberMapper extends BaseMapper<ExpertMember>{
@Select("select m.id,account,nickName,phone,status,email,remark,authorId,name,organName,sex,img from m_Member m "
+ "left join m_Expert_Member em "
+ "on m.id = em.id "
+ "where m.id = #{id}")
public EMemberVO getById(Integer id);
}
package com.zrqx.member.bg.emember.service;
import com.zrqx.core.form.member.bg.emember.SaveEMemberForm;
import com.zrqx.core.form.member.bg.emember.SaveOrUpdateEMemberForm;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.service.BaseService;
import com.zrqx.core.vo.member.bg.member.EMemberVO;
public interface ExpertMemberService extends BaseService<ExpertMember, Integer> {
void saveOrUpdate(SaveEMemberForm form);
void saveOrUpdate(SaveOrUpdateEMemberForm form);
EMemberVO getById(Integer id);
}
package com.zrqx.member.bg.emember.service;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.exception.BusinessValidateException;
import com.zrqx.core.form.member.bg.emember.SaveEMemberForm;
import com.zrqx.core.form.member.bg.emember.SaveOrUpdateEMemberForm;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.datatype.DateUtils;
import com.zrqx.core.util.encry.MD5Util;
import com.zrqx.core.vo.member.bg.member.EMemberVO;
import com.zrqx.member.bg.emember.mapper.ExpertMemberMapper;
import com.zrqx.member.bg.member.mapper.MemberMapper;
......@@ -25,7 +28,7 @@ public class ExpertMemberServiceImpl extends BaseServiceImpl<ExpertMember,Intege
return mapper;
}
@Override
public void saveOrUpdate(SaveEMemberForm form) {
public void saveOrUpdate(SaveOrUpdateEMemberForm form) {
if(mmapper.isExist(form.getId(),form.getAccount()) > 0) {
throw new BusinessValidateException("用户已存在!");
}
......@@ -41,6 +44,13 @@ public class ExpertMemberServiceImpl extends BaseServiceImpl<ExpertMember,Intege
}
m.setLevel(1);
m.setCreateTime(DateUtils.getDate());
if(StringUtils.isBlank(m.getPassword())) {
try {
m.setPassword(MD5Util.getEncoderByMd5("123456"));
} catch (Exception e) {
e.printStackTrace();
}
}
mmapper.insertSelective(m);
em.setId(m.getId());
mapper.insert(em);
......@@ -56,9 +66,16 @@ public class ExpertMemberServiceImpl extends BaseServiceImpl<ExpertMember,Intege
m.setCreateTime(old.getCreateTime());
m.setBalance(old.getBalance());
m.setLevel(old.getLevel());
if(StringUtils.isBlank(m.getPassword())) {
m.setPassword(old.getPassword());
}
mmapper.updateByPrimaryKey(m);
mapper.updateByPrimaryKey(em);
}
}
}
@Override
public EMemberVO getById(Integer id) {
return mapper.getById(id);
}
}
package com.zrqx.member.bg.member.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -21,12 +22,13 @@ import com.zrqx.core.enums.ResponseCodeEnum;
import com.zrqx.core.enums.StatusEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.exception.BusinessValidateException;
import com.zrqx.core.exception.FailedException;
import com.zrqx.core.exception.ParameterValidateException;
import com.zrqx.core.form.member.bg.member.QueryMemberForm;
import com.zrqx.core.form.member.bg.member.QueryPayInfoForm;
import com.zrqx.core.form.member.bg.member.SaveMemberForm;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.PayInfo;
import com.zrqx.core.util.datatype.DateUtils;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.util.response.CallBack;
......@@ -58,20 +60,35 @@ public class MemberController {
public CallBack<Boolean> isExistByAccount(Integer id, String account) {
return CallBack.success(service.isExistByAccount(id, account));
}
@ApiOperation(value = "批量新增测试用户", notes = "批量新增测试用户")
@PostMapping(value = MemberRequestPath.BATCH_SAVE+MemberRequestPath.VALUE)
public CallBack<Boolean> save(@PathVariable("value") Integer value,@Validated @RequestBody SaveMemberForm form) {
List<Member> mlist = new ArrayList<Member>();
Date date = DateUtils.getDate();
for (int i = 1; i <= value; i++) {
Member m = new Member();
BeanUtils.copyProperties(form, m);
m.setCreateTime(date);
m.setBalance(0.0);
m.setLevel(i%2);
mlist.add(m);
}
service.save(mlist);
return CallBack.success(true);
}
//@ApiOperation(value = "新增会员", notes = "新增一个会员,返回id-普通用户和专家用户 共用此接口")
//@PostMapping(value = MemberRequestPath.SAVE)
public CallBack<Integer> insert(@Validated @RequestBody Member entity) {
if(service.isExistByAccount(null,entity.getAccount())) {
if(service.isExistByAccount(entity.getId(),entity.getAccount())) {
throw new BusinessValidateException("用户已存在!");
}
entity.setCreateTime(new Date());
if(service.insertSelective(entity)) {
throw new FailedException();
throw new BaseException(ResponseCodeEnum.FAIL);
};
return CallBack.success(entity.getId());
}
@ApiOperation(value = "批量删除会员", notes = "批量删除会员")
@ApiOperation(value = "批量删除会员", notes = "批量删除-普通、专家和机构用户 共用此接口")
@PostMapping(value = MemberRequestPath.BATCH_DELETE)
public CallBack<Boolean> deleteByIds(@RequestBody List<Integer> ids) {
service.createCriteria().andIn("id", ids);
......@@ -94,7 +111,7 @@ public class MemberController {
}
BeanUtils.copyProperties(entity, member);
if(service.updateByPrimaryKey(member)) {
throw new FailedException();
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success();
}
......@@ -133,7 +150,7 @@ public class MemberController {
}
return CallBack.success(payInfoService.queryCriteria(pageParam));
}
@ApiOperation(value = "批量设置会员状态", notes = "批量设置会员状态-普通用户和专家用户 共用此接口")
@ApiOperation(value = "批量设置会员状态", notes = "批量设置会员状态-批量删除-普通、专家和机构用户 共用此接口")
@PostMapping(value = MemberRequestPath.BATCH_UPDATE + MemberRequestPath.STATUS+ MemberRequestPath.VALUE)
public CallBack<Boolean> updateStatus(@ApiParam(value = "用户状态 0 禁用 1启用") @PathVariable("value") Integer value,
@ApiParam(value = "用户id集合") @RequestBody List<Integer> ids) {
......@@ -144,7 +161,7 @@ public class MemberController {
Member m = new Member();
m.setStatus(value);
if(!service.updateByCriteriaSelective(m)) {
throw new FailedException();
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success();
}
......
......@@ -12,8 +12,8 @@ import com.zrqx.core.vo.member.bg.member.MemberListVO;
public interface MemberMapper extends BaseMapper<Member>{
@Select("<script> select id,account,status,balance,level,createTime from m_member m"
+ " where status != 2 and level = #{level}"
@Select("<script> select id,account,status,phone,balance,level,createTime from m_member m"
+ " where status != 2 and level = #{level}"
+ "<if test = '"+NOTBLANK+"(account)' >"
+ " and m.account like concat(#{account},'%') "
+ "</if>"
......@@ -35,6 +35,7 @@ public interface MemberMapper extends BaseMapper<Member>{
+ "</if>"
+ "</script>")
public List<MemberListVO> page(QueryMemberForm form);
/**
* 判断 账号是否已存在
* @param id
......@@ -44,7 +45,7 @@ public interface MemberMapper extends BaseMapper<Member>{
@Select("<script>select count(id) from m_member "
+ "where account =#{account} "
+ "<if test = 'id != null' >"
+ " and id = #{id} "
+ " and id != #{id} "
+ "</if>"
+ "</script>")
public int isExist(@Param("id")Integer id,@Param("account")String account);
......
package com.zrqx.member.bg.member.service;
import java.util.List;
import com.zrqx.core.form.member.bg.member.QueryMemberForm;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.service.BaseService;
......@@ -10,4 +12,5 @@ import com.zrqx.core.vo.member.bg.member.MemberListVO;
public interface MemberService extends BaseService<Member, Integer> {
PageInfo<MemberListVO> page(QueryMemberForm form,PageParam pageParam);
boolean isExistByAccount(Integer id, String account);
void save(List<Member> mlist);
}
package com.zrqx.member.bg.member.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -29,5 +31,21 @@ public class MemberServiceImpl extends BaseServiceImpl<Member,Integer> implemen
public boolean isExistByAccount(Integer id, String account) {
return mapper.isExist(id, account) > 0;
}
@Override
public void save(List<Member> mlist) {
int pointsDataLimit = 10000;//限制条数
int size = mlist.size();
if(pointsDataLimit<size){
int part = size/pointsDataLimit;//分批数
for (int i = 0; i < part; i++) {
//10000条
List<Member> list = mlist.subList(i*pointsDataLimit, (i+1)*pointsDataLimit);
new Thread(() -> mapper.insertList(list)).start();
//剔除
}
}else{
mapper.insertList(mlist);
}
}
}
......@@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -18,6 +19,7 @@ import com.zrqx.core.exception.BaseException;
import com.zrqx.core.exception.ParameterValidateException;
import com.zrqx.core.form.member.bg.omember.QueryOrganMemberForm;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.util.encry.MD5Util;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.util.response.CallBack;
......@@ -43,11 +45,11 @@ public class OrganMemberController {
@Autowired
private MemberService mservice;
@ApiOperation(value = "批量重置密码", notes = "批量重置密码")
@GetMapping(value = MemberRequestPath.BATCH_UPDATE)
public CallBack<Boolean> getById(@RequestBody List<Integer> ids) {
@PostMapping(value = MemberRequestPath.BATCH_UPDATE)
public CallBack<Boolean> reset(@RequestBody List<Integer> ids) throws Exception {
mservice.createCriteria().andIn("id", ids);
Member entity = new Member();
entity.setPassword("");
entity.setPassword(MD5Util.getEncoderByMd5("123456"));
if (!mservice.updateByCriteriaSelective(entity)) {
throw new BaseException(ResponseCodeEnum.FAIL);
}
......@@ -62,7 +64,7 @@ public class OrganMemberController {
}
return CallBack.success(member);
}
@ApiOperation(value = "分页查询", notes = "分页查询-普通用户和专家用户 共用此接口")
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping(value = MemberRequestPath.PAGE)
public CallBack<PageInfo<OrganMemberListVO>> getMemberPage(QueryOrganMemberForm form,PageParam pageParam) {
if(StringUtils.isBlank(pageParam.getOrderBy())){
......
......@@ -18,7 +18,7 @@ public interface OrganMemberMapper extends BaseMapper<OrganMember>{
+ "on om.oid = o.id "
+ "where m.id = #{id}")
public OrganMemberVO getById(Integer id);
@Select("<script> select m.id,account,status,name,type,createTime,endTime m_member m "
@Select("<script> select m.id,account,status,name,type,m.createTime,endTime from m_member m "
+ "left join m_Organ_Member om "
+ "on m.id = om.id "
+ "left join m_Organ o "
......
package com.zrqx.member.bg.pm.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.constant.member.MemberRequestPath;
import com.zrqx.core.enums.ResponseCodeEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.form.member.bg.pm.QueryPrivateMessageForm;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.PmMember;
import com.zrqx.core.model.member.PrivateMessage;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.core.vo.member.bg.pm.PrivateMessageListVO;
import com.zrqx.core.vo.member.bg.pm.PrivateMessageVO;
import com.zrqx.member.bg.member.service.MemberService;
import com.zrqx.member.bg.pm.service.PmMemberService;
import com.zrqx.member.bg.pm.service.PrivateMessageService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 站内信 Controller
*/
@RestController
@RequestMapping(MemberRequestPath.BG + MemberRequestPath.PM)
@Api(description = "会员管理-站内信")
public class PrivateMessageController {
private final static Logger logger = LoggerFactory.getLogger(PrivateMessageController.class);
@Autowired
private PrivateMessageService service;
@Autowired
private MemberService mService;
@Autowired
private PmMemberService pmmService;
@ApiOperation(value = "新增", notes = "新增一个")
@PostMapping(value = MemberRequestPath.SAVE)
public CallBack<Boolean> save(@RequestBody PrivateMessage entity) {
if (!service.save(entity)) {
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success(true);
}
@ApiOperation(value = "删除", notes = "删除")
@PostMapping(value = MemberRequestPath.BATCH + MemberRequestPath.DELETE)
public CallBack<Boolean> deleteByIds(@RequestBody List<Integer> ids) {
if (ids.size() == 0) {
throw new BaseException("没有选中任何数据,请重新选择");
}
if (!service.deleteByIds(ids)) {
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success(true);
}
@ApiOperation(value = "查询", notes = "根据ID查询")
@GetMapping(value = MemberRequestPath.GET_OID)
public CallBack<PrivateMessageVO> getById(@PathVariable Integer oid) {
return CallBack.success(service.getById(oid));
}
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping(value = MemberRequestPath.PAGE)
public CallBack<PageInfo<PrivateMessageListVO>> page(QueryPrivateMessageForm form, PageParam pageParam) {
if (StringUtils.isBlank(pageParam.getOrderBy())) {
pageParam.setOrderBy("sendTime desc");
}
return CallBack.success(service.quertPage(form, pageParam));
}
/**
* 添加站内信时 建立与用户关系
*
* @author cxc
*
*/
class PmmThread extends Thread {
// 2):在A类中覆盖Thread类中的run方法.
public void run(PrivateMessage entity) {
//3):在run方法中编写需要执行的操作
List<Integer> idsList = null;
if(entity.getAcceptMember() == 0){
//全部会员
List<Member> mList = mService.selectAll();
idsList=mList.stream().map(Member::getId).collect(Collectors.toList());
}else if(entity.getAcceptMember() == 1){
//会员组
mService.createCriteria(Member.class).andEqualTo("level", entity.getMemberGroup());
List<Member> mList = mService.selectByCriteria();
idsList=mList.stream().map(Member::getId).collect(Collectors.toList());
}else if(entity.getAcceptMember() == 2){
//指定会员
idsList= entity.getMemberIds();
}
List<PmMember> pmList = new ArrayList<PmMember>();
if(idsList != null && idsList.size() > 0){
for (Integer id : idsList) {
pmList.add(new PmMember(null,id,entity.getId(),0));
}
}
Integer size = pmList.size();
if(size>0){
int pointsDataLimit = 10000;//限制条数
if(pointsDataLimit<size){
int part = size/pointsDataLimit;//分批数
for (int i = 0; i < part; i++) {
//10000条
List<PmMember> list = pmList.subList(i*pointsDataLimit, (i+1)*pointsDataLimit);
new Thread(() -> pmmService.insertList(list)).start();
}
}else{
pmmService.insertList(pmList);
}
}
}
}
}
package com.zrqx.member.bg.pm.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Select;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PmMember;
/**
* 站内信和会员
*/
public interface PmMemberMapper extends BaseMapper<PmMember>{
/**
* 根据 站内信id查询用户名称集合
* @param pmid
* @return
*/
@Select("select account from m_member m join m_private_message_member pmm on m.id = pmm.memberId and pmid = #{pmid}")
public List<String> getAccountList(Integer pmid);
}
package com.zrqx.member.bg.pm.mapper;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PrivateMessage;
/**
* 站内信
*/
public interface PrivateMessageMapper extends BaseMapper<PrivateMessage>{
}
package com.zrqx.member.bg.pm.service;
import com.zrqx.core.model.member.PmMember;
import com.zrqx.core.service.BaseService;
/**
* 站内信和会员
*/
public interface PmMemberService extends BaseService<PmMember, Integer>{
}
package com.zrqx.member.bg.pm.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PmMember;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.member.bg.pm.mapper.PmMemberMapper;
/**
* 站内信和会员
*/
@Service
public class PmMemberServiceImpl extends BaseServiceImpl<PmMember, Integer> implements PmMemberService{
@Autowired
PmMemberMapper mapper;
@Override
public BaseMapper<PmMember> getMapper() {
return mapper;
}
}
package com.zrqx.member.bg.pm.service;
import java.util.List;
import com.zrqx.core.form.member.bg.pm.QueryPrivateMessageForm;
import com.zrqx.core.model.member.PrivateMessage;
import com.zrqx.core.service.BaseService;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.vo.member.bg.pm.PrivateMessageListVO;
import com.zrqx.core.vo.member.bg.pm.PrivateMessageVO;
/**
* 站内信
*/
public interface PrivateMessageService extends BaseService<PrivateMessage, Integer>{
/**
* 保存,只在收信人指定会员时 添加关系,全部会员和指定会员组时,用户查询站内信时添加关系
* @param entity
* @return
*/
boolean save(PrivateMessage entity);
/**
* 查询一个站内信
* @param id
* @return
*/
PrivateMessageVO getById(Integer id);
/**
* 批量级联删除站内信 和会员关系
* @param ids
* @return
*/
boolean deleteByIds(List<Integer> ids);
/**
* 分页查询
* @param form
* @param pageParam
* @return
*/
PageInfo<PrivateMessageListVO> quertPage(QueryPrivateMessageForm form, PageParam pageParam);
}
package com.zrqx.member.bg.pm.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.form.member.bg.pm.QueryPrivateMessageForm;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.PmMember;
import com.zrqx.core.model.member.PrivateMessage;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.vo.member.bg.pm.PrivateMessageListVO;
import com.zrqx.core.vo.member.bg.pm.PrivateMessageVO;
import com.zrqx.member.bg.member.mapper.MemberMapper;
import com.zrqx.member.bg.omember.mapper.OrganMemberMapper;
import com.zrqx.member.bg.pm.mapper.PmMemberMapper;
import com.zrqx.member.bg.pm.mapper.PrivateMessageMapper;
import tk.mybatis.mapper.entity.Example.Criteria;
/**
* 站内信 转
*/
@Service
public class PrivateMessageServiceImpl extends BaseServiceImpl<PrivateMessage, Integer> implements PrivateMessageService{
@Autowired
PrivateMessageMapper mapper;
@Autowired
PmMemberMapper pmmMapper;
@Autowired
MemberMapper mMapper;
@Autowired
OrganMemberMapper omMapper;
@Override
public BaseMapper<PrivateMessage> getMapper() {
return mapper;
}
@Override
public boolean save(PrivateMessage entity) {
entity.setSendType(1);//手动发送
entity.setSendTime(new Date());
mapper.insertSelective(entity);
new Thread(() -> {
List<Integer> idsList = null;
if(entity.getAcceptMember() == 0){
//全部会员
List<Member> mList = mMapper.selectAll();
idsList=mList.stream().map(Member::getId).collect(Collectors.toList());
}else if(entity.getAcceptMember() == 1){
//会员组
createCriteria(Member.class).andEqualTo("level", entity.getMemberGroup());
List<Member> mList = mMapper.selectByExample(example);
idsList=mList.stream().map(Member::getId).collect(Collectors.toList());
}else if(entity.getAcceptMember() == 2){
//指定会员
idsList= entity.getMemberIds();
}
List<PmMember> pmList = new ArrayList<PmMember>();
if(idsList != null && idsList.size() > 0){
for (Integer id : idsList) {
pmList.add(new PmMember(null,id,entity.getId(),0));
}
}
Integer size = pmList.size();
if(size>0){
int pointsDataLimit = 10000;//限制条数
if(pointsDataLimit<size){
int part = size/pointsDataLimit;//分批数
for (int i = 0; i < part; i++) {
//10000条
List<PmMember> list = pmList.subList(i*pointsDataLimit, (i+1)*pointsDataLimit);
new Thread(() -> pmmMapper.insertList(list)).start();
}
}else{
pmmMapper.insertList(pmList);
}
}
}).start();
return true;
}
@Override
public PrivateMessageVO getById(Integer id) {
PrivateMessage pm = mapper.selectByPrimaryKey(id);
PrivateMessageVO vo = new PrivateMessageVO();
BeanUtils.copyProperties(pm, vo);
if(pm.getAcceptMember() == 2){//指定会员 查询指定会员的名称
vo.setMemberAccount(pmmMapper.getAccountList(pm.getId()));
}
return vo;
}
/**
* 站内信 转vo
* 收信人 判断 收信人2指定会员 查询会员名称
* @param pm
* @return
*/
public PrivateMessageVO get(PrivateMessage pm){
PrivateMessageVO vo = new PrivateMessageVO();
BeanUtils.copyProperties(pm, vo);
if(pm.getAcceptMember() == 2){//指定会员 查询指定会员的名称
vo.setMemberAccount(pmmMapper.getAccountList(pm.getId()));
}
return vo;
}
@Override
public boolean deleteByIds(List<Integer> ids) {
//先删站内信和会员的关系
createCriteria(PmMember.class).andIn("pmId", ids);
pmmMapper.deleteByExample(example);
//再删站内信
createCriteria().andIn("id", ids);
mapper.deleteByExample(example);
return true;
}
@Override
public PageInfo<PrivateMessageListVO> quertPage(QueryPrivateMessageForm form, PageParam pageParam) {
Criteria cr = createCriteria();
if (StringUtils.isNotBlank(form.getTitle())) {
cr.andLike("title", "%" + form.getTitle() + "%");
}
if (StringUtils.isNotBlank(form.getBiginReleaserTime())) {
cr.andGreaterThanOrEqualTo("sendTime", form.getBiginReleaserTime());
}
if (StringUtils.isNotBlank(form.getEndReleaserTime())) {
cr.andLessThanOrEqualTo("sendTime", form.getEndReleaserTime());
}
startPage(pageParam);
List<PrivateMessage> list = selectByCriteria();
List<PrivateMessageListVO> voList = new ArrayList<PrivateMessageListVO>();
if(list!=null){
list.forEach(pm ->{
PrivateMessageListVO vo = new PrivateMessageListVO();
BeanUtils.copyProperties(pm, vo);
voList.add(vo);
});
}
return new PageInfo<PrivateMessageListVO>(voList);
}
}
......@@ -5,17 +5,21 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.constant.member.MemberRequestPath;
import com.zrqx.core.exception.FailedException;
import com.zrqx.core.enums.ResponseCodeEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.exception.ParameterValidateException;
import com.zrqx.core.form.member.bg.pmember.SavePMemberForm;
import com.zrqx.core.form.member.bg.pmember.SaveOrUpdatePMemberForm;
import com.zrqx.core.model.member.PersonalMember;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.core.vo.member.bg.member.PMemberVO;
import com.zrqx.member.bg.pmember.service.PersonalMemberService;
import io.swagger.annotations.Api;
......@@ -34,15 +38,20 @@ public class PersonalMemberController {
private PersonalMemberService service;
@ApiOperation(value = "新增和修改普通用户信息", notes = "新增和修改普通用户信息")
@PostMapping(value = MemberRequestPath.SAVE)
public CallBack<Boolean> save(@Validated @RequestBody SavePMemberForm form) {
public CallBack<Boolean> save(@Validated @RequestBody SaveOrUpdatePMemberForm form) {
service.saveOrUpdate(form);
return CallBack.success(true);
}
@ApiOperation(value = "根据id普通用户信息", notes = "根据id普通用户信息")
@GetMapping(value = MemberRequestPath.GET_OID)
public CallBack<PMemberVO> get(@PathVariable("oid") Integer oid) {
return CallBack.success(service.getById(oid));
}
//@ApiOperation(value = "新增普通用户信息", notes = "新增普通用户")
//@PostMapping(value = MemberRequestPath.SAVE)
public CallBack<Integer> insert(@Validated @RequestBody PersonalMember entity) {
if(service.insert(entity)) {
throw new FailedException();
throw new BaseException(ResponseCodeEnum.FAIL);
};
return CallBack.success(entity.getId());
}
......@@ -55,7 +64,7 @@ public class PersonalMemberController {
}
BeanUtils.copyProperties(entity, member);
if(service.updateByPrimaryKey(member)) {
throw new FailedException();
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success();
}
......
package com.zrqx.member.bg.pmember.mapper;
import org.apache.ibatis.annotations.Select;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PersonalMember;
import com.zrqx.core.vo.member.bg.member.PMemberVO;
public interface PersonalMemberMapper extends BaseMapper<PersonalMember>{
@Select("select m.id,account,nickName,phone,status,email,remark,title,dept,academic,name,organName,sex,img from m_Member m "
+ "left join m_Personal_Member pm "
+ "on m.id = pm.id "
+ "where m.id = #{id}")
public PMemberVO getById(Integer id);
}
package com.zrqx.member.bg.pmember.service;
import com.zrqx.core.form.member.bg.pmember.SavePMemberForm;
import com.zrqx.core.form.member.bg.pmember.SaveOrUpdatePMemberForm;
import com.zrqx.core.model.member.PersonalMember;
import com.zrqx.core.service.BaseService;
import com.zrqx.core.vo.member.bg.member.PMemberVO;
public interface PersonalMemberService extends BaseService<PersonalMember, Integer> {
void saveOrUpdate(SavePMemberForm form);
void saveOrUpdate(SaveOrUpdatePMemberForm form);
PMemberVO getById(Integer id);
}
package com.zrqx.member.bg.pmember.service;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.exception.BusinessValidateException;
import com.zrqx.core.form.member.bg.pmember.SavePMemberForm;
import com.zrqx.core.form.member.bg.pmember.SaveOrUpdatePMemberForm;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.PersonalMember;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.datatype.DateUtils;
import com.zrqx.core.util.encry.MD5Util;
import com.zrqx.core.vo.member.bg.member.PMemberVO;
import com.zrqx.member.bg.member.mapper.MemberMapper;
import com.zrqx.member.bg.pmember.mapper.PersonalMemberMapper;
......@@ -28,7 +31,7 @@ public class PersonalMemberServiceImpl extends BaseServiceImpl<PersonalMember, I
}
@Override
public void saveOrUpdate(SavePMemberForm form) {
public void saveOrUpdate(SaveOrUpdatePMemberForm form) {
if(mmapper.isExist(form.getId(),form.getAccount()) > 0) {
throw new BusinessValidateException("用户已存在!");
}
......@@ -44,6 +47,13 @@ public class PersonalMemberServiceImpl extends BaseServiceImpl<PersonalMember, I
}
m.setLevel(0);
m.setCreateTime(DateUtils.getDate());
if(StringUtils.isBlank(m.getPassword())) {
try {
m.setPassword(MD5Util.getEncoderByMd5("123456"));
} catch (Exception e) {
e.printStackTrace();
}
}
mmapper.insertSelective(m);
pm.setId(m.getId());
mapper.insert(pm);
......@@ -58,9 +68,17 @@ public class PersonalMemberServiceImpl extends BaseServiceImpl<PersonalMember, I
m.setCreateTime(old.getCreateTime());
m.setBalance(old.getBalance());
m.setLevel(old.getLevel());
if(StringUtils.isBlank(m.getPassword())) {
m.setPassword(old.getPassword());
}
mmapper.updateByPrimaryKey(m);
mapper.updateByPrimaryKey(pm);
}
}
}
@Override
public PMemberVO getById(Integer id) {
return mapper.getById(id);
}
}
......@@ -8,7 +8,6 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.RedisSentinelConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
......@@ -17,7 +16,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import com.zrqx.core.enums.ResponseCodeEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.form.member.fg.permissions.LoginMemberInfo;
import com.zrqx.core.util.json.JsonUtil;
/**
......@@ -55,8 +54,8 @@ public class Redis {
*
* @return
*/
public Member getMember() {
return getInfoObjectRedis(getToken(FG_TOKEN), Member.class);
public LoginMemberInfo getMember() {
return getInfoObjectRedis(getToken(FG_TOKEN), LoginMemberInfo.class);
}
public String fmtObj(Object obj) throws IOException {
return obj instanceof String ? obj.toString():JsonUtil.bean2Json(obj);
......
package com.zrqx.member.fg.client.third;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.zrqx.core.constant.third.ThirdRequestPath;
import com.zrqx.core.form.third.email.EmailForm;
/**
* 邮箱
*/
@FeignClient(value="third",fallback=EmailHystric.class)
public interface EmailClient {
/**
* 发送邮箱验证
* @param smsForm
* @return
*/
@PostMapping(ThirdRequestPath.EMAIL+ThirdRequestPath.VERIFICATION)
public String sample(@RequestBody EmailForm emailForm);
}
package com.zrqx.member.fg.client.third;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.zrqx.core.form.third.email.EmailForm;
@Component
public class EmailHystric implements EmailClient {
private final static Logger logger = LoggerFactory.getLogger(EmailHystric.class);
@Override
public String sample(EmailForm emailForm) {
logger.info(" 发送: "+ emailForm.getEmail() + " 验证码: " + emailForm.getCode() + " 验证码失败,邮箱接口不可用");
return "邮箱接口不可用";
}
}
package com.zrqx.member.fg.client.third;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.zrqx.core.constant.third.ThirdRequestPath;
import com.zrqx.core.model.third.qqlogin.QQThirdReturn;
import com.zrqx.core.util.response.CallBack;
/**
* QQ登录
*/
@FeignClient(value="third",fallback=QQLoginHystric.class)
public interface QQLoginClient {
@GetMapping(ThirdRequestPath.QQ_LOGIN+ThirdRequestPath.QUERY)
public CallBack<QQThirdReturn> query(@RequestParam("code")String code);
}
package com.zrqx.member.fg.client.third;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.zrqx.core.model.third.qqlogin.QQThirdReturn;
import com.zrqx.core.util.response.CallBack;
@Component
public class QQLoginHystric implements QQLoginClient {
private final static Logger logger = LoggerFactory.getLogger(QQLoginHystric.class);
@Override
public CallBack<QQThirdReturn> query(String code){
logger.info("QQ登录不可用!");
return null;
}
}
package com.zrqx.member.fg.client.third;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.zrqx.core.constant.third.ThirdRequestPath;
import com.zrqx.core.form.third.sdksms.SdkSmsForm;
import com.zrqx.core.util.response.CallBack;
/**
* 手机短信
*/
@FeignClient(value="third",fallback=SdkSmsHystric.class)
public interface SdkSmsClient {
/**
* 发送手机短信
* @param smsForm
* @return
*/
@GetMapping(ThirdRequestPath.SDKSMS+ThirdRequestPath.SEND)
public CallBack<String> send(@RequestBody SdkSmsForm ssf);
}
package com.zrqx.member.fg.client.third;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import com.zrqx.core.form.third.sdksms.SdkSmsForm;
import com.zrqx.core.util.response.CallBack;
@Component
public class SdkSmsHystric implements SdkSmsClient {
private final static Logger logger = LoggerFactory.getLogger(SdkSmsHystric.class);
/**
* 根据id获取图书信息
* @param oid
* @return
* @author lw
* @date: 2018年7月31日 下午5:13:04
*/
@Override
public CallBack<String> send(@RequestBody SdkSmsForm ssf){
logger.info(" 发送: "+ ssf.getMobile() + ssf.getContent()+ ",短信接口不可用");
return null;
}
}
package com.zrqx.member.fg.client.third;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.zrqx.core.form.third.sms.SmsForm;
/**
* 手机短信
*/
@FeignClient(value="third",fallback=SmsHystric.class)
public interface SmsClient {
/**
* 发送手机短信
* @param smsForm
* @return
*/
@GetMapping("/sms/send")
public String sendSms(@RequestBody SmsForm smsForm);
}
package com.zrqx.member.fg.client.third;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import com.zrqx.core.form.third.sms.SmsForm;
@Component
public class SmsHystric implements SmsClient {
private final static Logger logger = LoggerFactory.getLogger(SmsHystric.class);
@Override
public String sendSms(@RequestBody SmsForm smsForm){
logger.info(" 发送: "+ smsForm.getPhone() + " 验证码: " + smsForm.getCode() + ",短信接口不可用");
return "短信接口不可用";
}
}
package com.zrqx.member.fg.client.third;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.zrqx.core.constant.third.ThirdRequestPath;
import com.zrqx.core.model.third.wechartlogin.WeChartThirdReturn;
import com.zrqx.core.util.response.CallBack;
/**
* 微信wap登录
*/
@FeignClient(value="third",fallback=WeChatLoginHystric.class)
public interface WeChatLoginClient {
@GetMapping(ThirdRequestPath.WECHAT_LOGIN+ThirdRequestPath.QUERY)
public CallBack<WeChartThirdReturn> query(@RequestParam("code")String code);
}
package com.zrqx.member.fg.client.third;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.zrqx.core.model.third.wechartlogin.WeChartThirdReturn;
import com.zrqx.core.util.response.CallBack;
@Component
public class WeChatLoginHystric implements WeChatLoginClient {
private final static Logger logger = LoggerFactory.getLogger(WeChatLoginHystric.class);
@Override
public CallBack<WeChartThirdReturn> query(String code){
logger.info("微信登录不可用!");
return null;
}
}
package com.zrqx.member.fg.emember.mapper;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.mapper.BaseMapper;
public interface FgExpertMemberMapper extends BaseMapper<ExpertMember>{
}
package com.zrqx.member.fg.emember.service;
import com.zrqx.core.form.member.bg.emember.SaveOrUpdateEMemberForm;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.service.BaseService;
public interface FgExpertMemberService extends BaseService<ExpertMember, Integer> {
void saveOrUpdate(SaveOrUpdateEMemberForm form);
}
package com.zrqx.member.fg.emember.service;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.exception.BusinessValidateException;
import com.zrqx.core.form.member.bg.emember.SaveOrUpdateEMemberForm;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.datatype.DateUtils;
import com.zrqx.core.util.encry.MD5Util;
import com.zrqx.member.fg.emember.mapper.FgExpertMemberMapper;
import com.zrqx.member.fg.member.mapper.FgMemberMapper;
@Service
public class FgExpertMemberServiceImpl extends BaseServiceImpl<ExpertMember,Integer> implements FgExpertMemberService {
@Autowired
private FgExpertMemberMapper mapper;
@Autowired
private FgMemberMapper mmapper;
@Override
public BaseMapper<ExpertMember> getMapper() {
return mapper;
}
@Override
public void saveOrUpdate(SaveOrUpdateEMemberForm form) {
if(mmapper.isExist(form.getId(),form.getAccount()) > 0) {
throw new BusinessValidateException("用户已存在!");
}
Member m = new Member();
ExpertMember em = new ExpertMember();
BeanUtils.copyProperties(form, m);
BeanUtils.copyProperties(form, em);
if (form.getId() == null) {
//新增
synchronized(this) {
if(mmapper.isExist(form.getId(),form.getAccount()) > 0) {
throw new BusinessValidateException("用户已存在!");
}
m.setLevel(1);
m.setCreateTime(DateUtils.getDate());
if(StringUtils.isBlank(m.getPassword())) {
try {
m.setPassword(MD5Util.getEncoderByMd5("123456"));
} catch (Exception e) {
e.printStackTrace();
}
}
mmapper.insertSelective(m);
em.setId(m.getId());
mapper.insert(em);
}
}else {
//修改
synchronized(this) {
if(mmapper.isExist(form.getId(),form.getAccount()) > 0) {
throw new BusinessValidateException("用户已存在!");
}
Member old = mmapper.selectByPrimaryKey(m.getId());
m.setCreateTime(old.getCreateTime());
m.setBalance(old.getBalance());
m.setLevel(old.getLevel());
if(StringUtils.isBlank(m.getPassword())) {
m.setPassword(old.getPassword());
}
mmapper.updateByPrimaryKey(m);
mapper.updateByPrimaryKey(em);
}
}
}
}
package com.zrqx.member.fg.member.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.Member;
public interface FgMemberMapper extends BaseMapper<Member>{
/**
* 判断 账号是否已存在
* @param id
* @param account
* @return
*/
@Select("<script>select count(id) from m_member "
+ "where account =#{account} "
+ "<if test = 'id != null' >"
+ " and id != #{id} "
+ "</if>"
+ "</script>")
public int isExist(@Param("id")Integer id,@Param("account")String account);
}
package com.zrqx.member.fg.member.mapper;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PayInfo;
public interface FgPayInfoMapper extends BaseMapper<PayInfo>{
}
package com.zrqx.member.fg.member.service;
import com.zrqx.core.form.member.fg.permissions.LoginMemberInfo;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.service.BaseService;
public interface FgMemberService extends BaseService<Member, Integer> {
Member login(String account);
Member loginQQ(String qqKey);
Member loginWechat(String wechatKey);
Member loginPhone(String phone);
LoginMemberInfo isLevel(Member m);
boolean isExistByAccount(Integer id, String account);
}
package com.zrqx.member.fg.member.service;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.enums.member.LevelEnum;
import com.zrqx.core.form.member.fg.permissions.LoginMemberInfo;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.ExpertMember;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.OrganMember;
import com.zrqx.core.model.member.PersonalMember;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.member.fg.emember.mapper.FgExpertMemberMapper;
import com.zrqx.member.fg.member.mapper.FgMemberMapper;
import com.zrqx.member.fg.omember.mapper.FgOrganMemberMapper;
import com.zrqx.member.fg.pmember.mapper.FgPersonalMemberMapper;
@Service
public class FgMemberServiceImpl extends BaseServiceImpl<Member,Integer> implements FgMemberService {
@Autowired
private FgMemberMapper mapper;
@Autowired
private FgExpertMemberMapper emapper;
@Autowired
private FgPersonalMemberMapper pmapper;
@Autowired
private FgOrganMemberMapper omapper;
@Override
public BaseMapper<Member> getMapper() {
return mapper;
}
@Override
public boolean isExistByAccount(Integer id, String account) {
return mapper.isExist(id, account) > 0;
}
@Override
public Member login(String account) {
createCriteria().andEqualTo("account", account);
return mapper.selectOneByExample(example);
}
@Override
public Member loginQQ(String qqKey) {
createCriteria().andEqualTo("qqKey", qqKey);
return mapper.selectOneByExample(example);
}
@Override
public Member loginWechat(String wechatKey) {
createCriteria().andEqualTo("wechatKey", wechatKey);
return mapper.selectOneByExample(example);
}
@Override
public Member loginPhone(String phone) {
createCriteria().andEqualTo("phone", phone);
return mapper.selectOneByExample(example);
}
/**
* 判断用户 级别 查询所需的数据
* @param m
* @return
*/
public LoginMemberInfo isLevel(Member m) {
LoginMemberInfo info = new LoginMemberInfo();
BeanUtils.copyProperties(m, info);
if(m.getLevel() == LevelEnum.PRESONAL.getCode()) {
PersonalMember pm = pmapper.selectByPrimaryKey(m.getId());
info.setImg(pm.getImg());
}else if (m.getLevel() == LevelEnum.EXPERT.getCode()){
ExpertMember em = emapper.selectByPrimaryKey(m.getId());
info.setAuthorId(em.getAuthorId());
info.setImg(em.getImg());
}else if (m.getLevel() == LevelEnum.ORGAN.getCode()){
OrganMember om = omapper.selectByPrimaryKey(m.getId());
info.setOrganId(om.getOid());
}
return info;
}
}
package com.zrqx.member.fg.member.service;
import com.zrqx.core.model.member.PayInfo;
import com.zrqx.core.service.BaseService;
public interface FgPayInfoService extends BaseService<PayInfo, Integer> {
}
package com.zrqx.member.fg.member.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PayInfo;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.member.fg.member.mapper.FgPayInfoMapper;
@Service
public class FgPayInfoServiceImpl extends BaseServiceImpl<PayInfo,Integer> implements FgPayInfoService {
@Autowired
private FgPayInfoMapper mapper;
@Override
public BaseMapper<PayInfo> getMapper() {
return mapper;
}
}
package com.zrqx.member.fg.omember.mapper;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.OrganMember;
public interface FgOrganMemberMapper extends BaseMapper<OrganMember>{
}
package com.zrqx.member.fg.omember.service;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.OrganMember;
import com.zrqx.core.service.BaseService;
public interface FgOrganMemberService extends BaseService<OrganMember, Integer> {
void save(Member m,OrganMember om);
}
package com.zrqx.member.fg.omember.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.enums.member.LevelEnum;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.OrganMember;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.datatype.DateUtils;
import com.zrqx.member.fg.member.mapper.FgMemberMapper;
import com.zrqx.member.fg.omember.mapper.FgOrganMemberMapper;
@Service
public class FgOrganMemberServiceImpl extends BaseServiceImpl<OrganMember,Integer> implements FgOrganMemberService {
@Autowired
private FgOrganMemberMapper mapper;
@Autowired
private FgMemberMapper mmapper;
@Override
public BaseMapper<OrganMember> getMapper() {
return mapper;
}
@Override
public void save(Member m, OrganMember om) {
m.setLevel(LevelEnum.ORGAN.getCode());
m.setCreateTime(DateUtils.getDate());
mmapper.insert(m);
om.setId(m.getId());
mapper.insert(om);
}
}
package com.zrqx.member.fg.organ.mapper;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.Organ;
public interface FgOrganMapper extends BaseMapper<Organ>{
}
package com.zrqx.member.fg.organ.service;
import com.zrqx.core.model.member.Organ;
import com.zrqx.core.service.BaseService;
public interface FgOrganService extends BaseService<Organ, Integer> {
}
package com.zrqx.member.fg.organ.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.Organ;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.member.fg.organ.mapper.FgOrganMapper;
@Service
public class FgOrganServiceImpl extends BaseServiceImpl<Organ,Integer> implements FgOrganService {
@Autowired
private FgOrganMapper mapper;
@Override
public BaseMapper<Organ> getMapper() {
return mapper;
}
}
package com.zrqx.member.fg.pm.controller;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.constant.member.MemberRequestPath;
import com.zrqx.core.enums.ResponseCodeEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.exception.LoginValidateException;
import com.zrqx.core.form.member.fg.permissions.LoginMemberInfo;
import com.zrqx.core.model.member.PmMember;
import com.zrqx.core.model.member.PrivateMessage;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.core.vo.member.fg.pm.FgPrivateMessageListVO;
import com.zrqx.core.vo.member.fg.pm.FgPrivateMessageVO;
import com.zrqx.member.commons.redis.Redis;
import com.zrqx.member.fg.pm.service.FgPmMemberService;
import com.zrqx.member.fg.pm.service.FgPrivateMessageService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 站内信 Controller
*/
@RestController
@RequestMapping(MemberRequestPath.FG+MemberRequestPath.PM)
@Api(description = "系统消息")
public class FgPrivateMessageController {
@Autowired
private FgPrivateMessageService service;
@Autowired
private FgPmMemberService pmService;
@Autowired
private Redis redis;
@ApiOperation(value = "删除", notes = "删除")
@PostMapping(value = MemberRequestPath.DELETE_OID)
public CallBack<Boolean> deleteById(@PathVariable Integer oid) {
PmMember pm = new PmMember();
pm.setId(oid);
pm.setStatus(2);
if (!pmService.updateByPrimaryKeySelective(pm)) {
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success(true);
}
@ApiOperation(value = "清空消息", notes = "清空消息")
@PostMapping(value = MemberRequestPath.DELETE)
public CallBack<Boolean> deleteAll() {
pmService.createCriteria().andEqualTo("memberId", redis.getMember().getId());
PmMember pm = new PmMember();
pm.setStatus(2);
if (!pmService.updateByPrimaryKeySelective(pm)) {
throw new BaseException(ResponseCodeEnum.FAIL);
}
return CallBack.success(true);
}
@ApiOperation(value = "查询", notes = "根据ID查询")
@GetMapping(value = MemberRequestPath.GET_OID)
public CallBack<FgPrivateMessageVO> getById(@PathVariable Integer oid) {
PrivateMessage pm = service.selectByPrimaryKey(oid);
FgPrivateMessageVO vo = new FgPrivateMessageVO();
BeanUtils.copyProperties(pm, vo);
return CallBack.success(vo);
}
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping(value = MemberRequestPath.PAGE)
public CallBack<PageInfo<FgPrivateMessageListVO>> page(PageParam pageParam) {
if(StringUtils.isBlank(pageParam.getOrderBy())){
pageParam.setOrderBy("sendTime desc");
}
LoginMemberInfo info = redis.getMember();
if(info == null) {
throw new LoginValidateException();
}
return CallBack.success(service.page(info.getId(),pageParam));
}
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping(value = MemberRequestPath.PAGE+1)
public CallBack<PageInfo<FgPrivateMessageListVO>> page(Integer memberId,PageParam pageParam) {
if(StringUtils.isBlank(pageParam.getOrderBy())){
pageParam.setOrderBy("sendTime desc");
}
return CallBack.success(service.page(memberId,pageParam));
}
}
package com.zrqx.member.fg.pm.mapper;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PmMember;
/**
* 站内信和会员
*/
public interface FgPmMemberMapper extends BaseMapper<PmMember>{
}
package com.zrqx.member.fg.pm.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PrivateMessage;
import com.zrqx.core.vo.member.fg.pm.FgPrivateMessageListVO;
/**
* 站内信
*/
public interface FgPrivateMessageMapper extends BaseMapper<PrivateMessage>{
@Select("select pm.id,pmm.id pmmId,title,content,sendTime "
+ "from m_private_message_member pmm left join m_private_message pm "
+ "on pm.id = pmm.pmid "
+ "where memberId = #{memberId} and status !=2")
List<FgPrivateMessageListVO> page(@Param("memberId")Integer memberId);
}
package com.zrqx.member.fg.pm.service;
import com.zrqx.core.model.member.PmMember;
import com.zrqx.core.service.BaseService;
/**
* 站内信和会员
*/
public interface FgPmMemberService extends BaseService<PmMember, Integer>{
}
package com.zrqx.member.fg.pm.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PmMember;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.member.fg.pm.mapper.FgPmMemberMapper;
/**
* 站内信和会员
*/
@Service
public class FgPmMemberServiceImpl extends BaseServiceImpl<PmMember, Integer> implements FgPmMemberService{
@Autowired
FgPmMemberMapper mapper;
@Override
public BaseMapper<PmMember> getMapper() {
return mapper;
}
}
package com.zrqx.member.fg.pm.service;
import com.zrqx.core.model.member.PrivateMessage;
import com.zrqx.core.service.BaseService;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.vo.member.fg.pm.FgPrivateMessageListVO;
/**
* 站内信
*/
public interface FgPrivateMessageService extends BaseService<PrivateMessage, Integer>{
/**
* 分页查询
* @param form
* @param pageParam
* @return
*/
PageInfo<FgPrivateMessageListVO> page(Integer memberId, PageParam pageParam);
}
package com.zrqx.member.fg.pm.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PrivateMessage;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.vo.member.fg.pm.FgPrivateMessageListVO;
import com.zrqx.member.fg.pm.mapper.FgPmMemberMapper;
import com.zrqx.member.fg.pm.mapper.FgPrivateMessageMapper;
/**
* 站内信 转
*/
@Service
public class FgPrivateMessageServiceImpl extends BaseServiceImpl<PrivateMessage, Integer> implements FgPrivateMessageService{
@Autowired
FgPrivateMessageMapper mapper;
@Autowired
FgPmMemberMapper pmmMapper;
public BaseMapper<PrivateMessage> getMapper() {
return mapper;
}
@Override
public PageInfo<FgPrivateMessageListVO> page(Integer memberId, PageParam pageParam) {
startPage(pageParam);
return new PageInfo<FgPrivateMessageListVO>(mapper.page(memberId));
}
}
package com.zrqx.member.fg.pmember.mapper;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.PersonalMember;
public interface FgPersonalMemberMapper extends BaseMapper<PersonalMember>{
}
package com.zrqx.member.fg.pmember.service;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.PersonalMember;
import com.zrqx.core.service.BaseService;
public interface FgPersonalMemberService extends BaseService<PersonalMember, Integer> {
void save(Member m);
}
package com.zrqx.member.fg.pmember.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.enums.member.LevelEnum;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.Member;
import com.zrqx.core.model.member.PersonalMember;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.datatype.DateUtils;
import com.zrqx.member.fg.member.mapper.FgMemberMapper;
import com.zrqx.member.fg.pmember.mapper.FgPersonalMemberMapper;
@Service
public class FgPersonalMemberServiceImpl extends BaseServiceImpl<PersonalMember, Integer>
implements FgPersonalMemberService {
@Autowired
private FgPersonalMemberMapper mapper;
@Autowired
private FgMemberMapper mmapper;
@Override
public BaseMapper<PersonalMember> getMapper() {
return mapper;
}
@Override
public void save(Member m) {
m.setLevel(LevelEnum.PRESONAL.getCode());
m.setCreateTime(DateUtils.getDate());
mmapper.insertSelective(m);
PersonalMember pm = new PersonalMember();
pm.setId(m.getId());
mapper.insert(pm);
}
public void update() {
/*
* if(mmapper.isExist(form.getId(),form.getAccount()) > 0) { throw new
* BusinessValidateException("用户已存在!"); } Member m = new Member();
* PersonalMember pm = new PersonalMember(); BeanUtils.copyProperties(form, m);
* BeanUtils.copyProperties(form, pm); // 修改 synchronized (this) {
* if(mmapper.isExist(form.getId(),form.getAccount()) > 0) { throw new
* BusinessValidateException("用户已存在!"); } Member old =
* mmapper.selectByPrimaryKey(m.getId()); m.setCreateTime(old.getCreateTime());
* m.setBalance(old.getBalance()); m.setLevel(old.getLevel());
* if(StringUtils.isBlank(m.getPassword())) { m.setPassword(old.getPassword());
* } mmapper.updateByPrimaryKey(m); mapper.updateByPrimaryKey(pm); }
*/
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论