ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppMemberBindingDto.java
@@ -18,4 +18,7 @@ @ApiModelProperty(value = "商户id") private Long shopId; @ApiModelProperty(value = "商户名称") private String shopName; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysTag.java
@@ -39,7 +39,7 @@ @TableField("del_flag") private Integer delFlag; /** * 标签类型1.用户2.合作商 * 标签类型1.用户 2.合作商 3.建议 */ @TableField("tag_type") private Integer tagType; ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/Member.java
@@ -69,6 +69,9 @@ */ @TableField("relation_shop_id") private Long relationShopId; @TableField("relation_shop_name") private String relationShopName; /** * 真实姓名 */ @@ -138,9 +141,19 @@ @TableField("binding_flag") private Integer bindingFlag; /** * 商品类型 */ @TableField("goods_type") private String goodsType; /** * 调理问题 */ @TableField("member_nurse") private String memberNurse; @Override protected Serializable pkVal() { return this.userId; ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -195,7 +195,7 @@ public QwH5LoginVo qwH5Login(QwUserDetailDto qwUserDetail) { // 查询用户信息 R<QwH5LoginVo> userResult = remoteUserService.qwH5Login(qwUserDetail); R<QwH5LoginVo> userResult = remoteShopService.qwH5Login(qwUserDetail); if (R.FAIL == userResult.getCode()) { throw new ServiceException(userResult.getMsg()); ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java
@@ -1,8 +1,7 @@ package com.ruoyi.common.core.utils; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.*; import org.springframework.util.AntPathMatcher; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.text.StrFormatter; @@ -558,4 +557,17 @@ } return sb.toString(); } /** * 比较数组返回差值 */ public static String[] compareStringArr(String[] A, String[] B) { List<String> result = new ArrayList<>(); for (String s : A) { if (!Arrays.asList(B).contains(s)) { result.add(s); } } return result.toArray(new String[0]); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
New file @@ -0,0 +1,45 @@ package com.ruoyi.member.controller.management; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.member.domain.dto.MgtMemberPageDto; import com.ruoyi.member.domain.vo.MgtMemberPageVo; import com.ruoyi.member.service.member.MemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * @author jqs34 * @ClassName ShopController * @description: TODO * @date 2023年04月21日 * @version: 1.0 */ @Api(value = "管理台会员相关接口", tags = "管理台会员相关接口", description = "管理台会员相关接口") @RestController @RequestMapping("/mgt/member") public class MgtMemberController { @Autowired private MemberService memberService; @RequestMapping(value = "/pageMgtMember", method = RequestMethod.POST) @ApiOperation(value = "分页获取用户列表") public R<Page<MgtMemberPageVo>> pageMgtMember(@RequestBody MgtMemberPageDto mgtMemberPageDto) { Page<MgtMemberPageVo> page = new Page<>(); page.setSize(mgtMemberPageDto.getPageSize()); page.setCurrent(mgtMemberPageDto.getPageNum()); List<MgtMemberPageVo> mgtShopPageVoList = memberService.pageMgtMember(page,mgtMemberPageDto); return R.ok(page.setRecords(mgtShopPageVoList)); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java
@@ -28,8 +28,8 @@ @ApiModelProperty(value = "会员类型1.周期2.服务3.体验") private Integer memberType; @ApiModelProperty(value = "会员来源1.小程序2.推荐3.店铺创建") private Integer memberFrom; @ApiModelProperty(value = "会员来源") private String memberFrom; @ApiModelProperty(value = "跟进开始时间") private String taskStartDate; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java
New file @@ -0,0 +1,80 @@ package com.ruoyi.member.domain.dto; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import com.ruoyi.system.api.domain.dto.MgtPageDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @author jqs34 * @ClassName MgtMemerPageDto * @description: TODO * @date 2023年05月26日 * @version: 1.0 */ @Data public class MgtMemberPageDto extends MgtPageDto { @ApiModelProperty(value = "关键词") private String keyword; @ApiModelProperty(value = "所属地区") private String belongDistrict; @ApiModelProperty(value = "注册时间") private String createTime; @ApiModelProperty(value = "最近消费时间") private String lastPayTime; @ApiModelProperty(value = "是否会员0否1是") private Integer memberFlag; @ApiModelProperty(value = "客户类型") private String goodsType; @ApiModelProperty(value = "关联商户id") private Long relationShopId; @ApiModelProperty(value = "会员来源") private String memberFrom; @ApiModelProperty(value = "推荐人") private String referrer; @ApiModelProperty(value = "性别0=男,1=女") private Integer gender; @ApiModelProperty(value = "开始年龄") private Integer startAge; @ApiModelProperty(value = "截止年龄") private Integer endAge; @ApiModelProperty(value = "开始年龄",hidden = true) private String startBirthday; @ApiModelProperty(value = "截止年龄",hidden = true) private String endBirthday; @ApiModelProperty(value = "开始积分") private Integer startIntegral; @ApiModelProperty(value = "截止积分") private Integer endIntegral; @ApiModelProperty(value = "活跃度id") private Long activenessId; @ApiModelProperty(value = "开始消费次数") private Integer startPayCount; @ApiModelProperty(value = "截止消费次数") private Integer endPayCount; @ApiModelProperty(value = "用户标签") private String memberTag; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/BrowseRecord.java
@@ -32,7 +32,7 @@ * 记录id */ @TableId(value = "record_id", type = IdType.AUTO) private Integer recordId; private Long recordId; /** * 删除标记 */ @@ -42,7 +42,7 @@ * 用户id */ @TableField("user_id") private Integer userId; private Long userId; /** * 浏览类型 */ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/IntegralRecord.java
@@ -32,7 +32,7 @@ * 记录id */ @TableId(value = "record_id", type = IdType.AUTO) private Integer recordId; private Long recordId; /** * 删除标记 */ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java
New file @@ -0,0 +1,83 @@ package com.ruoyi.member.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * @author jqs34 * @ClassName MgtMemberPageVo * @description: TODO * @date 2023年05月26日 * @version: 1.0 */ @Data public class MgtMemberPageVo { @ApiModelProperty(value = "会员id") private String memberId; @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "会员编号") private String memberNo; @ApiModelProperty(value = "用户姓名") private String realName; @ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "用户手机") private String mobile; @ApiModelProperty(value = "用户性别") private String gender; @ApiModelProperty(value = "用户年龄") private Integer age; @ApiModelProperty(value = "活跃度") private String activeness; @ApiModelProperty(value = "用户标签 多个,隔开") private String memberTags; @ApiModelProperty(value = "所属地区") private String belongDistrict; @ApiModelProperty(value = "是否成为会员") private String memberFlag; @ApiModelProperty(value = "注册时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @ApiModelProperty(value = "最近消费时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date lastPayTime; @ApiModelProperty(value = "客户类型") private String goodsType; @ApiModelProperty(value = "客户类型") private String relationShopName; @ApiModelProperty(value = "积分") private Integer integral; @ApiModelProperty(value = "推荐人") private String referrer; @ApiModelProperty(value = "会员来源") private String memberFrom; @ApiModelProperty(value = "消费总金额") private BigDecimal totalPayMoney; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.member.domain.dto.MerCashMemberPageDto; import com.ruoyi.member.domain.dto.MerMemberPageDto; import com.ruoyi.member.domain.dto.MgtMemberPageDto; import com.ruoyi.member.domain.vo.MerCashMemberPageVo; import com.ruoyi.member.domain.vo.MerMemberPageVo; import com.ruoyi.member.domain.vo.MgtMemberPageVo; import com.ruoyi.system.api.domain.poji.member.Member; import org.apache.ibatis.annotations.Param; @@ -37,8 +39,10 @@ * @version 1.0 */ Member selectMemberByMobile(String mobile); /** * 通过openid获取会员 * * @param miniOpenid * @return */ @@ -46,6 +50,7 @@ /** * 商户获取绑定会员 * * @param page * @return */ @@ -53,9 +58,24 @@ /** * 分页获取收银用户列表 * * @param page * @param merCashMemberPageDto * @return */ List<MerCashMemberPageVo> pageMerCashMember(Page page, @Param("param")MerCashMemberPageDto merCashMemberPageDto); /** * 平台分页获取会员列表 * * @param page * @param merMemberPageDto * @return */ List<MgtMemberPageVo> pageMgtMember(Page page, @Param("param") MgtMemberPageDto merMemberPageDto); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -4,7 +4,9 @@ import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -21,6 +23,7 @@ import com.ruoyi.member.service.member.MemberNurseService; import com.ruoyi.member.service.member.MemberService; import com.ruoyi.member.service.member.MemberTotalService; import com.ruoyi.member.util.CodeFactoryUtil; import com.ruoyi.member.util.HttpUtils; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; @@ -209,8 +212,9 @@ //获取用户为空则新建 if(member == null){ //创建新用户 String memberId = IdUtils.simpleUUID(); sysUser = new SysUser(); sysUser.setUserName(mobile+"-3"); sysUser.setUserName(memberId); sysUser.setUserType("03"); sysUser.setNickName("鸿瑞堂用户"); sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); @@ -218,11 +222,13 @@ sysUser.setPassword(SecurityUtils.encryptPassword(password)); sysUser = sysUserService.registerUser(sysUser).getData(); member = new Member(); String memberId = IdUtils.simpleUUID(); String memberNo = createMemberNo(); member.setMemberNo(memberNo); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); member.setNickName("鸿瑞堂用户"); member.setRealName("鸿瑞堂用户"); member.setCustomerSource("小程序"); member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); member.setMemberId(memberId); member.setBindingFlag(0); @@ -387,6 +393,7 @@ Member member = this.getByUserId(appMemberBindingDto.getUserId()); member.setBindingFlag(appMemberBindingDto.getBindingFlag()); member.setRelationShopId(appMemberBindingDto.getShopId()); member.setRelationShopName(appMemberBindingDto.getShopName()); this.saveOrUpdate(member); } @@ -474,8 +481,9 @@ } SysUser sysUser = sysUserService.getSysUserByMobile(phonenumber).getData(); if(sysUser==null){ String memberId = IdUtils.simpleUUID(); sysUser = new SysUser(); sysUser.setUserName(phonenumber+"-3"); sysUser.setUserName(memberId); sysUser.setUserType("03"); sysUser.setNickName(merMemberAddDto.getNickName()); sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); @@ -483,8 +491,9 @@ sysUser.setPassword(SecurityUtils.encryptPassword(password)); log.debug("sysUser"+sysUser.toString()); sysUser = sysUserService.registerUser(sysUser).getData(); String memberId = IdUtils.simpleUUID(); Member member = new Member(); String memberNo = createMemberNo(); member.setMemberNo(memberNo); member.setMemberId(memberId); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); @@ -500,6 +509,7 @@ member.setMiniOpenid(null); member.setBindingFlag(1); member.setRelationShopId(merMemberAddDto.getShopId()); member.setCustomerSource("商户添加"); member.setCreateTime(new Date()); log.info("member-----------------"+member.toString()); this.saveOrUpdate(member); @@ -589,10 +599,13 @@ */ @Override public void createNewMember(Member member){ String memberNo = createMemberNo(); member.setMemberNo(memberNo); member.setDelFlag(0); member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); member.setBindingFlag(0); member.setCreateTime(new Date()); member.setCustomerSource("商户订单添加"); this.saveOrUpdate(member); initMemberTotal(member.getMemberId()); } @@ -622,4 +635,28 @@ memberTotal.setTotalGoodsOrder(0); memberTotalService.saveOrUpdate(memberTotal); } /** * 生成会员编号 * @return */ private String createMemberNo(){ int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>().eq(Member::getDelFlag, 0)); String memberNo = CodeFactoryUtil.getMemberNo(Long.valueOf(memberTotal+1)); return memberNo; } /** * 平台分页获取会员列表 * @param page * @param merMemberPageDto * @return */ @Override public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){ List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); return memberPageVoList; } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -140,4 +140,12 @@ * @param member */ void createNewMember(Member member); /** * 平台分页获取会员列表 * @param page * @param merMemberPageDto * @return */ List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java
@@ -41,7 +41,11 @@ * 用户id和随机数总长度 */ private static final int MAX_LENGTH = 4; private static final int SHOP_LENGTH = 4; private static final int MEMBER_LENGTH = 6; private static final int ORDER_LENGTH = 4; /** * 更具id进行加密+加随机数组成固定长度编码 @@ -61,7 +65,7 @@ */ public static String getShopNo(Long shopId) { String prefix = SHOP_PREFIX; return toFillZeroCode(prefix, MAX_LENGTH, shopId); return toFillZeroCode(prefix, SHOP_LENGTH, shopId); } /** @@ -71,7 +75,7 @@ */ public static String getMemberNo(Long userId) { String prefix = APP_USER_PREFIX; return toFillZeroCode(prefix, MAX_LENGTH, userId); return toFillZeroCode(prefix, MEMBER_LENGTH, userId); } /** @@ -84,7 +88,7 @@ String prefix = DateUtils.parseDateToStr( "yyyyMMddHHmmss",new Date()); prefix = ORDER_PREFIX + prefix; return toFillZeroCode(prefix, MAX_LENGTH, userId); return toFillZeroCode(prefix, ORDER_LENGTH, userId); } ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -26,6 +26,7 @@ <result property="avatar" column="avatar" /> <result property="bindingFlag" column="binding_flag" /> <result property="goodsType" column="goods_type" /> <result property="relationShopName" column="relation_shop_name" /> </resultMap> <sql id="selectMemberVo"> @@ -57,7 +58,7 @@ where user_id = #{userId} </select> <select id="selectMemberByUserId" parameterType="Long" resultMap="MemberResult"> <select id="selectMemberByMobile" parameterType="Long" resultMap="MemberResult"> <include refid="selectMemberVo"/> where mobile = #{mobile} </select> @@ -189,4 +190,34 @@ AND (tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.mobile LIKE CONCAT('%',#{param.keyword},'%')) </if> </select> <select id="pageMgtMember" resultType="com.ruoyi.member.domain.vo.MgtMemberPageVo"> SELECT tm.user_id userId, tm.relation_shop_id relationShopId, tm.member_no memberNo, tm.real_name realName, tm.nick_name nickName, tm.mobile mobile, CASE tm.gender WHEN 0 THEN "男" WHEN 1 THEN "女" ELSE "未知" END gender, (YEAR(CURRENT_DATE) - YEAR(tm.birthday)) - (RIGHT(CURRENT_DATE, 5) < RIGHT(tm.birthday, 5)) age, tm.user_tags memberTags, tm.belong_district belongDistrict, CASE tm.binding_flag WHEN 0 THEN "否" WHEN 1 THEN "是" ELSE "否" END memberFlag, tm.create_time createTime, tmt.last_pay_time lastPayTime, tm.goods_type goodsType, tm.relation_shop_name relationShopName, tmt.total_integral integral, tm.referrer referrer, tm.customer_source memberFrom, tmt.total_pay_money totalPayMoney FROM t_member tm INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id WHERE del_flag = 0 <if test="param.keyword != null and param.keyword != ''"> AND (tm.member_no LIKE CONCAT('%',#{param.keyword},'%') OR tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.nick_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(tm.member_nurse,#{param.keyword})) </if> </select> </mapper> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -696,6 +696,8 @@ BigDecimal goodsPrice; BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; Long shopId = merNewOrderDto.getShopId(); Shop shop = remoteShopService.getShop(shopId).getData(); List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); Map<Long,AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); if(null != appMemberCouponVoList){ @@ -726,7 +728,7 @@ //商户定制价格 AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); appShopGoodsGetDto.setShopId(merNewOrderDto.getShopId()); appShopGoodsGetDto.setShopId(shopId); ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); if(shopGoods!=null){ goodsPrice = shopGoods.getSalesPrice(); @@ -792,7 +794,7 @@ order.setOrderStatus(3); order.setOrderNo(orderNo); order.setOrderFrom(3); order.setShopId(merNewOrderDto.getShopId()); order.setShopId(shopId); order.setUserId(userId); order.setOrderMoney(orderGoodsMoney); order.setCouponMoney(couponDiscount); @@ -847,7 +849,8 @@ if(member!=null&&member.getBindingFlag()!=1){ //绑定商户 AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); appMemberBindingDto.setShopId(merNewOrderDto.getShopId()); appMemberBindingDto.setShopId(shopId); appMemberBindingDto.setShopName(shop.getShopName()); appMemberBindingDto.setUserId(userId); appMemberBindingDto.setBindingFlag(1); remoteMemberService.updateMemberBinding(appMemberBindingDto); ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -38,9 +38,9 @@ @Autowired private ShopRelTagService shopRelTagService; @RequestMapping(value = "/pageShop", method = RequestMethod.POST) @RequestMapping(value = "/pageMgtShop", method = RequestMethod.POST) @ApiOperation(value = "分页获取商户列表") public R<Page<MgtShopPageVo>> pageShop(@RequestBody MgtShopPageDto mgtShopPageDto) { public R<Page<MgtShopPageVo>> pageMgtShop(@RequestBody MgtShopPageDto mgtShopPageDto) { Page<MgtShopPageVo> page = new Page<>(); page.setSize(mgtShopPageDto.getPageSize()); page.setCurrent(mgtShopPageDto.getPageNum()); @@ -48,39 +48,39 @@ return R.ok(page.setRecords(mgtShopPageVoList)); } @RequestMapping(value = "/createShop", method = RequestMethod.POST) @RequestMapping(value = "/createMgtShop", method = RequestMethod.POST) @ApiOperation(value = "创建商户") public R createShop(@RequestBody MgtEditShopDto mgtEditShopDto) { public R createMgtShop(@RequestBody MgtEditShopDto mgtEditShopDto) { Long userId = SecurityUtils.getUserId(); mgtEditShopDto.setUserId(userId); shopService.createShop(mgtEditShopDto); return R.ok(); } @RequestMapping(value = "/getShopInfo", method = RequestMethod.POST) @RequestMapping(value = "/getMgtShopInfo", method = RequestMethod.POST) @ApiOperation(value = "获取商户详情") public R<MgtShopInfoVo> getShopInfo(@RequestBody MgtBaseGetDto mgtBaseGetDto) { public R<MgtShopInfoVo> getMgtShopInfo(@RequestBody MgtBaseGetDto mgtBaseGetDto) { MgtShopInfoVo mgtShopInfoVo = shopService.getMgtShopInfo(Long.valueOf(mgtBaseGetDto.getId())); return R.ok(mgtShopInfoVo); } @RequestMapping(value = "/getShopTag", method = RequestMethod.POST) @RequestMapping(value = "/getMgtShopTag", method = RequestMethod.POST) @ApiOperation(value = "获取商户标签") public R<List<MgtShopTagVo>> getShopTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) { public R<List<MgtShopTagVo>> getMgtShopTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) { List<MgtShopTagVo> mgtShopInfoVoList = shopRelTagService.listShopTagVo(Long.valueOf(mgtBaseGetDto.getId())); return R.ok(mgtShopInfoVoList); } @RequestMapping(value = "/editShopTag", method = RequestMethod.POST) @RequestMapping(value = "/editMgtShopTag", method = RequestMethod.POST) @ApiOperation(value = "修改商户标签") public R editShopTag(@RequestBody MgtEditShopTagDto mgtEditShopTagDto) { public R editMgtShopTag(@RequestBody MgtEditShopTagDto mgtEditShopTagDto) { shopService.editShopTag(mgtEditShopTagDto); return R.ok(); } @RequestMapping(value = "/changeCooperationTime", method = RequestMethod.POST) @RequestMapping(value = "/changeMgtCooperationTime", method = RequestMethod.POST) @ApiOperation(value = "修改合作时间") public R changeCooperationTime(@RequestBody MgtChangeCoopDto mgtChangeCoopDto) { public R changeMgtCooperationTime(@RequestBody MgtChangeCoopDto mgtChangeCoopDto) { Long userId = SecurityUtils.getUserId(); mgtChangeCoopDto.setUserId(userId); shopService.changeCooperationTime(mgtChangeCoopDto); ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopFundRecord.java
@@ -32,7 +32,7 @@ * 记录id */ @TableId(value = "record_id", type = IdType.AUTO) private Integer recordId; private Long recordId; /** * 删除标记 */ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopProportion.java
@@ -32,7 +32,7 @@ * 分成id */ @TableId("proportion_id") private Integer proportionId; private Long proportionId; /** * 删除标记 */ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.shop.domain.pojo.shop.ShopStaff; import org.apache.ibatis.annotations.Param; /** * <p> @@ -13,4 +14,9 @@ */ public interface ShopStaffMapper extends BaseMapper<ShopStaff> { /** * 清空商户员工关联 * @param shopId */ void clearShopStaffRelation(@Param("shopId") Long shopId); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopRelTagServiceImpl.java
@@ -2,15 +2,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.shop.domain.pojo.shop.ShopRelTag; import com.ruoyi.shop.domain.vo.MgtShopTagVo; import com.ruoyi.shop.mapper.shop.ShopRelTagMapper; import com.ruoyi.shop.service.shop.ShopRelTagService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.api.domain.poji.config.SysTag; import com.ruoyi.system.api.service.RemoteConfigService; import org.apache.commons.lang3.ArrayUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -24,6 +30,9 @@ public class ShopRelTagServiceImpl extends ServiceImpl<ShopRelTagMapper, ShopRelTag> implements ShopRelTagService { @Resource private ShopRelTagMapper shopRelTagMapper; @Resource private RemoteConfigService remoteConfigService; /** * 通过商户id获取标签 @@ -53,7 +62,29 @@ */ @Override public List<MgtShopTagVo> listShopTagVo(Long shopId){ return shopRelTagMapper.listShopTagVo(shopId); List<ShopRelTag> shopRelTagList = listShopRelTagByShopId(shopId); Long[] tagIdArr =null; if(shopRelTagList!=null && !shopRelTagList.isEmpty()){ tagIdArr = shopRelTagList.stream() .map(ShopRelTag::getTagId) .toArray(Long[]::new); } List<SysTag> sysTagsList = remoteConfigService.listSysTag(2).getData(); //生成返回结果 List<MgtShopTagVo> mgtShopTagVoList = new ArrayList<>(); MgtShopTagVo mgtShopTagVo; for(SysTag sysTag : sysTagsList){ mgtShopTagVo = new MgtShopTagVo(); mgtShopTagVo.setTagId(sysTag.getTagId()); mgtShopTagVo.setTagName(sysTag.getTagName()); //判断是否选择 if(tagIdArr!=null && tagIdArr.length>0 && ArrayUtils.contains(tagIdArr, sysTag.getTagId())){ mgtShopTagVo.setSelectFlag(1); }else{ mgtShopTagVo.setSelectFlag(0); } } return mgtShopTagVoList; } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -125,6 +125,9 @@ shopFileService.deleteByShopId(shop.getShopId()); shopRelTagService.deleteByShopId(shop.getShopId()); shopRelUserService.deleteByShopId(shop.getShopId()); //清空归属 shopRelUserService.deleteByShopId(shop.getShopId()); shopStaffService.clearShopStaffRelation(shop.getShopId()); }else{ shop.setShopStatus(2); shop.setCreateTime(new Date()); @@ -158,6 +161,9 @@ shop.setShopTags(shopTagSj.toString()); this.saveOrUpdate(shop); } //商户归属员工 SysUser belongSysUser = sysUserService.getSysUser(shop.getBelongUserId()).getData(); handleShopStaff(shop.getShopId(),belongSysUser); //商户关联人员 String relUserIds = MGTEditShopDto.getRelUserIds(); if(StringUtils.isNotBlank(relUserIds)){ @@ -176,6 +182,7 @@ shopRelUser.setUserMobile(sysUser.getPhonenumber()); shopRelUser.setUserDeptId(sysUser.getDeptId()); shopRelUserService.save(shopRelUser); handleShopStaff(shop.getShopId(),sysUser); } } //商户封面 @@ -350,6 +357,7 @@ if(member!=null&&member.getBindingFlag()!=1){ AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); appMemberBindingDto.setShopId(shop.getShopId()); appMemberBindingDto.setShopName(shop.getShopName()); appMemberBindingDto.setUserId(member.getUserId()); appMemberBindingDto.setBindingFlag(0); remoteMemberService.updateMemberBinding(appMemberBindingDto); @@ -375,6 +383,11 @@ return shop; } /** * 获取商户端 * @param userId * @return */ @Override public MerHomeShopTotalVo getMerHomeTotal(Long userId){ MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); @@ -390,7 +403,7 @@ } /** * * 获取商户绑定代理商 * @param page * @param merAgencyPageDto * @return @@ -401,6 +414,11 @@ return merAgencyPageVoList; } /** * 处理商户员工 * @param shopId * @param sysUser */ private void handleShopStaff(Long shopId,SysUser sysUser){ ShopStaff shopStaff = shopStaffService.getByUserId(sysUser.getUserId()); if(shopStaff!=null){ @@ -419,4 +437,6 @@ } shopStaffService.saveOrUpdate(shopStaff); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java
@@ -35,6 +35,9 @@ @Resource private ShopRelUserService shopRelUserService; @Resource private ShopStaffMapper shopStaffMapper; /** * * @param userId @@ -83,7 +86,7 @@ } /** * * 编辑商户员工信息 * @param merEditUserDto */ @Override @@ -108,4 +111,13 @@ } this.saveOrUpdate(shopStaff); } /** * 清空商户员工关联 * @param shopId */ @Override public void clearShopStaffRelation(Long shopId){ shopStaffMapper.clearShopStaffRelation(shopId); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopStaffService.java
@@ -37,8 +37,14 @@ MerStaffInfoVo getShopStaffInfo(Long userId); /** * * 编辑商户员工信息 * @param merEditUserDto */ void editShopStaffInfo(MerEditUserDto merEditUserDto); /** * 清空商户员工关联 * @param shopId */ void clearShopStaffRelation(Long shopId); } ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml
@@ -3,4 +3,9 @@ <mapper namespace="com.ruoyi.shop.mapper.shop.ShopStaffMapper"> <update id="clearShopStaffRelation"> UPDATE t_shop_staff SET del_flag = 1 WHERE del_flag = 0 AND shop_id = #{shopId} </update> </mapper> ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Activeness.java
@@ -1,6 +1,8 @@ package com.ruoyi.system.domain.pojo.config; 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; @@ -30,8 +32,8 @@ /** * 活跃度id */ @TableId("activeness_id") private Integer activenessId; @TableId(value = "activeness_id", type = IdType.AUTO) private Long activenessId; /** * 删除标记 */ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Article.java
@@ -32,7 +32,7 @@ * 文章id */ @TableId(value = "article_id", type = IdType.AUTO) private Integer articleId; private Long articleId; /** * 删除标记 */ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Cooperation.java
@@ -1,6 +1,8 @@ package com.ruoyi.system.domain.pojo.config; 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; @@ -30,8 +32,8 @@ /** * 合作id */ @TableId("cooper_id") private Integer cooperId; @TableId(value ="cooper_id", type = IdType.AUTO) private Long cooperId; /** * 删除标记 */