Commit e55f7237 authored by muhong's avatar muhong

新增修改 小程序相关接口

parent 0c44b7f3
......@@ -13,4 +13,6 @@ public interface FavoritesItemsRelationDao {
List<FavoritesItemsRelation> listByFavoritesId(Long favoritesId, List<Long> favoritesIds);
FavoritesItemsRelation selectByUserIdItemId(Long userId, Long itemId);
PageInfo<FavoritesItemsRelation> pageByFavoritesId(Long favoritesId, int page, int size);
long count(Long itemId);
boolean isCollected(Long userId, Long itemId);
}
package com.wwdz.ch.db.dao;
import com.wwdz.ch.db.domain.Footprint;
import java.util.List;
public interface FootPrintDao {
List<Footprint> listByUserId(Long userId);
List<Footprint> pageByUserId(Long userId, Integer page, Integer size);
long countByUserId(Long userId);
int delete(List<Long> ids);
Footprint selectByUserIdItem(Long userId, Long itemId);
int insert(Footprint footprint);
int upateTime(Footprint footprint);
}
......@@ -7,4 +7,5 @@ import java.util.List;
public interface UserItemsRelationDao {
int insert(UserItemsRelation record);
List<UserItemsRelation> listByUserIds(Long userId, List<Long> userIds);
boolean isExisted(Long userId, Long itemId);
}
......@@ -68,4 +68,21 @@ public class FavoritesItemsRelationDaoImpl implements FavoritesItemsRelationDao
List<FavoritesItemsRelation> list = favoritesItemsRelationMapper.selectByExample(example);
return new PageInfo<>(list);
}
@Override
public long count(Long itemId) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
FavoritesItemsRelationExample.Criteria criteria = example.createCriteria();
criteria.andItemIdEqualTo(itemId);
return favoritesItemsRelationMapper.countByExample(example);
}
@Override
public boolean isCollected(Long userId, Long itemId) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
FavoritesItemsRelationExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andItemIdEqualTo(itemId);
return favoritesItemsRelationMapper.countByExample(example) > 0;
}
}
package com.wwdz.ch.db.dao.impl;
import com.github.pagehelper.PageHelper;
import com.wwdz.ch.db.dao.FootPrintDao;
import com.wwdz.ch.db.domain.Footprint;
import com.wwdz.ch.db.domain.FootprintExample;
import com.wwdz.ch.db.mapper.FootprintMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Repository
public class FootPrintDaoImpl implements FootPrintDao {
@Autowired
private FootprintMapper footprintMapper;
@Override
public List<Footprint> listByUserId(Long userId) {
FootprintExample example = new FootprintExample();
FootprintExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andDeletedEqualTo(false);
example.orderBy("update_time desc");
return footprintMapper.selectByExample(example);
}
@Override
public List<Footprint> pageByUserId(Long userId, Integer page, Integer size) {
FootprintExample example = new FootprintExample();
FootprintExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andDeletedEqualTo(false);
example.orderBy("update_time desc");
PageHelper.startPage(page, size);
return footprintMapper.selectByExample(example);
}
@Override
public long countByUserId(Long userId) {
FootprintExample example = new FootprintExample();
FootprintExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andDeletedEqualTo(false);
return footprintMapper.countByExample(example);
}
@Override
public int delete(List<Long> ids) {
FootprintExample example = new FootprintExample();
FootprintExample.Criteria criteria = example.createCriteria();
criteria.andIdIn(ids);
Footprint footprint = new Footprint();
footprint.setDeleted(true);
footprint.setUpdateTime(new Date());
return footprintMapper.updateByExampleSelective(footprint, example);
}
@Override
public Footprint selectByUserIdItem(Long userId, Long itemId) {
FootprintExample example = new FootprintExample();
FootprintExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andItemIdEqualTo(itemId);
criteria.andDeletedEqualTo(false);
return footprintMapper.selectOneByExample(example);
}
@Override
public int insert(Footprint footprint) {
return footprintMapper.insert(footprint);
}
@Override
public int upateTime(Footprint footprint) {
return footprintMapper.updateByPrimaryKey(footprint);
}
}
......@@ -51,11 +51,13 @@ public class ItemManagerImpl implements ItemManager {
public PageInfo<Item> findByPage(CoinRequestDto coinRequestDto) {
ItemExample example = new ItemExample();
ItemExample.Criteria criteria = example.createCriteria();
criteria.andIsDeletedEqualTo(false);
example.orderBy("update_time desc");
JdbcHelper.ifPresent(coinRequestDto.getId(), criteria :: andIdEqualTo);
JdbcHelper.ifPresent(coinRequestDto.getName(), criteria :: andNameLike);
JdbcHelper.ifPresent(coinRequestDto.getCid(), criteria :: andCidEqualTo);
PageHelper.startPage(coinRequestDto.getPage(), coinRequestDto.getLimit());
List<Item> list = itemMapper.selectByExample(example);
List<Item> list = itemMapper.selectByExampleWithBLOBs(example);
return new PageInfo<>(list);
}
......
......@@ -28,4 +28,13 @@ public class UserItemsRelationDaoImpl implements UserItemsRelationDao {
JdbcHelper.ifPresent(userIds, criteria::andUserIdIn);
return usersItemsRelationMapper.selectByExample(example);
}
@Override
public boolean isExisted(Long userId, Long itemId) {
UserItemsRelationExample example = new UserItemsRelationExample();
UserItemsRelationExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andItemIdEqualTo(itemId);
return usersItemsRelationMapper.countByExample(example) > 0;
}
}
......@@ -2,10 +2,12 @@ package com.wwdz.ch.db.mapper;
import com.wwdz.ch.db.domain.Footprint;
import com.wwdz.ch.db.domain.FootprintExample;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface FootprintMapper {
long countByExample(FootprintExample example);
......
......@@ -2,10 +2,12 @@ package com.wwdz.ch.db.mapper;
import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.domain.UserExample;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface UserMapper {
long countByExample(UserExample example);
......
package com.wwdz.ch.wx.entity.request;
import com.xxdxxs.entity.Entity;
import lombok.Data;
@Data
public class CategoryRequestDto implements Entity {
private Integer id;
private Integer level;
private Integer page;
private Integer size;
}
package com.wwdz.ch.wx.entity.request;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.List;
@Data
public class FootPrintRequestDto implements Entity {
private Long id;
private Long userId;
private Long itemId;
private Integer when;
private Integer page;
private Integer size;
private List<Long> ids;
}
......@@ -29,4 +29,6 @@ public class ItemRequestDto implements Entity {
private String detail;
// 藏品价格
private String price;
private Integer page;
private Integer size;
}
......@@ -8,6 +8,7 @@ public class UserRequestDto implements Entity {
private Long userId;
private String mobile;
private String code;
private String smsCode;
private String avatarUrl;
private Long shareUserId;
private String nickname;
......
package com.wwdz.ch.wx.entity.vo;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.List;
@Data
public class FootPrintResponseVo implements Entity {
private Integer timeType;
private List<ItemResponseVo> items;
}
......@@ -5,6 +5,7 @@ import lombok.Data;
@Data
public class ItemResponseVo {
private Long id;
private Long itemId;
private Integer cid;
private String categoryName;
private String name;
......@@ -14,4 +15,6 @@ public class ItemResponseVo {
private Integer sourceType;
private Integer isCollected;
private Long favoritesId;
private long collectCount;
private Integer isMine;
}
package com.wwdz.ch.wx.impl;
import com.wwdz.ch.wx.service.CategoryService;
import org.springframework.stereotype.Service;
@Service
public class CategoryImpl implements CategoryService {
}
package com.wwdz.ch.wx.impl;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.CategoryManager;
import com.wwdz.ch.wx.entity.request.CategoryRequestDto;
import com.wwdz.ch.wx.service.CategoryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class CategoryServiceImpl implements CategoryService {
private static final Logger logger = LoggerFactory.getLogger(CategoryServiceImpl.class);
@Autowired
private CategoryManager categoryManager;
@Override
public Result top(CategoryRequestDto dto) {
try {
return Result.success(categoryManager.queryByLevel(dto.getLevel(), dto.getPage(), dto.getSize()));
} catch (Exception e) {
logger.error("查询分类类目失败", e);
return Result.failed("查询分类类目失败");
}
}
@Override
public Result child(CategoryRequestDto dto) {
try {
return Result.success(categoryManager.queryByPid(dto.getId()));
} catch (Exception e) {
logger.error("查询子类目失败", e);
return Result.failed("查询子类目失败");
}
}
}
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.CategoryManager;
......@@ -10,9 +11,11 @@ import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.db.domain.FavoritesItemsRelation;
import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.domain.UserItemsRelation;
import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.wx.entity.request.ItemRequestDto;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.service.ItemService;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -31,16 +34,46 @@ public class ItemServiceImpl implements ItemService {
@Autowired
private ItemManager itemManager;
@Autowired
private UserItemsRelationDao userItemsRelationManager;
private UserItemsRelationDao userItemsRelationDao;
@Autowired
private FavoritesItemsRelationDao favoritesItemsRelationManager;
private FavoritesItemsRelationDao favoritesItemsRelationDao;
@Autowired
private CategoryManager categoryManager;
@Override
public Result page(ItemRequestDto dto) {
return null;
try {
CoinRequestDto coinRequestDto = new CoinRequestDto();
coinRequestDto.setPage(dto.getPage());
coinRequestDto.setLimit(dto.getSize());
PageInfo<Item> page = itemManager.findByPage(coinRequestDto);
PageInfo<ItemResponseVo> result = new PageInfo<>();
result.setPageNum(page.getPageNum());
result.setPageSize(page.getPageSize());
result.setTotal(page.getTotal());
result.setList(new ArrayList<>());
if (CollectionUtils.isEmpty(page.getList())) {
return Result.success(result);
}
List<ItemResponseVo> resultList = new ArrayList<>();
for (Item item : page.getList()) {
ItemResponseVo vo = new ItemResponseVo();
vo.setId(item.getId());
vo.setName(item.getName());
vo.setImages(item.getImages());
vo.setPrice(String.valueOf(item.getPrice() * 100));
vo.setDetail(item.getDetail());
vo.setIsCollected(favoritesItemsRelationDao.isCollected(dto.getUserId(), item.getId()) ? 1 : 0);
vo.setCollectCount(favoritesItemsRelationDao.count(item.getId()));
resultList.add(vo);
}
result.setList(resultList);
return Result.success(result);
} catch (Exception e) {
logger.error("查询首页列表失败", e);
return Result.failed("查询首页列表失败");
}
}
@Override
......@@ -60,7 +93,7 @@ public class ItemServiceImpl implements ItemService {
item.setIsStd(false);
item.setSort(100);
item.setImages(dto.getImages());
item.setPrice(Long.parseLong(dto.getPrice()) * 100);
item.setPrice(Long.parseLong(dto.getPrice()) / 100);
item.setDetail(dto.getDetail());
Date now = new Date();
item.setCreateTime(now);
......@@ -73,14 +106,14 @@ public class ItemServiceImpl implements ItemService {
UserItemsRelation userItemsRelation = new UserItemsRelation();
userItemsRelation.setUserId(dto.getUserId());
userItemsRelation.setItemId(item.getId());
userItemsRelationManager.insert(userItemsRelation);
userItemsRelationDao.insert(userItemsRelation);
// 新增收藏册和藏品关联记录
FavoritesItemsRelation favoritesItemsRelation = new FavoritesItemsRelation();
favoritesItemsRelation.setFavoritesId(dto.getFavoritesId());
favoritesItemsRelation.setItemId(item.getId());
favoritesItemsRelation.setAddTime(now);
favoritesItemsRelationManager.insert(favoritesItemsRelation);
favoritesItemsRelationDao.insert(favoritesItemsRelation);
return Result.success();
} catch (Exception e) {
logger.error("发布藏品失败,原因:" + e.getMessage(), e);
......@@ -106,13 +139,16 @@ public class ItemServiceImpl implements ItemService {
if (Objects.nonNull(category)) {
itemResponseVo.setCategoryName(category.getName());
}
itemResponseVo.setPrice(String.valueOf(item.getPrice() / 100));
itemResponseVo.setPrice(String.valueOf(item.getPrice() * 100));
itemResponseVo.setSourceType(item.getSourceType());
FavoritesItemsRelation favoritesItemsRelation = favoritesItemsRelationManager.selectByUserIdItemId(dto.getUserId(), item.getId());
FavoritesItemsRelation favoritesItemsRelation = favoritesItemsRelationDao.selectByUserIdItemId(dto.getUserId(), item.getId());
if (Objects.nonNull(favoritesItemsRelation)) {
itemResponseVo.setIsCollected(1);
itemResponseVo.setFavoritesId(favoritesItemsRelation.getFavoritesId());
} else {
itemResponseVo.setIsCollected(0);
}
itemResponseVo.setIsMine(userItemsRelationDao.isExisted(dto.getUserId(), item.getId()) ? 1 : 0);
return Result.success(itemResponseVo);
} catch (Exception e) {
logger.error("查看藏品详情失败,原因:" + e.getMessage(), e);
......@@ -131,7 +167,7 @@ public class ItemServiceImpl implements ItemService {
item.setName(dto.getName());
item.setCid(dto.getCid());
item.setImages(dto.getImages());
item.setPrice(Long.parseLong(dto.getPrice()) * 100);
item.setPrice(Long.parseLong(dto.getPrice()) / 100);
item.setDetail(dto.getDetail());
Date now = new Date();
item.setUpdateTime(now);
......@@ -142,14 +178,14 @@ public class ItemServiceImpl implements ItemService {
// 删除藏品和原收藏册关联
List<Long> itemIds = new ArrayList<>();
itemIds.add(item.getId());
favoritesItemsRelationManager.deleteByChosen(dto.getBeforeFavoritesId(), itemIds);
favoritesItemsRelationDao.deleteByChosen(dto.getBeforeFavoritesId(), itemIds);
// 新增藏品和新收藏册关联
FavoritesItemsRelation favoritesItemsRelation = new FavoritesItemsRelation();
favoritesItemsRelation.setUserId(dto.getUserId());
favoritesItemsRelation.setFavoritesId(dto.getAfterFavoritesId());
favoritesItemsRelation.setItemId(item.getId());
favoritesItemsRelationManager.insert(favoritesItemsRelation);
favoritesItemsRelationDao.insert(favoritesItemsRelation);
return Result.success();
} catch (Exception e) {
logger.error("修改藏品失败,原因:" + e.getMessage(), e);
......@@ -170,7 +206,7 @@ public class ItemServiceImpl implements ItemService {
favoritesItemsRelation.setUserId(dto.getUserId());
favoritesItemsRelation.setFavoritesId(dto.getFavoritesId());
favoritesItemsRelation.setItemId(item.getId());
favoritesItemsRelationManager.insert(favoritesItemsRelation);
favoritesItemsRelationDao.insert(favoritesItemsRelation);
return Result.success();
} catch (Exception e) {
logger.error("收藏藏品失败,原因:" + e.getMessage(), e);
......
......@@ -3,23 +3,32 @@ package com.wwdz.ch.wx.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.core.notify.NotifyService;
import com.wwdz.ch.core.notify.NotifyType;
import com.wwdz.ch.core.notify.SmsResult;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.type.UserTypeEnum;
import com.wwdz.ch.core.util.CharUtil;
import com.wwdz.ch.core.util.RegexUtil;
import com.wwdz.ch.db.dao.UserDao;
import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.wx.dao.UserInfo;
import com.wwdz.ch.wx.dao.UserToken;
import com.wwdz.ch.wx.dao.WxLoginInfo;
import com.wwdz.ch.wx.entity.request.FavoritesRequestDto;
import com.wwdz.ch.wx.entity.request.UserRequestDto;
import com.wwdz.ch.wx.service.CaptchaCodeManager;
import com.wwdz.ch.core.captcha.CaptchaCodeManager;
import com.wwdz.ch.wx.service.FavoritesService;
import com.wwdz.ch.wx.service.UserService;
import com.wwdz.ch.wx.service.UserTokenManager;
import com.wwdz.ch.wx.util.IpUtil;
import com.wwdz.ch.wx.util.StringUtil;
import com.wwdz.ch.wx.util.WxResponseCode;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
......@@ -40,6 +49,12 @@ public class UserServiceImpl implements UserService {
private WxMaService wxMaService;
@Autowired
private UserTokenManager userTokenManager;
@Autowired
private NotifyService notifyService;
@Autowired
private ApplicationContext applicationContext;
@Autowired
private FavoritesService favoritesService;
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -84,6 +99,10 @@ public class UserServiceImpl implements UserService {
user.setLastLoginIp(IpUtil.client(request));
user.setShareUserId(shareUserId);
userDao.insert(user);
FavoritesRequestDto dto = new FavoritesRequestDto();
dto.setUserId(user.getId());
favoritesService.addDefault(dto);
} else {
user.setLastLoginTime(new Date());
user.setLastLoginIp(IpUtil.client(request));
......@@ -132,32 +151,69 @@ public class UserServiceImpl implements UserService {
}
@Override
public Result regCaptcha(UserRequestDto dto) {
try {
if (!RegexUtil.isMobileExact(dto.getMobile())) {
return Result.failed("手机号格式不正确");
}
if (!notifyService.isSmsEnable()) {
logger.error("请求验证码出错:{}", WxResponseCode.AUTH_CAPTCHA_UNSUPPORT.desc());
return Result.failed(WxResponseCode.AUTH_CAPTCHA_UNSUPPORT.desc());
}
String activeProfile = applicationContext.getEnvironment().getActiveProfiles()[0];
String code = "123456";
if (!StringUtils.equals("dev", activeProfile)) {
code = CharUtil.getRandomNum(6);
SmsResult smsResult = notifyService.notifySmsTemplate(dto.getMobile(), NotifyType.CAPTCHA, new String[]{code, "1"});
if (smsResult != null) {
logger.info("*****腾讯云短信发送->请求验证码,短信发送结果:{}", JSONObject.toJSONString(smsResult));
}
}
boolean successful = CaptchaCodeManager.addToCache(dto.getMobile(), code,1);
if (!successful) {
logger.error("请求验证码出错:{}", WxResponseCode.AUTH_CAPTCHA_FREQUENCY.desc());
return Result.failed(WxResponseCode.AUTH_CAPTCHA_FREQUENCY.desc());
}
logger.info("【请求结束】请求验证码成功");
return Result.success();
} catch (Exception e) {
logger.error("请求验证码失败", e);
return Result.failed("请求验证码失败");
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result loginByMobile(UserRequestDto dto, HttpServletRequest request) {
try {
String mobileCode = CaptchaCodeManager.getCachedCaptcha(dto.getMobile());
if (!StringUtils.equals(dto.getCode(), mobileCode)) {
if (!StringUtils.equals(dto.getSmsCode(), mobileCode)) {
return Result.failed("验证码不正确");
}
String openId = "";
String sessionKey = "";
try {
WxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo(dto.getCode());
openId = result.getOpenid();
sessionKey = result.getSessionKey();
} catch (Exception e) {
logger.error("微信登录,调用官方接口失败:{}", dto.getCode(), e);
return Result.failed("手机号登录失败,获取openid失败");
}
if (StringUtils.isBlank(openId)) {
return Result.failed("手机号登录失败,获取openid失败");
}
User user = userDao.queryByMobile(dto.getMobile());
if (Objects.isNull(user)) {
String openId = "";
try {
WxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo(dto.getCode());
openId = result.getOpenid();
} catch (Exception e) {
logger.error("微信登录,调用官方接口失败:{}", dto.getCode(), e);
return Result.failed("手机号登录失败,获取openid失败");
}
if (StringUtils.isBlank(openId)) {
return Result.failed("手机号登录失败,获取openid失败");
}
user = new User();
user.setUsername(openId);
user.setPassword(openId);
user.setWeixinOpenid(openId);
user.setMobile(dto.getMobile());
user.setAvatar(dto.getAvatarUrl());
user.setNickname("微信用户" + StringUtil.generateRandomString(10));
user.setGender((byte) 0);
......@@ -167,6 +223,10 @@ public class UserServiceImpl implements UserService {
user.setLastLoginIp(IpUtil.client(request));
user.setShareUserId(dto.getShareUserId());
userDao.insert(user);
FavoritesRequestDto favoritesRequestDto = new FavoritesRequestDto();
favoritesRequestDto.setUserId(user.getId());
favoritesService.addDefault(favoritesRequestDto);
} else {
user.setLastLoginTime(new Date());
user.setLastLoginIp(IpUtil.client(request));
......@@ -183,6 +243,7 @@ public class UserServiceImpl implements UserService {
logger.error("手机号登录失败,生成token失败:{}", user.getId(), e);
return Result.failed("手机号登录失败,生成token失败");
}
userToken.setSessionKey(sessionKey);
Map<Object, Object> result = new HashMap<Object, Object>();
result.put("token", userToken.getToken());
......
package com.wwdz.ch.wx.service;
public interface CategoryService {
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.wx.entity.request.CategoryRequestDto;
public interface CategoryService {
Result top(CategoryRequestDto dto);
Result child(CategoryRequestDto dto);
}
package com.wwdz.ch.wx.service;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.wx.entity.request.FootPrintRequestDto;
public interface FootPrintService {
Result listAll(FootPrintRequestDto dto);
Result page(FootPrintRequestDto dto);
Result delete(FootPrintRequestDto dto);
Result add(FootPrintRequestDto dto);
}
......@@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest;
public interface UserService {
Result loginByWx(WxLoginInfo wxLoginInfo, HttpServletRequest request);
Result regCaptcha(UserRequestDto dto);
Result loginByMobile(UserRequestDto dto, HttpServletRequest request);
Result updateNickname(UserRequestDto dto);
......
package com.wwdz.ch.wx.web;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.wx.entity.request.CategoryRequestDto;
import com.wwdz.ch.wx.service.CategoryService;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/wx/category")
public class WxCategoryController {
private static final Logger logger = LoggerFactory.getLogger(WxCategoryController.class);
@Autowired
private CategoryService categoryService;
@ApiOperation(value = "分类分页")
@PostMapping(value = "/top")
public Result top(@RequestBody CategoryRequestDto dto) {
return categoryService.top(dto);
}
@ApiOperation(value = "子分类")
@PostMapping(value = "/child")
public Result child(@RequestBody CategoryRequestDto dto) {
return categoryService.child(dto);
}
}
......@@ -2,6 +2,7 @@ package com.wwdz.ch.wx.web;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.JacksonUtil;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.domain.Footprint;
......@@ -9,16 +10,16 @@ import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.service.DtsFootprintService;
import com.wwdz.ch.db.service.ItemService;
import com.wwdz.ch.wx.annotation.LoginUser;
import com.wwdz.ch.wx.entity.request.FootPrintRequestDto;
import com.wwdz.ch.wx.service.FootPrintService;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 用户访问足迹服务
......@@ -33,6 +34,8 @@ public class WxFootprintController {
private DtsFootprintService footprintService;
@Autowired
private ItemService itemService;
@Autowired
private FootPrintService footPrintService;
/**
* 删除用户足迹
......@@ -120,4 +123,30 @@ public class WxFootprintController {
return ResponseUtil.ok(result);
}
@PostMapping("/page")
public Result page(@RequestBody FootPrintRequestDto dto) {
logger.info("【请求开始】用户足迹列表查询,请求参数,userId:{}", dto.getUserId());
if (Objects.isNull(dto.getUserId())) {
return Result.failed("用户id不能为空");
}
if (Objects.isNull(dto.getPage())) {
return Result.failed("当前页不能为空");
}
if (Objects.isNull(dto.getSize())) {
return Result.failed("页面大小不能为空");
}
return footPrintService.page(dto);
}
@PostMapping("/del")
public Result delete(@RequestBody FootPrintRequestDto dto) {
logger.info("【请求开始】用户足迹删除,请求参数,ids:{}", dto.getIds());
if (CollectionUtils.isEmpty(dto.getIds())) {
return Result.failed("请选择足迹");
}
return footPrintService.delete(dto);
}
}
\ No newline at end of file
package com.wwdz.ch.wx.web;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.domain.UserAccountObsolete;
import com.wwdz.ch.db.service.DtsAccountService;
import com.wwdz.ch.db.service.DtsUserService;
import com.wwdz.ch.wx.annotation.LoginUser;
import com.wwdz.ch.wx.dao.WxLoginInfo;
import com.wwdz.ch.wx.entity.request.UserRequestDto;
import com.wwdz.ch.wx.service.UserService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
* 用户服务
......@@ -33,7 +34,7 @@ public class WxUserController {
private DtsAccountService accountService;
@Autowired
private DtsUserService userService;
private UserService userService;
/**
......@@ -84,4 +85,26 @@ public class WxUserController {
logger.info("【请求结束】获取用户推广二维码图片URL,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data);
}
@PostMapping("/loginByWx")
public Result loginByWx(@RequestBody WxLoginInfo wxLoginInfo, HttpServletRequest request) {
logger.info("【请求开始】微信登录,请求参数,wxLoginInfo:{}", JSONObject.toJSONString(wxLoginInfo));
return userService.loginByWx(wxLoginInfo, request);
}
@PostMapping("/regCaptcha")
public Object registerCaptcha(@RequestBody UserRequestDto dto) {
logger.info("【请求开始】请求验证码,请求参数,mobile:{}", dto.getMobile());
if (StringUtils.isBlank(dto.getMobile())) {
return Result.failed("手机号不能为空");
}
return userService.regCaptcha(dto);
}
@PostMapping("/loginByMobile")
public Result loginByMobile(@RequestBody UserRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】手机号登录,请求参数,wxLoginInfo:{}", JSONObject.toJSONString(dto));
return userService.loginByMobile(dto, request);
}
}
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