Commit 11a76673 authored by muhong's avatar muhong

修改 小程序藏品接口

parent c5dd98cf
......@@ -10,6 +10,7 @@ public interface FavoritesItemsRelationDao {
int batchInsert(List<FavoritesItemsRelation> list);
int deleteByFavoritesId(Long favoritesId, List<Long> favoritesIds);
int deleteByChosen(Long favoritesId, List<Long> itemIds);
int deleteByUserIdItemId(Long userId, Long itemId);
List<FavoritesItemsRelation> listByFavoritesId(Long favoritesId, List<Long> favoritesIds);
FavoritesItemsRelation selectByUserIdItemId(Long userId, Long itemId);
PageInfo<FavoritesItemsRelation> pageByFavoritesId(Long favoritesId, int page, int size);
......
......@@ -59,6 +59,7 @@ public class FavoritesDaoImpl implements FavoritesDao {
FavoritesExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andDeletedEqualTo(false);
example.orderBy("add_time desc");
PageHelper.startPage(page, size);
List<Favorites> list = favoritesMapper.selectByExampleWithBLOBs(example);
return new PageInfo<>(list);
......
......@@ -41,6 +41,16 @@ public class FavoritesItemsRelationDaoImpl implements FavoritesItemsRelationDao
criteria.andItemIdIn(itemIds);
return favoritesItemsRelationMapper.deleteByExample(example);
}
@Override
public int deleteByUserIdItemId(Long userId, Long itemId) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
FavoritesItemsRelationExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andItemIdEqualTo(itemId);
return favoritesItemsRelationMapper.deleteByExample(example);
}
@Override
public List<FavoritesItemsRelation> listByFavoritesId(Long favoritesId, List<Long> favoritesIds) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
......
package com.wwdz.ch.wx.config;
import java.util.List;
import com.wwdz.ch.wx.annotation.support.LoginUserHandlerMethodArgumentResolver;
import com.wwdz.ch.wx.interceptor.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
@Configuration
public class WxWebMvcConfiguration implements WebMvcConfigurer {
@Bean
LoginInterceptor loginInterceptor() {
return new LoginInterceptor();
}
@Autowired
private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver;
......@@ -17,4 +24,12 @@ public class WxWebMvcConfiguration implements WebMvcConfigurer {
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(loginUserHandlerMethodArgumentResolver);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/wx/user/loginByWx"
, "/wx/user/loginByMobile", "/wx/user/loginRegCaptcha", "/wx/user/updateRegCaptcha");
}
}
package com.wwdz.ch.wx.impl;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.consts.CommonEnum;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.FavoritesDao;
import com.wwdz.ch.db.dao.FavoritesItemsRelationDao;
......@@ -223,7 +224,11 @@ public class FavoritesServiceImpl implements FavoritesService {
vo.setPrice(String.valueOf(item.getPrice() * 100));
vo.setDetail(item.getDetail());
vo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), relation.getItemId()) ? 1 : 0);
vo.setCollectCount(favoritesItemsRelationDao.countByItemId(relation.getItemId()));
long count = favoritesItemsRelationDao.countByItemId(item.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
vo.setCollectCount(count);
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
agentTranceResponseVo.setAgentTraceInfo_("");
......
......@@ -64,7 +64,11 @@ public class ItemServiceImpl implements ItemService {
vo.setPrice(String.valueOf(item.getPrice() * 100));
vo.setDetail(item.getDetail());
vo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), item.getId()) ? 1 : 0);
vo.setCollectCount(favoritesItemsRelationDao.countByItemId(item.getId()));
long count = favoritesItemsRelationDao.countByItemId(item.getId());
if (item.getSourceType().equals(CommonEnum.SourceTypeEnum.USER_UPLOAD.getCode())) {
count --;
}
vo.setCollectCount(count);
AgentTranceResponseVo agentTranceResponseVo = new AgentTranceResponseVo();
agentTranceResponseVo.setAgentTraceInfo_("");
......@@ -120,7 +124,10 @@ public class ItemServiceImpl implements ItemService {
favoritesItemsRelation.setItemId(item.getId());
favoritesItemsRelation.setAddTime(now);
favoritesItemsRelationDao.insert(favoritesItemsRelation);
return Result.success();
Map<String, Object> map = new HashMap<>();
map.put("id", item.getId());
return Result.success(map);
} catch (Exception e) {
logger.error("发布藏品失败,原因:" + e.getMessage(), e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
......@@ -208,6 +215,18 @@ public class ItemServiceImpl implements ItemService {
return Result.failed("数据异常,该藏品不存在");
}
item.setName(dto.getName());
item.setCid(dto.getCid());
item.setImages(dto.getImages());
item.setPrice(Long.parseLong(dto.getPrice()) / 100);
item.setDetail(dto.getDetail());
Date now = new Date();
item.setUpdateTime(now);
itemDao.update(item);
// 删除原来藏品和收藏册关联
favoritesItemsRelationDao.deleteByUserIdItemId(dto.getUserId(), dto.getId());
// 新增藏品和收藏册关联
FavoritesItemsRelation favoritesItemsRelation = new FavoritesItemsRelation();
favoritesItemsRelation.setUserId(dto.getUserId());
......@@ -216,7 +235,7 @@ public class ItemServiceImpl implements ItemService {
favoritesItemsRelationDao.insert(favoritesItemsRelation);
return Result.success();
} catch (Exception e) {
logger.error("收藏藏品失败,原因:" + e.getMessage(), e);
logger.error("修改藏品失败,原因:" + e.getMessage(), e);
return Result.failed("收藏藏品失败");
}
}
......
package com.wwdz.ch.wx.interceptor;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.wx.service.UserTokenManager;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Component
public class LoginInterceptor implements HandlerInterceptor {
Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);
@Autowired
private UserTokenManager userTokenManager;
/***
* 在请求处理之前进行调用(Controller方法调用之前)
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
logger.info("-------------进入拦截器");
String token = request.getHeader("kl_token");
if (StringUtils.isBlank(token)) {
return true;
}
if (StringUtils.isNotBlank(token)) {
Long userId = userTokenManager.getUserId(token);
if (Objects.nonNull(userId)) {
return true;
}
}
Map<Object, Object> map = new HashMap<>();
map.put("code", 401);
map.put("success", false);
map.put("message", "未登录!");
map.put("result", null);
response.setContentType("application/json; charset=utf-8");
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.getWriter().write(JSON.toJSONString(map));
return false;
}
/***
* 请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
/***
* 整个请求结束之后被调用,也就是在DispatchServlet渲染了对应的视图之后执行(主要用于进行资源清理工作)
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment