123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- package com.huiju.estateagents.service.impl;
-
-
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.huiju.estateagents.base.ResponseBean;
- import com.huiju.estateagents.common.CommConstant;
- import com.huiju.estateagents.entity.TaActivityDynamicEnlist;
- import com.huiju.estateagents.entity.TaBuilding;
- import com.huiju.estateagents.entity.TaBuildingDynamic;
- import com.huiju.estateagents.entity.TaPerson;
- import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
- import com.huiju.estateagents.mapper.TaBuildingDynamicMapper;
- import com.huiju.estateagents.mapper.TaBuildingMapper;
- import com.huiju.estateagents.mapper.TaPersonMapper;
- import com.huiju.estateagents.service.ITaBuildingDynamicService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.propertyeditors.CustomDateEditor;
- import org.springframework.stereotype.Service;
- import org.springframework.web.bind.ServletRequestDataBinder;
-
- import javax.servlet.http.HttpServletRequest;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.time.Instant;
- import java.time.LocalDateTime;
- import java.time.ZoneId;
- import java.time.ZoneOffset;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
-
- /**
- * <p>
- * 项目动态表 服务实现类
- * </p>
- *
- * @author jobob
- * @since 2019-03-21
- */
- @Service
- public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicMapper, TaBuildingDynamic> implements ITaBuildingDynamicService {
-
- @Autowired
- private TaBuildingDynamicMapper buildingDynamicMapper;
-
- @Autowired
- private TaBuildingMapper buildingMapper;
-
-
- @Autowired
- private TaActivityDynamicEnlistMapper taActivityDynamicEnlistMapper;
-
- @Autowired
- private TaPersonMapper taPersonMapper;
-
-
- protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
- DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- CustomDateEditor editor = new CustomDateEditor(df, true);//true表示允许为空,false反之
- binder.registerCustomEditor(Date.class, editor);
- }
- @Override
- public ResponseBean iBuildingDynamicList(Integer pageNum, Integer pageSize, String name, String buildingId) {
- Page<TaBuildingDynamic> page = new Page<>();
- page.setSize(pageSize == null ? 10 : pageSize);
- page.setCurrent(pageNum == null ? 1 : pageNum);
-
- IPage<TaBuildingDynamic> buildingDynamic = buildingDynamicMapper.buildingDynamicList(page, name, buildingId);
- List<TaBuildingDynamic> buildingDynamicList=buildingDynamic.getRecords();
-
- HashMap hashMap= new HashMap<>();
- hashMap.put("list",buildingDynamicList);
- hashMap.put("total",buildingDynamic.getTotal());
- hashMap.put("pageNum",buildingDynamic.getCurrent());
- hashMap.put("pageSize",buildingDynamic.getSize());
- return ResponseBean.success(hashMap);
- }
-
- @Override
- public ResponseBean iBuildingDynamicSelectId(String id) {
- TaBuildingDynamic buildingDynamicList= buildingDynamicMapper.iBuildingDynamicSelectId(id);
- return ResponseBean.success(buildingDynamicList);
- }
-
- @Override
- public ResponseBean getWxBuildingDynamiceList(Integer pageNum, Integer pageSize,Integer buildingId,String openid) {
- Page<TaBuildingDynamic> page = new Page<>();
- page.setCurrent(pageNum);
- page.setSize(pageSize);
- QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
- buildingDynamicQueryWrapper.eq("building_id", buildingId);
- buildingDynamicQueryWrapper.eq("status", "1");
- buildingDynamicQueryWrapper.orderByDesc("create_date");
- IPage<TaBuildingDynamic> buildingDynamicIPage = buildingDynamicMapper.selectPage(page, buildingDynamicQueryWrapper);
- List<TaBuildingDynamic> records = buildingDynamicIPage.getRecords();
- // 判断换当前列表活动状态—1:进行中(展示活动报名截止时间),2:未开始(展示活动报名时间),3:结束(不展示)
- for (TaBuildingDynamic taBuildingDynamic:records){
- QueryWrapper<TaActivityDynamicEnlist> activityDynamicEnlist = new QueryWrapper<>();
- TaPerson taPerson = taPersonMapper.selectByIdPerson(openid);
- if (null == taPerson){
- return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
- }
- activityDynamicEnlist.eq("phone", taPerson.getPhone());
- TaActivityDynamicEnlist taActivityDynamicEnlistPhone= taActivityDynamicEnlistMapper.selectOne(activityDynamicEnlist);
- if (null == taActivityDynamicEnlistPhone){
- taBuildingDynamic.setIsSing("1");
- }
- // 获取当前时间状态
- taBuildingDynamic= timeCondition(taBuildingDynamic);
- }
- HashMap<String, Object> map = new HashMap<>();
- map.put("list", records);
- map.put("total", buildingDynamicIPage.getTotal());
- map.put("pageNum", buildingDynamicIPage.getCurrent());
- map.put("pageSize", buildingDynamicIPage.getSize());
- return ResponseBean.success(map);
- }
-
- @Override
- public ResponseBean getWxBuildingDynamiceInfo(String dynamicId,Integer buildingId,String openid) {
-
- QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
- buildingDynamicQueryWrapper.eq("dynamic_id", dynamicId);
- buildingDynamicQueryWrapper.eq("status",1);
- TaBuildingDynamic tabuildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
- // 当前阅读量加1
-
- buildingDynamicMapper.updateById( tabuildingDynamic.setSaveNum(tabuildingDynamic.getSaveNum()+1));
- TaBuildingDynamic buildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
- TaPerson taPerson = taPersonMapper.selectByIdPerson(openid);
- if (null == taPerson){
- return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
- }
- // 查询是否报名
- QueryWrapper<TaActivityDynamicEnlist> activityDynamicEnlist = new QueryWrapper<>();
- activityDynamicEnlist.eq("phone", taPerson.getPhone());
- TaActivityDynamicEnlist taActivityDynamicEnlistPhone= taActivityDynamicEnlistMapper.selectOne(activityDynamicEnlist);
- if (null == taActivityDynamicEnlistPhone){
- buildingDynamic.setIsSing("1");
- }
- // 获取报名总数
- QueryWrapper<TaActivityDynamicEnlist> taActivityDynamicEnlist = new QueryWrapper<>();
- taActivityDynamicEnlist.eq("dynamic_id", dynamicId);
- taActivityDynamicEnlist.eq("building_id",buildingId);
- int applyCount= taActivityDynamicEnlistMapper.selectCount(taActivityDynamicEnlist);
- buildingDynamic.setCount(applyCount);
- // 获取当前时间状态
- buildingDynamic = timeCondition(buildingDynamic);
-
- return ResponseBean.success(buildingDynamic);
- }
-
- @Override
- public ResponseBean buildingDynamicAdd(HashMap map) {
- TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
- Date time = (Date)map.get("publishDate");
- Instant instant = time.toInstant();
- ZoneId zoneId = ZoneId.systemDefault();
- LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
-
- // buildingDynamic.setDynamicId(idGen.nextId()+"");
- buildingDynamic.setBuildingId(map.get("buildingId")+"");
- buildingDynamic.setImgUrl((String) map.get("imgUrl"));
- buildingDynamic.setDesc(map.get("desc")+"");
- buildingDynamic.setUrl(map.get("url")+"");
- buildingDynamic.setTitle(map.get("title")+"");
- buildingDynamic.setPublishDate(localDateTime);
- buildingDynamic.setStatus(1);
- buildingDynamic.setCreateDate(LocalDateTime.now());
-
- buildingDynamicMapper.insertBuildingDynamic(buildingDynamic);
- return ResponseBean.success("成功");
- }
-
- @Override
- public ResponseBean buildingDynamicDelete(String id) {
- TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
- buildingDynamic.setDynamicId(id);
- buildingDynamic.setStatus(-1);
- QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
- buildingDynamicQueryWrapper.eq("dynamic_id", id);
- buildingDynamicMapper.update(buildingDynamic,buildingDynamicQueryWrapper);
- return ResponseBean.success("成功");
- }
-
- @Override
- public ResponseBean buildingDynamicUpdate(HashMap<Object, Object> map) {
- TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
-
- Date time = (Date)map.get("publishDate");
- Instant instant = time.toInstant();
- ZoneId zoneId = ZoneId.systemDefault();
- LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
-
- buildingDynamic.setDynamicId(map.get("dynamicId")+"");
- buildingDynamic.setBuildingId(map.get("buildingId")+"");
- buildingDynamic.setImgUrl((String) map.get("imgUrl"));
- buildingDynamic.setDesc(map.get("desc")+"");
- buildingDynamic.setUrl(map.get("url")+"");
- buildingDynamic.setTitle(map.get("title")+"");
- buildingDynamic.setPublishDate(localDateTime);
- buildingDynamic.setStatus(1);
- buildingDynamic.setCreateDate(LocalDateTime.now());
-
- buildingDynamicMapper.buildingDynamicUpdate(buildingDynamic);
- return ResponseBean.success("成功");
- }
-
- @Override
- public ResponseBean taActivityDynamicEnlistAdd(TaActivityDynamicEnlist taActivityDynamicEnlist) {
- // 查询当前活动属于哪个楼盘
- TaBuildingDynamic taBuildingDynamic= buildingDynamicMapper.iBuildingDynamicSelectId(taActivityDynamicEnlist.getDynamicId());
- taActivityDynamicEnlist.setCreateDate(LocalDateTime.now())
- .setBuildingId(taBuildingDynamic.getDynamicId());
- int state = taActivityDynamicEnlistMapper.insert(taActivityDynamicEnlist);
- return ResponseBean.success(state);
- }
-
- /**
- * 根据报名开始时间和结束时间判断当前图标状态
- */
- private TaBuildingDynamic timeCondition(TaBuildingDynamic taBuildingDynamic){
- Long currentTime = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
- if (null == taBuildingDynamic.getEnlistEnd () && null == taBuildingDynamic.getEnlistStart()){
- return taBuildingDynamic;
- }
- // 报名截止时间
- Long enlistEnd = taBuildingDynamic.getEnlistEnd ().toInstant(ZoneOffset.of("+8")).toEpochMilli();
- // 报名开始时间
- Long enlistStart = taBuildingDynamic.getEnlistStart().toInstant(ZoneOffset.of("+8")).toEpochMilli();
- // (1:进行中)当前时间小于报名截止时间,并且报名状态为1
- if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistEnd ) {
- taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_ONE);
- }
- //(2:未开始)当前时间是否小于报名时间,并且报名状态为1
- if (!"1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistStart){
- taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_TWO);
- }
- //(3:结束)当前时间大于报名结束时间,并且报名状态为1
- if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime >= enlistEnd){
- taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_ONE_THREE);
- }
- return taBuildingDynamic;
- }
- }
|