ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppSuggestPageDto.java
New file @@ -0,0 +1,18 @@ package com.ruoyi.system.api.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author jqs34 * @ClassName AppSuggestPageDto * @description: TODO * @date 2023年05月12日 * @version: 1.0 */ @Data public class AppSuggestPageDto extends AppPageDto{ @ApiModelProperty(value = "类型1.平台2.门店") private Integer suggestType; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppUserSuggestDto.java
New file @@ -0,0 +1,18 @@ package com.ruoyi.system.api.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author jqs34 * @ClassName AppUserSuggestDto * @description: TODO * @date 2023年05月12日 * @version: 1.0 */ @Data public class AppUserSuggestDto extends AppBaseDto{ @ApiModelProperty(value = "建议内容") private String suggestContent; } ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -58,12 +58,12 @@ log.info("requestToken---"+token); if (StringUtils.isEmpty(token)) { return unauthorizedResponse(exchange, "令牌不能为空"); return unauthorizedResponse(exchange, "需要先登录才能使用该功能"); } Claims claims = JwtUtils.parseToken(token); if (claims == null) { return unauthorizedResponse(exchange, "令牌已过期或验证不正确!"); return unauthorizedResponse(exchange, "需要先登录才能使用该功能!"); } String userkey = JwtUtils.getUserKey(claims); boolean islogin = redisService.hasKey(getTokenKey(userkey)); @@ -75,7 +75,7 @@ String username = JwtUtils.getUserName(claims); if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { return unauthorizedResponse(exchange, "令牌验证失败"); return unauthorizedResponse(exchange, "登录验证失败"); } // 设置用户信息到请求 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
@@ -1,12 +1,19 @@ package com.ruoyi.member.controller.miniapp; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.member.domain.dto.AppUserAuthorizeDto; import com.ruoyi.member.domain.dto.MerCashMemberPageDto; import com.ruoyi.member.domain.vo.AppSuggestPageVo; import com.ruoyi.member.domain.vo.AppUserAuthorizeVo; import com.ruoyi.member.domain.vo.AppUserInfoVo; import com.ruoyi.member.domain.vo.MerCashMemberPageVo; import com.ruoyi.member.service.member.MemberService; import com.ruoyi.member.service.member.MemberSuggestService; import com.ruoyi.system.api.domain.dto.AppEditUserDto; import com.ruoyi.system.api.domain.dto.AppSuggestPageDto; import com.ruoyi.system.api.domain.dto.AppUserSuggestDto; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.sys.SysUser; import io.swagger.annotations.Api; @@ -16,6 +23,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @author jqs34 @@ -31,6 +40,9 @@ @Autowired private MemberService memberService; @Autowired private MemberSuggestService memberSuggestService; @RequestMapping(value = "/getAppUserAuthorize", method = RequestMethod.POST) @@ -59,4 +71,24 @@ return R.ok(); } @RequestMapping(value = "/pageAppUserSuggest", method = RequestMethod.POST) @ApiOperation(value = "分页获取用户建议列表") public R<Page<AppSuggestPageVo>> pageAppUserSuggest(@RequestBody AppSuggestPageDto appSuggestPageDto) { Long userId = SecurityUtils.getUserId(); appSuggestPageDto.setUserId(userId); Page<AppSuggestPageVo> page = new Page<>(); page.setSize(appSuggestPageDto.getPageSize()); page.setCurrent(appSuggestPageDto.getPageNum()); List<AppSuggestPageVo> appSuggestPageVoList = memberSuggestService.pageAppUserSuggest(page,appSuggestPageDto); return R.ok(page.setRecords(appSuggestPageVoList)); } @RequestMapping(value = "/userSuggest", method = RequestMethod.POST) @ApiOperation(value = "发起建议") public R userSuggest(@RequestBody AppUserSuggestDto appUserSuggestDto) { Long userId = SecurityUtils.getUserId(); appUserSuggestDto.setUserId(userId); memberSuggestService.userSuggest(appUserSuggestDto); return R.ok(); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java
New file @@ -0,0 +1,90 @@ package com.ruoyi.member.domain.pojo.member; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import com.baomidou.mybatisplus.annotations.Version; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * * </p> * * @author jqs * @since 2023-05-12 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_member_suggest") public class MemberSuggest extends Model<MemberSuggest> { private static final long serialVersionUID = 1L; /** * 建议id */ @TableId(value = "suggest_id", type = IdType.AUTO) private Long suggestId; /** * 删除标记 */ @TableField("del_flag") private Integer delFlag; /** * 建议内容 */ @TableField("suggest_content") private String suggestContent; /** * 创建时间 */ @TableField("create_time") private Date createTime; /** * 创建人id */ @TableField("create_user_id") private Long createUserId; /** * 回复内容 */ @TableField("replay_content") private String replayContent; /** * 回复用户id */ @TableField("replay_user_id") private Long replayUserId; /** * 回复时间 */ @TableField("replay_time") private Date replayTime; /** * 商户id */ @TableField("shop_id") private Integer shopId; /** * 建议类型1.平台2.门店 */ @TableField("suggest_type") private Integer suggestType; @Override protected Serializable pkVal() { return this.suggestId; } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppSuggestPageVo.java
New file @@ -0,0 +1,32 @@ package com.ruoyi.member.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @author jqs34 * @ClassName AppSuggestPageVo * @description: TODO * @date 2023年05月12日 * @version: 1.0 */ @Data public class AppSuggestPageVo { @ApiModelProperty(value = "建议内容") private String suggestContent; /** * 创建时间 */ @ApiModelProperty(value = "创建时间") private Date createTime; /** * 回复内容 */ @ApiModelProperty(value = "回复内容") private String replayContent; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppUserInfoVo.java
@@ -26,7 +26,10 @@ @ApiModelProperty("会员编号") private String memberNo; @ApiModelProperty(value = "用户名称") @ApiModelProperty(value = "用户姓名") private String realName; @ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "手机号码") ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberSuggestMapper.java
New file @@ -0,0 +1,30 @@ package com.ruoyi.member.mapper.member; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.member.domain.pojo.member.MemberSuggest; import com.ruoyi.member.domain.vo.AppSuggestPageVo; import com.ruoyi.system.api.domain.dto.AppSuggestPageDto; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> * Mapper 接口 * </p> * * @author jqs * @since 2023-05-12 */ public interface MemberSuggestMapper extends BaseMapper<MemberSuggest> { /** * * @param page * @param appSuggestPageDto * @return */ List<AppSuggestPageVo> pageAppUserSuggest(Page page, @Param("param") AppSuggestPageDto appSuggestPageDto); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -249,6 +249,7 @@ sysUserService.updateUserMobile(sysUser); member.setNickName(sysUser.getNickName()); } member.setMobile(mobile); this.saveOrUpdate(member); appUserAuthorizeVo.setMobile(mobile); appUserAuthorizeVo.setNickName(member.getNickName()); @@ -287,20 +288,20 @@ @Override public AppUserInfoVo getAppUserInfo(Long userId){ AppUserInfoVo appUserInfoVo = new AppUserInfoVo(); SysUser sysUser = sysUserService.getSysUser(userId).getData(); Member member = this.getByUserId(userId); appUserInfoVo.setUserId(userId); appUserInfoVo.setRelationShopId(member.getRelationShopId()); appUserInfoVo.setMemberNo(member.getMemberNo()); appUserInfoVo.setNickName(sysUser.getNickName()); appUserInfoVo.setPhonenumber(sysUser.getPhonenumber()); appUserInfoVo.setNickName(member.getNickName()); appUserInfoVo.setRealName(member.getRealName()); appUserInfoVo.setPhonenumber(member.getMobile()); if(member.getRelationShopId()!=null){ Shop shop = shopService.getShop(member.getRelationShopId()).getData(); appUserInfoVo.setShopName(shop.getShopName()); } appUserInfoVo.setBirthday(member.getBirthday()); appUserInfoVo.setGender(member.getGender()); appUserInfoVo.setAvatar(sysUser.getAvatar()); appUserInfoVo.setAvatar(member.getAvatar()); AppOrderTotalVo appOrderTotalVo = orderService.getAppOrderTotal(userId).getData(); appUserInfoVo.setNoPayCount(appOrderTotalVo.getNoPayCount()); appUserInfoVo.setNoUseCount(appOrderTotalVo.getNoUseCount()); ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java
New file @@ -0,0 +1,56 @@ package com.ruoyi.member.service.impl.member; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.member.domain.pojo.member.MemberSuggest; import com.ruoyi.member.domain.vo.AppSuggestPageVo; import com.ruoyi.member.mapper.member.MemberSuggestMapper; import com.ruoyi.member.service.member.MemberSuggestService; import com.ruoyi.system.api.domain.dto.AppSuggestPageDto; import com.ruoyi.system.api.domain.dto.AppUserSuggestDto; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * <p> * 服务实现类 * </p> * * @author jqs * @since 2023-05-12 */ @Service public class MemberSuggestServiceImpl extends ServiceImpl<MemberSuggestMapper, MemberSuggest> implements MemberSuggestService { @Resource private MemberSuggestMapper memberSuggestMapper; /** * * @param page * @param appSuggestPageDto * @return */ @Override public List<AppSuggestPageVo> pageAppUserSuggest(Page page, AppSuggestPageDto appSuggestPageDto){ return memberSuggestMapper.pageAppUserSuggest(page, appSuggestPageDto); } /** * * @param appUserSuggestDto */ @Override public void userSuggest(AppUserSuggestDto appUserSuggestDto){ MemberSuggest memberSuggest = new MemberSuggest(); memberSuggest.setDelFlag(0); memberSuggest.setCreateUserId(appUserSuggestDto.getUserId()); memberSuggest.setSuggestContent(appUserSuggestDto.getSuggestContent()); memberSuggest.setCreateTime(new Date()); this.saveOrUpdate(memberSuggest); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java
New file @@ -0,0 +1,36 @@ package com.ruoyi.member.service.member; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.member.domain.pojo.member.MemberSuggest; import com.ruoyi.member.domain.vo.AppSuggestPageVo; import com.ruoyi.system.api.domain.dto.AppSuggestPageDto; import com.ruoyi.system.api.domain.dto.AppUserSuggestDto; import java.util.List; /** * <p> * 服务类 * </p> * * @author jqs * @since 2023-05-12 */ public interface MemberSuggestService extends IService<MemberSuggest> { /** * * @param page * @param appSuggestPageDto * @return */ List<AppSuggestPageVo> pageAppUserSuggest(Page page, AppSuggestPageDto appSuggestPageDto); /** * * @param appUserSuggestDto */ void userSuggest(AppUserSuggestDto appUserSuggestDto); } ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml
New file @@ -0,0 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.member.mapper.member.MemberSuggestMapper"> <select id="pageAppUserSuggest" resultType="com.ruoyi.member.domain.vo.AppSuggestPageVo"> SELECT suggest_content suggestContent, replay_content replayContent, create_time createTime FROM t_member_suggest WHERE del_flag = 0 AND create_user_id = #{param.userId} AND suggest_type = #{param.suggestType} </select> </mapper> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppGoodsController.java
@@ -53,6 +53,8 @@ Member member = memberService.getMember(userId).getData(); if(member!=null&&member.getRelationShopId()!=null){ appGoodsInfoGetDto.setShopId(member.getRelationShopId()); }else{ appGoodsInfoGetDto.setShopId(1L); } } AppGoodsInfoVo appGoodsInfoVo = goodsService.getGoodsInfo(appGoodsInfoGetDto); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppHomeController.java
@@ -54,6 +54,9 @@ shopId = member.getRelationShopId(); } } if(shopId==null){ shopId = 1L; } Page<AppSimpleGoodsVo> page = new Page<>(); page.setSize(appPageDto.getPageSize()); page.setCurrent(appPageDto.getPageNum()); @@ -71,6 +74,8 @@ Member member = memberService.getMember(userId).getData(); if(member!=null&&member.getRelationShopId()!=null){ appShopGoodsPageDto.setShopId(member.getRelationShopId()); }else{ appShopGoodsPageDto.setShopId(1L); } } Page<AppSimpleGoodsVo> page = new Page<>(); @@ -88,6 +93,8 @@ Member member = memberService.getMember(userId).getData(); if(member!=null&&member.getRelationShopId()!=null){ appSearchGoodsPageDto.setShopId(member.getRelationShopId()); }else{ appSearchGoodsPageDto.setShopId(1L); } } Page<AppSimpleGoodsVo> page = new Page<>(); @@ -105,6 +112,8 @@ Member member = memberService.getMember(userId).getData(); if(member!=null&&member.getRelationShopId()!=null){ appSearchGoodsPageDto.setShopId(member.getRelationShopId()); }else{ appSearchGoodsPageDto.setShopId(1L); } } Page<AppSimpleActivityGoodsVo> page = new Page<>(); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerNewOrderDto.java
@@ -20,8 +20,14 @@ @ApiModelProperty(value = "购买用户id") private Long buyUserId; @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "手机号") private String mobile; @ApiModelProperty(value = "购买列表") List<AppBuyGoodsDto> appBuyGoodsDtoList; private List<AppBuyGoodsDto> appBuyGoodsDtoList; @ApiModelProperty(value = "支付金额") private BigDecimal payMoney; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
@@ -6,11 +6,13 @@ import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.ConsumerGoods; import com.ruoyi.order.domain.pojo.order.UserServiceRecord; import com.ruoyi.order.domain.vo.AppConsumerPageVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsVo; import com.ruoyi.order.mapper.order.ConsumerGoodsMapper; import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.order.service.order.UserServiceRecordService; import com.ruoyi.system.api.constant.AppErrorConstant; import org.springframework.stereotype.Service; @@ -32,6 +34,8 @@ @Resource private ConsumerGoodsMapper consumerGoodsMapper; @Resource private UserServiceRecordService userServiceRecordService; /** * 获取用户服务 * @param page @@ -91,6 +95,11 @@ Integer usedNum; Integer useNum; Integer surpNum; Long shopId = null; Long userId = null; String consumerGoodsNames = ""; String consumerGoodsIds = ""; Integer serviceType = 1; for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId()); serviceNum = consumerGoods.getServiceNum(); @@ -107,7 +116,21 @@ consumerGoods.setCompleteTime(new Date()); } this.saveOrUpdate(consumerGoods); shopId = consumerGoods.getShopId(); userId= consumerGoods.getUserId(); serviceType = consumerGoods.getGoodsType(); consumerGoodsIds = consumerGoodsIds + consumerGoods.getConsumerGoodsId(); consumerGoodsNames = consumerGoodsNames + consumerGoods.getGoodsName(); } UserServiceRecord userServiceRecord = new UserServiceRecord(); userServiceRecord.setCreateTime(new Date()); userServiceRecord.setServiceType(serviceType); userServiceRecord.setDelFlag(0); userServiceRecord.setShopId(shopId); userServiceRecord.setUserId(userId); userServiceRecord.setConsumerGoodsIds(consumerGoodsIds); userServiceRecord.setConsumerGoodsNames(consumerGoodsNames); userServiceRecordService.saveOrUpdate(userServiceRecord); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -8,6 +8,7 @@ import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.goods.Goods; import com.ruoyi.order.domain.pojo.goods.GoodsFile; @@ -614,6 +615,26 @@ @Override public void createNewOrder(MerNewOrderDto merNewOrderDto){ Long userId = merNewOrderDto.getBuyUserId(); if(userId==null){ String name = merNewOrderDto.getName(); String mobile = merNewOrderDto.getMobile(); SysUser sysUser = remoteUserService.getSysUserBYmobile(mobile).getData(); if(sysUser==null){ //创建新用户 String memberId = IdUtils.simpleUUID(); sysUser = new SysUser(); sysUser.setUserName(name); sysUser.setUserType("03"); sysUser.setNickName(name); sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); String password = "hongruitang"; sysUser.setPassword(SecurityUtils.encryptPassword(password)); sysUser = remoteUserService.registerUser(sysUser).getData(); userId = sysUser.getUserId(); }else{ userId = sysUser.getUserId(); } } //创建订单 List<AppBuyGoodsDto> appBuyGoodsDtoList = merNewOrderDto.getAppBuyGoodsDtoList(); String goodsId; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java
@@ -42,9 +42,10 @@ @ApiOperation(value = "获取最近商户") public R<AppNearbyShopVo> getNearbyShop(@RequestBody AppNearbyShopDto appNearbyShopDto) { Long userId = SecurityUtils.getUserId(); log.info("userId"+userId); Member member = memberService.getMember(userId).getData(); log.info("member" + member); Member member = null; if(userId!=null){ member = memberService.getMember(userId).getData(); } appNearbyShopDto.setUserId(userId); AppNearbyShopVo appNearbyShopVo = shopService.getNearbyShop(appNearbyShopDto,member); return R.ok(appNearbyShopVo); ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -334,15 +334,14 @@ public AppNearbyShopVo getNearbyShop(AppNearbyShopDto appNearbyShopDto,Member member){ AppNearbyShopVo appNearbyShopVo = new AppNearbyShopVo(); Shop shop = null; if(member.getRelationShopId()!=null){ //获取附近商户 AppNearShopVo appNearShopVo = shopMapper.getNearbyShop(appNearbyShopDto); shop = this.getById(appNearShopVo.getShopId()); if(member!=null&&member.getRelationShopId()!=null){ //获取绑定商户 shop = this.getById(member.getRelationShopId()); }else{ //获取附近商户 AppNearShopVo appNearShopVo = shopMapper.getNearbyShop(appNearbyShopDto); shop = this.getById(appNearShopVo.getShopId()); } if(member.getBindingFlag()!=1){ if(member!=null&&member.getBindingFlag()!=1){ AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); appMemberBindingDto.setShopId(shop.getShopId()); appMemberBindingDto.setUserId(member.getUserId());