package com.ruoyi.shop.controller.console; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.shop.domain.pojo.shop.*; import com.ruoyi.shop.service.shop.*; import com.ruoyi.shop.service.task.MemberTaskService; import com.ruoyi.shop.service.task.ShopTaskService; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.vo.ShopProportionVo; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.model.QwH5LoginVo; import com.ruoyi.system.api.model.QwUserDetailDto; import com.ruoyi.system.api.service.RemoteUserService; 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; import javax.annotation.Resource; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; /** * @author jqs34 * @ClassName ShopController * @description: TODO * @date 2023年05月03日 * @version: 1.0 */ @RestController @RequestMapping("/shop") public class ShopController { @Resource private ShopService shopService; @Resource private ShopRelUserService shopRelUserService; @Resource private ShopStaffService shopStaffService; @Resource private RemoteUserService remoteUserService; @Resource private ShopSuggestService shopSuggestService; @Resource private ShopTaskService shopTaskService; @Resource private ShopTotalService shopTotalService; @Resource private MemberTaskService memberTaskService; @Resource private ShopAuthenticationService shopAuthenticationService; @Resource private ShopProportionService shopProportionService; @Resource private RedisService redisService; @Autowired private ShopAuthenticationHftxService shopAuthenticationHftxService; @PostMapping("/getShopIdsByUserIds") public R> getShopIdsByUserIds(@RequestBody List userIds) { // 店铺ids List list = shopService.list(new QueryWrapper() .in("belong_user_id", userIds) .eq("del_flag", 0)) .stream().map(Shop::getShopId).collect(Collectors.toList()); return R.ok(list); } /** * 企业微信H5登录 * @param qwUserDetail * @return */ @PostMapping("/qwH5Login") public R qwH5Login(@RequestBody QwUserDetailDto qwUserDetail) { String mobile = qwUserDetail.getMobile(); ShopStaff shopStaff = null; if(StringUtils.isNotEmpty(mobile)){ shopStaff = shopStaffService.getByMobile(mobile); }else{ shopStaff = shopStaffService.getOne(new QueryWrapper().eq("del_flag", 0) .eq("user_id", qwUserDetail.getUserid())); } if(shopStaff==null){ throw new ServiceException(AppErrorConstant.USER_NO_SHOP); } Long userId = shopStaff.getUserId(); SysUser sysUser = remoteUserService.getSysUser(userId).getData(); Optional.ofNullable(sysUser).orElseThrow(() -> new ServiceException("登录失败,未查询到用户")); Shop shop = shopService.getByShopId(shopStaff.getShopId()); if(shop.getFrozenFlag()==1){ String userKey = SecurityUtils.getUserKey(); redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey); throw new ServiceException("商户已被冻结,请联系管理员",401); } // 构造登录返回信息 QwH5LoginVo qwH5LoginVo = new QwH5LoginVo(); qwH5LoginVo.setUserid(qwUserDetail.getUserid()); qwH5LoginVo.setMobile(qwUserDetail.getMobile()); qwH5LoginVo.setSysUser(sysUser); return R.ok(qwH5LoginVo); } @PostMapping("/getShop") public R getShop(@RequestBody Long shopId) { Shop shop = shopService.getByShopId(shopId); return R.ok(shop); } @PostMapping("/getShopSubMchId") public R getShopSubMchId(@RequestBody Long shopId){ String subMchid = ""; ShopAuthentication authentication = shopAuthenticationService.getByShopId(shopId); if(null != authentication){ subMchid = authentication.getSubMchid(); } return R.ok(subMchid, ""); } @PostMapping("/getShopHFTXSubMchId") public R getShopHFTXSubMchId(@RequestBody Long shopId){ ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper() .eq("is_delete", 0).eq("shop_id", shopId)); ShopAuthenticationHftxVo vo = new ShopAuthenticationHftxVo(); BeanUtils.copyProperties(shopAuthenticationHftx, vo); return R.ok(vo, ""); } /** * 获取商户分成 * @param shopId * @return */ @PostMapping("/getShopProportion") public R getShopProportion(@RequestBody Long shopId){ ShopProportion shopProportion = shopProportionService.getByShopId(shopId); ShopProportionVo shopProportionVo = new ShopProportionVo(); BeanUtils.copyBeanProp(shopProportionVo, shopProportion); return R.ok(shopProportionVo); } @PostMapping("/getShopByUserId") public R getShopByUserId(@RequestBody Long userId) { ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId); Optional.ofNullable(shopRelUser).orElseThrow(() -> new ServiceException("未查询到用户关联商户")); ShopRelUserVo shopRelUserVo = new ShopRelUserVo(); shopRelUserVo.setShopId(shopRelUser.getShopId()); shopRelUserVo.setUserName(shopRelUser.getUserName()); return R.ok(shopRelUserVo); } @PostMapping("/getShopByBelongUserId") public R getShopByBelongUserId(@RequestBody Long userId) { List shopList = shopService.getShopByBelongUserId(userId); Optional.ofNullable(shopList.get(0)).orElseThrow(() -> new ServiceException("未查询到商户信息")); ShopRelUserVo shopRelUserVo = new ShopRelUserVo(); shopRelUserVo.setShopId(shopList.get(0).getShopId()); return R.ok(shopRelUserVo); } /** * @description 删除商户标签 * @author jqs * @date 2023/6/8 15:52 * @param tag * @return R */ @PostMapping("/deleteShopTag") public R deleteShopTag(@RequestBody String tag) { shopService.deleteShopTag(tag); return R.ok(); } /** * @description * @author jqs * @date 2023/6/9 10:18 * @param suggestTag * @return R */ @PostMapping("/deleteShopSuggestTag") public R deleteShopSuggestTag(@RequestBody String suggestTag) { shopSuggestService.deleteShopSuggestTag(suggestTag); return R.ok(); } /** * @description 通过区域代码获取shopId * @author jqs * @date 2023/6/21 15:50 * @param mgtShopIdByCodeDto * @return R */ @PostMapping("/getShopIdByCode") public R getShopIdByCode(@RequestBody MgtShopIdByCodeDto mgtShopIdByCodeDto) { MgtShopIdByCodeVo mgtShopIdByCodeVo = shopService.getShopIdByCode(mgtShopIdByCodeDto); return R.ok(mgtShopIdByCodeVo); } /** * @description 通过id获取商户简易信息list * @author jqs * @date 2023/6/21 15:50 * @param mgtBaseBathDto * @return R> */ @PostMapping("/listShopSimpleVoByIds") public R> listShopSimpleVoByIds(@RequestBody MgtBaseBathDto mgtBaseBathDto) { List mgtShopListSimpleVos = shopService.listShopSimpleVoByIds(mgtBaseBathDto.getIds()); return R.ok(mgtShopListSimpleVos); } /** * @description boardShopTotal * @param * @return R * @author jqs34 * @date 2023/6/18 16:45 */ @PostMapping("/boardShopTotal") public R boardShopTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto) { MgtBulletinBoardVo bulletinBoardVo = new MgtBulletinBoardVo(); MgtBulletinBoardVo bulletinBoardVoShop = shopService.boardShopTotal(boardMemberTotalDto.getUserIds()); MgtBulletinBoardVo bulletinBoardVoTask = shopTaskService.boardTaskTotal(boardMemberTotalDto.getUserIds()); bulletinBoardVo.setShopTotal(bulletinBoardVoShop.getShopTotal()); bulletinBoardVo.setDealerTotal(bulletinBoardVoShop.getDealerTotal()); bulletinBoardVo.setAgencyTotal(bulletinBoardVoShop.getAgencyTotal()); bulletinBoardVo.setFollowShopToday(bulletinBoardVoTask.getFollowShopToday()); return R.ok(bulletinBoardVo); } /** * @description 获取平台统计shopId * @param mgtBasePlatformDto * @return R> * @author jqs34 * @date 2023/6/23 14:14 */ @PostMapping("/listShopIdByPlTotal") public R> listShopIdByPlTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) { List shopIdList = shopService.listShopIdByPlTotal(mgtBasePlatformDto); return R.ok(shopIdList); } /** * @description 更新商户统计 * @author jqs * @date 2023/6/28 17:52 * @param shopTotalChangeDto * @return R */ @PostMapping("/changeShopTotal") public R changeShopTotal(@RequestBody ShopTotalChangeDto shopTotalChangeDto) { shopTotalService.changeShopTotal(shopTotalChangeDto); return R.ok(); } /** * @description 获取最近任务 * @author jqs * @date 2023/6/29 18:25 * @param userId * @return R */ @PostMapping("/getLastMemberTask") public R getLastMemberTask(@RequestBody Long userId) { MemberTaskSimpleVo taskSimpleVo = memberTaskService.getLastMemberTask(userId); return R.ok(taskSimpleVo); } /** * @description 获取商户下属代理商 * @author jqs * @date 2023/7/3 17:26 * @return R> */ @PostMapping("/listShopIdByShopId") public R> listShopIdByShopId(@RequestBody Long shopId) { List shopIdList = shopService.listShopIdByShopId(shopId); return R.ok(shopIdList); } /** * @description 获取未回复数量 * @author jqs * @date 2023/7/5 12:49 * @param * @return R */ @PostMapping("/getUnReplaySuggestVo") public R getUnReplaySuggestVo() { Integer count = shopSuggestService.getUnReplaySuggestVo(); return R.ok(count); } /** * @description 获取商户营销状态 * @author jqs * @date 2023/7/7 14:05 * @param shopId * @return R */ @PostMapping("/getShopMarketingStatus") public R getShopMarketingStatus(@RequestBody Long shopId) { Shop shop = shopService.getByShopId(shopId); Integer platformCouponFlag = shop.getPlatformCouponFlag(); Integer platformBirthdayFlag = shop.getPlatformBirthdayFlag(); Integer marketingStatus = 0; if(platformCouponFlag==1&&platformBirthdayFlag==2){ marketingStatus = 1; }else if(platformCouponFlag==2&&platformBirthdayFlag==1){ marketingStatus = 2; }else if(platformCouponFlag==1&&platformBirthdayFlag==1){ marketingStatus = 3; } return R.ok(marketingStatus); } /** * @description 修改商户员工 * @author jqs * @date 2023/7/19 19:02 * @param mgtShopStaffEditDto * @return R */ @PostMapping("/editMgtShopStaff") public R editMgtShopStaff(@RequestBody MgtShopStaffEditDto mgtShopStaffEditDto) { shopStaffService.editMgtShopStaff(mgtShopStaffEditDto); return R.ok(); } /** * @description * @author jqs * @date 2023/8/10 23:01 * @param cityCodes * @return R> */ @PostMapping("/listShopIdByCityCode") R> listShopIdByCityCode(@RequestBody List cityCodes){ List shopIdList = shopService.listShopIdByCityCode(cityCodes); return R.ok(shopIdList); } @PostMapping("/authShop") R authShop(){ shopService.authShop(); return R.ok(); } /** * @description 获取今日任务通知列表 * @author jqs * @date 2023/8/29 15:03 * @param * @return R> */ @PostMapping("/getTaskMsgList") R> getTaskMsgList(){ List userTaskMsgVoList = shopService.getTaskMsgList(); return R.ok(userTaskMsgVoList); } /** * @description * @author jqs * @date 2023/8/10 23:01 * @param cityCodes * @return R> */ @PostMapping("/listShopByCityCode") public R> listShopByCityCode(@RequestBody List cityCodes){ List shopIdList = shopService.listShopByCityCode(cityCodes); return R.ok(shopIdList); } /** * @description * @author jqs * @date 2023/8/10 23:01 * @return R> */ @PostMapping("/listShopByIds") public R> listShopByIds(@RequestBody List ids){ List shopIdList = shopService.listByIds(ids); return R.ok(shopIdList); } /** * 根据管理员id获取门店 * @return */ @PostMapping("/getShopBySysUserIds") public List getShopBySysUserIds(@RequestBody BoardMemberTotalDto boardMemberTotalDto){ return shopService.getShopBySysUserIds(boardMemberTotalDto.getUserIds()); } }