diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java b/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java index 1006a76..3e7c87a 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java @@ -2,25 +2,26 @@ package cn.pluss.platform.controller.merchant; import cn.pluss.platform.api.Result; import cn.pluss.platform.api.ResultGenerator; -import cn.pluss.platform.entity.MerchantCashPayCode; -import cn.pluss.platform.entity.MerchantCashPlace; -import cn.pluss.platform.entity.MerchantCashPlaceStaff; +import cn.pluss.platform.entity.*; import cn.pluss.platform.exception.MsgException; +import cn.pluss.platform.mapper.MerchantChannelMapper; import cn.pluss.platform.merchant.MerchantCashPlaceService; import cn.pluss.platform.merchant.MerchantCashPlaceStaffService; import cn.pluss.platform.vo.MerchantCashPlaceStaffVO; import cn.pluss.platform.vo.MerchantCashPlaceVO; import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.api.R; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.Setter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.Objects; -/** +/** 收银点 * @author DJH */ @RestController @@ -32,6 +33,8 @@ public class MerchantCashPlaceController { @Setter(onMethod_ = {@Autowired}) private MerchantCashPlaceStaffService cashPlaceStaffService; + @Resource + private MerchantChannelMapper merchantChannelMapper; @PostMapping public Result add(@RequestBody MerchantCashPlace merchantCashPlace) { @@ -50,6 +53,13 @@ public class MerchantCashPlaceController { return ResultGenerator.genSuccessResult("操作成功", null); } + /** + * (新)收银点列表 + * @param current + * @param size + * @param merchantCashPlace + * @return + */ @GetMapping("/list") public Result list(Long current, Long size, MerchantCashPlace merchantCashPlace) { Page page = new Page<>(); @@ -59,7 +69,8 @@ public class MerchantCashPlaceController { page.setCurrent(current); page.setSize(size); } - List result = cashPlaceService.getListForApp(page, merchantCashPlace); +// List result = cashPlaceService.getListForApp(page, merchantCashPlace); + List result = cashPlaceService.getListForBase(current.intValue(),size.intValue(), merchantCashPlace.getMerchantCode(),merchantCashPlace.getName()); return ResultGenerator.genSuccessResult(result); } @@ -113,4 +124,43 @@ public class MerchantCashPlaceController { throw new MsgException("输入内容过长"); } } + + /** + * (新)增加收银点 + * @return + */ + @PostMapping("/add") + public Result add(@RequestBody MerchantBaseInfo merchantBaseInfo){ + //判定字符位数 + if (Objects.equals(merchantBaseInfo.getAddress(), null) || Objects.equals(merchantBaseInfo.getAlias(), null)){ + throw new MsgException("地址或收银点名称不能为空"); + } + Boolean aBoolean = cashPlaceService.addCashPlace(merchantBaseInfo); + if (aBoolean){ + return ResultGenerator.genSuccessResult(""); + } + return ResultGenerator.genFailResult("增加失败"); + } + + /** + * 通道详情 + * @return + */ + @GetMapping("/channel") + public Result channel(@RequestParam String merchantCode){ + List merchantChannels = merchantChannelMapper.selectList(); + List merchantChannelVo = cashPlaceService.merchantChannel(merchantCode, merchantChannels); + return ResultGenerator.genSuccessResult(merchantChannelVo); + } + + /** + * 切换收银点 + * @return + */ + @GetMapping("/cutChannel") + public Result cutChannel(@RequestParam String merchantCode, + @RequestParam String code){ + cashPlaceStaffService.cutChannel(merchantCode, code); + return ResultGenerator.genSuccessResult(); + } } \ No newline at end of file diff --git a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelMapper.java b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelMapper.java index 07d2386..b3591ea 100644 --- a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelMapper.java +++ b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelMapper.java @@ -12,4 +12,6 @@ public interface MerchantChannelMapper extends BaseMapper { * @return */ List selectValidIdList(); + + List selectList(); } diff --git a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelStatusMapper.java b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelStatusMapper.java index 940cb35..793ab72 100644 --- a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelStatusMapper.java +++ b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantChannelStatusMapper.java @@ -53,4 +53,6 @@ public interface MerchantChannelStatusMapper extends BaseMapper pageDate(@Param("pageSize")Integer size, @Param("offset")Integer page); + + List getChannelByMerchantCode(@Param("merchantCode") String merchantCode); } diff --git a/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelMapper.xml b/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelMapper.xml index 1694df5..637f97f 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelMapper.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelMapper.xml @@ -14,5 +14,10 @@ SELECT id FROM tb_pluss_merchant_channel WHERE `status` = 1 + + + diff --git a/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelStatusMapper.xml b/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelStatusMapper.xml index 270c3cc..db75535 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelStatusMapper.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/MerchantChannelStatusMapper.xml @@ -89,4 +89,7 @@ WHERE mcs.`valid` = -1 order by mcs.id desc limit #{pageSize} offset #{offset}; + diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantBaseInfo.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantBaseInfo.java index b1864b4..ecb41f2 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantBaseInfo.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantBaseInfo.java @@ -2,7 +2,6 @@ package cn.pluss.platform.entity; import cn.pluss.platform.constants.Constant; import cn.pluss.platform.exception.MsgException; -import cn.pluss.platform.util.MD5Util; import cn.pluss.platform.util.SignUtils; import cn.pluss.platform.util.StringUtil; import com.alibaba.fastjson.JSON; @@ -19,7 +18,6 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; -import java.util.Objects; @Data @AllArgsConstructor @@ -108,6 +106,16 @@ public class MerchantBaseInfo implements Serializable { private String buslicType; private String isVoice; + /** + * (新)多收银点主商户号 + */ + @TableField("masterMerchantCode") + private String masterMerchantCode; + /** + * 通道切换标记 + */ + @TableField("tab") + private Integer tab; /** * 是否推送微信消息0:不推送 1:推送 @@ -229,6 +237,9 @@ public class MerchantBaseInfo implements Serializable { @TableField("validFlag") private Integer validFlag; + @TableField(exist = false) + private Integer channel; + public static void setFirstAndLastTradeTime(MerchantBaseInfo mbi, Date date) { diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantCashPlace.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantCashPlace.java index 956f318..fd30c48 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantCashPlace.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantCashPlace.java @@ -70,6 +70,9 @@ public class MerchantCashPlace implements Serializable { @TableField("remark") private String remark; + @TableField(exist = false) + private String merchantCode; + /** * 创建时间 diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantCashPlaceVO.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantCashPlaceVO.java index 08eaaac..47e8b07 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantCashPlaceVO.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantCashPlaceVO.java @@ -2,10 +2,6 @@ package cn.pluss.platform.vo; import cn.pluss.platform.entity.MerchantBaseInfo; import com.alibaba.fastjson.annotation.JSONField; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import java.io.Serializable; @@ -70,4 +66,8 @@ public class MerchantCashPlaceVO implements Serializable { * 店铺基本信息 */ private MerchantBaseInfo merchantBaseInfo; + /** + * 切换 + */ + private Integer tab; } diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceService.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceService.java index 323b775..f397e4c 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceService.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceService.java @@ -1,9 +1,6 @@ package cn.pluss.platform.merchant; -import cn.pluss.platform.entity.MerchantCashPayCode; -import cn.pluss.platform.entity.MerchantCashPlace; -import cn.pluss.platform.entity.MerchantOrder; -import cn.pluss.platform.entity.UserApp; +import cn.pluss.platform.entity.*; import cn.pluss.platform.vo.MerchantCashPlaceStaffVO; import cn.pluss.platform.vo.MerchantCashPlaceVO; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -27,12 +24,20 @@ public interface MerchantCashPlaceService extends IService { */ void createDefaultCashPlace(Long userId); + List merchantChannel(String merchantCode,List merchantChannels); + /** * 通过收银点编码删除 * @param code 收银台编码code */ void delByCodeForApp(String code); + /** + * (新)新增收银点 + * @param merchantBaseInfo + */ + Boolean addCashPlace(MerchantBaseInfo merchantBaseInfo); + /** * 查看收银点列表 * @param merchantCashPlace 收银点查询条件 @@ -40,6 +45,12 @@ public interface MerchantCashPlaceService extends IService { */ List getListForApp(Page page, MerchantCashPlace merchantCashPlace); + /** + * 最新查看收银点 + * @return + */ + List getListForBase(Integer current, Integer size,String merchantCode,String name); + /** * 收银点绑定收款码 * @param merchantCashPayCode diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceStaffService.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceStaffService.java index 6aaf6a5..d8dab52 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceStaffService.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/MerchantCashPlaceStaffService.java @@ -44,6 +44,8 @@ public interface MerchantCashPlaceStaffService extends IService @@ -73,6 +69,14 @@ public class MerchantCashPlaceServiceImpl extends ServiceImpl merchantChannel(String merchantCode,List merchantChannels) { + List channelByMerchantCode = channelStatusMapper.getChannelByMerchantCode(merchantCode); + for (MerchantChannel data : merchantChannels) { + for (Integer i :channelByMerchantCode) { + if (data.getId().equals(i)){ + data.setStatus("1"); + } + } + } + return merchantChannels; + } + @Override @Transactional(rollbackFor = Exception.class) public void delByCodeForApp(String code) { @@ -235,6 +252,35 @@ public class MerchantCashPlaceServiceImpl extends ServiceImpl getListForApp(Page page, MerchantCashPlace merchantCashPlace) { UserApp userApp = userAppService.queryUserAppByToken(); @@ -313,6 +359,56 @@ public class MerchantCashPlaceServiceImpl extends ServiceImpl getListForBase(Integer current, Integer size,String merchantCodes,String name) { + //分页 + Page page = new Page<>(); + page.setCurrent(current); + page.setSize(size); + //查询 + MerchantBaseInfo merchantBaseInfo = merchantBaseInfoService.getMerchantBaseInfoByMerchantCode(merchantCodes); + String merchantCode = merchantBaseInfo.getMerchantCode(); + QueryWrapper qW = new QueryWrapper<>(); + qW.eq("masterMerchantCode",merchantCode); + qW.like(StringUtils.isNotEmpty(name), "name", merchantBaseInfo.getAlias()); + qW.orderByDesc("id"); + Page merchantBaseInfoPage = merchantBaseInfoMapper.selectPage(page, qW); + //组装 + List cashPlaceVOList = new ArrayList<>(); + for (MerchantBaseInfo data :merchantBaseInfoPage.getRecords()) { + MerchantCashPlaceVO cashPlaceVO = new MerchantCashPlaceVO(); + cashPlaceVO.setName(data.getAlias()); + cashPlaceVO.setCode(data.getMerchantCode()); + cashPlaceVO.setAddress(data.getAddress()); + cashPlaceVO.setCreateTime(data.getCreateDt()); + cashPlaceVO.setMerchantBaseInfo(data); + cashPlaceVO.setTab(data.getTab()); + cashPlaceVOList.add(cashPlaceVO); + } + //放入自己 + MerchantCashPlaceVO cashPlaceVOMy = new MerchantCashPlaceVO(); + cashPlaceVOMy.setName(merchantBaseInfo.getAlias()); + cashPlaceVOMy.setCode(merchantBaseInfo.getMerchantCode()); + cashPlaceVOMy.setAddress(merchantBaseInfo.getAddress()); + cashPlaceVOMy.setCreateTime(merchantBaseInfo.getCreateDt()); + cashPlaceVOMy.setMerchantBaseInfo(merchantBaseInfo); + cashPlaceVOMy.setTab(merchantBaseInfo.getTab()); + cashPlaceVOList.add(cashPlaceVOMy); + //如果全为0,默认是用户号 + boolean allZero = true; + for (MerchantCashPlaceVO vo : cashPlaceVOList) { + if (vo.getTab() != 0) { + allZero = false; + break; + } + } + + if (allZero && !cashPlaceVOList.isEmpty()) { + cashPlaceVOList.get(cashPlaceVOList.size() - 1).setTab(1); + } + return cashPlaceVOList; + } + @Override @Transactional(rollbackFor = Exception.class) public void bindPayCode(MerchantCashPayCode merchantCashPayCode) { diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/MerchantCashPlaceStaffServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/MerchantCashPlaceStaffServiceImpl.java index 5b3076d..13f4bdd 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/MerchantCashPlaceStaffServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/MerchantCashPlaceStaffServiceImpl.java @@ -1,10 +1,13 @@ package cn.pluss.platform.merchant.impl; +import cn.pluss.platform.entity.MerchantBaseInfo; import cn.pluss.platform.entity.MerchantCashPlace; import cn.pluss.platform.entity.MerchantCashPlaceStaff; import cn.pluss.platform.entity.UserApp; import cn.pluss.platform.exception.MsgException; +import cn.pluss.platform.mapper.MerchantBaseInfoMapper; import cn.pluss.platform.mapper.MerchantCashPlaceStaffMapper; +import cn.pluss.platform.merchant.MerchantBaseInfoService; import cn.pluss.platform.merchant.MerchantCashPlaceService; import cn.pluss.platform.merchant.MerchantCashPlaceStaffService; import cn.pluss.platform.userApp.UserAppService; @@ -19,7 +22,9 @@ import lombok.val; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -40,6 +45,10 @@ public class MerchantCashPlaceStaffServiceImpl extends ServiceImpl updateWrapper1 = new UpdateWrapper() + .set("tab", 0).eq("masterMerchantCode", merchantCode).or().eq("merchantCode",merchantCode); + merchantBaseInfoService.update(updateWrapper1); + + UpdateWrapper updateWrapper = new UpdateWrapper() + .set("tab", 1).eq("merchantCode", code); + merchantBaseInfoService.update(updateWrapper); + } + @Override public void offLineCashPlace(String cashPlaceCode) { MerchantCashPlace merchantCashPlace = new MerchantCashPlace().setCode(cashPlaceCode);