diff --git a/src/main/java/com/ycwl/basic/mapper/pc/ScenicAccountMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/ScenicAccountMapper.java new file mode 100644 index 0000000..ca5901b --- /dev/null +++ b/src/main/java/com/ycwl/basic/mapper/pc/ScenicAccountMapper.java @@ -0,0 +1,15 @@ +package com.ycwl.basic.mapper.pc; + +import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ScenicAccountMapper { + ScenicAccountEntity getByAccount(String account); + int add(ScenicAccountEntity scenicAccount); + ScenicAccountEntity getSuperAccountOfScenic(Long scenicId); + int update(ScenicAccountEntity scenicAccount); + int deleteById(Long id); + int updateStatus(Long id); + int deleteByScenicId(Long scenicId); +} diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java b/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java index d195acc..04418c7 100644 --- a/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/broker/entity/BrokerEntity.java @@ -20,6 +20,7 @@ public class BrokerEntity { * 推客名称 */ private String name; + private String phone; /** * 专属优惠码,新建时生成 */ @@ -30,4 +31,8 @@ public class BrokerEntity { private Integer status; private Date createAt; private Date updateAt; + private Integer brokerOrderCount; + private Integer brokerOrderAmount; + private Date firstBrokerDate; + private Date lastBrokerDate; } diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java index c3ff059..9775b67 100644 --- a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java @@ -18,6 +18,8 @@ public class BrokerReqQuery extends BaseQueryParameterReq { private Long id; @ApiModelProperty("推客名称") private String name; + @ApiModelProperty("手机号") + private String phone; @ApiModelProperty("专属优惠码") private String promoCode; @ApiModelProperty("状态,0禁用,1启用") diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java new file mode 100644 index 0000000..8c8c3ee --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java @@ -0,0 +1,19 @@ +package com.ycwl.basic.model.pc.scenic.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("scenic_account") +public class ScenicAccountEntity { + private Long id; + private Long scenicId; + private Integer isSuper; + private String name; + private String account; + private String password; + private Date createTime; + private Date updateTime; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java index 224946d..eb74a15 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java @@ -22,6 +22,11 @@ public class ScenicAddOrUpdateReq { */ @ApiModelProperty("景区名称") private String name; + /** + * 景区电话 + */ + @ApiModelProperty("联系电话") + private String phone; /** * 景区介绍 */ @@ -75,4 +80,9 @@ public class ScenicAddOrUpdateReq { private ScenicConfigEntity scenicConfig; @ApiModelProperty("景区源素材价格,元") private BigDecimal price; + + @ApiModelProperty("账号") + private String account; + @ApiModelProperty("密码") + private String password; } diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java b/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java index 2685313..87d7b7e 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java @@ -23,6 +23,16 @@ public class ScenicRespVO { */ @ApiModelProperty("景区名称") private String name; + /** + * 账号 + */ + @ApiModelProperty("账号") + private String account; + /** + * 联系电话 + */ + @ApiModelProperty("联系电话") + private String phone; /** * 景区介绍 */ diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java index 8ce6fb5..3dfe1a8 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/RenderWorkerServiceImpl.java @@ -8,6 +8,7 @@ import com.ycwl.basic.model.pc.renderWorker.req.RenderWorkerReqQuery; import com.ycwl.basic.service.pc.RenderWorkerService; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.SnowFlakeUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,6 +45,10 @@ public class RenderWorkerServiceImpl implements RenderWorkerService { @Override public ApiResponse<Integer> add(RenderWorkerEntity renderWorker) { renderWorker.setId(SnowFlakeUtil.getLongId()); + if (StringUtils.isEmpty(renderWorker.getAccessKey())) { + renderWorker.setAccessKey(SnowFlakeUtil.getId()); + } + renderWorker.setStatus(0); int add = renderWorkerMapper.add(renderWorker); if (add == 0) { return ApiResponse.fail("渲染机添加失败"); diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java index 731bb16..954a504 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/ScenicServiceImpl.java @@ -2,7 +2,9 @@ package com.ycwl.basic.service.impl.pc; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.mapper.pc.ScenicAccountMapper; import com.ycwl.basic.mapper.pc.ScenicMapper; +import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; @@ -10,6 +12,7 @@ import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; import com.ycwl.basic.service.pc.ScenicService; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.SnowFlakeUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -24,6 +27,8 @@ import java.util.List; public class ScenicServiceImpl implements ScenicService { @Autowired private ScenicMapper scenicMapper; + @Autowired + private ScenicAccountMapper scenicAccountMapper; @Override public ApiResponse<PageInfo<ScenicRespVO>> pageQuery(ScenicReqQuery scenicReqQuery) { @@ -46,9 +51,21 @@ public class ScenicServiceImpl implements ScenicService { @Override @Transactional(rollbackFor = Exception.class) public ApiResponse<Boolean> add(ScenicAddOrUpdateReq scenicAddReq) { + ScenicAccountEntity scenicAccount = scenicAccountMapper.getByAccount(scenicAddReq.getAccount()); + if (scenicAccount != null) { + return ApiResponse.fail("账号已存在"); + } Long scenicId = SnowFlakeUtil.getLongId(); scenicAddReq.setId(scenicId); int add = scenicMapper.add(scenicAddReq); + ScenicAccountEntity account = new ScenicAccountEntity(); + account.setId(SnowFlakeUtil.getLongId()); + account.setScenicId(scenicId); + account.setName(scenicAddReq.getName() + "管理员"); + account.setAccount(scenicAddReq.getAccount()); + account.setPassword(scenicAddReq.getPassword()); + account.setIsSuper(1); + scenicAccountMapper.add(account); if (add > 0) { return ApiResponse.success(true); }else { @@ -62,6 +79,7 @@ public class ScenicServiceImpl implements ScenicService { int i = scenicMapper.deleteById(id); if (i > 0) { scenicMapper.deleteConfigByscenicId(id); + scenicAccountMapper.deleteByScenicId(id); return ApiResponse.success(true); }else { return ApiResponse.fail("景区删除失败"); @@ -70,6 +88,29 @@ public class ScenicServiceImpl implements ScenicService { @Override public ApiResponse<Boolean> update(ScenicAddOrUpdateReq scenicUpdateReq) { + if (StringUtils.isNotBlank(scenicUpdateReq.getAccount()) && StringUtils.isNotBlank(scenicUpdateReq.getPassword())) { + ScenicAccountEntity scenicAccount = scenicAccountMapper.getByAccount(scenicUpdateReq.getAccount()); + if (scenicAccount != null) { + if (!scenicAccount.getScenicId().equals(scenicUpdateReq.getId())) { + return ApiResponse.fail("账号已存在"); + } + } + ScenicAccountEntity account = scenicAccountMapper.getSuperAccountOfScenic(scenicUpdateReq.getId()); + if (account != null) { + account.setAccount(scenicUpdateReq.getAccount()); + account.setPassword(scenicUpdateReq.getPassword()); + scenicAccountMapper.update(account); + } else { + account = new ScenicAccountEntity(); + account.setId(SnowFlakeUtil.getLongId()); + account.setScenicId(scenicUpdateReq.getId()); + account.setName(scenicUpdateReq.getName() + "管理员"); + account.setAccount(scenicUpdateReq.getAccount()); + account.setPassword(scenicUpdateReq.getPassword()); + account.setIsSuper(1); + scenicAccountMapper.add(account); + } + } int i = scenicMapper.update(scenicUpdateReq); if (i > 0) { return ApiResponse.success(true); diff --git a/src/main/resources/mapper/pc/BrokerMapper.xml b/src/main/resources/mapper/pc/BrokerMapper.xml index a498c76..d2a6700 100644 --- a/src/main/resources/mapper/pc/BrokerMapper.xml +++ b/src/main/resources/mapper/pc/BrokerMapper.xml @@ -23,12 +23,20 @@ delete from broker where id = #{id} </delete> <select id="list" resultType="com.ycwl.basic.model.pc.broker.entity.BrokerEntity"> - select id, `name`, promo_code, status, create_at, update_at + select id, `name`, phone, promo_code, status, + (select count(1) from `order` where broker_id = broker.id) as broker_order_count, + (select sum(pay_price) from `order` where broker_id = broker.id) as broker_order_amount, + (select create_at from `order` where broker_id = broker.id and status = 1 order by create_at desc limit 1) as last_broker_date, + (select create_at from `order` where broker_id = broker.id and status = 1 order by create_at asc limit 1) as first_broker_date, + create_at, update_at from broker <where> <if test="name!= null and name!= ''"> and `name` like concat('%', #{name}, '%') </if> + <if test="phone!= null and phone!= ''"> + and `phone` like concat('%', #{phone}, '%') + </if> <if test="promoCode!= null and promoCode!= ''"> and promo_code like concat('%', #{promoCode}, '%') </if> diff --git a/src/main/resources/mapper/pc/ScenicAccountMapper.xml b/src/main/resources/mapper/pc/ScenicAccountMapper.xml new file mode 100644 index 0000000..8dd25d7 --- /dev/null +++ b/src/main/resources/mapper/pc/ScenicAccountMapper.xml @@ -0,0 +1,52 @@ +<?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.ycwl.basic.mapper.pc.ScenicAccountMapper"> + <insert id="add"> + insert into scenic_account(id, scenic_id, is_super, name, account, password, create_time, update_time) + values (#{id}, #{scenicId}, #{isSuper}, #{name}, #{account}, #{password}, now(), now()) + </insert> + <update id="update"> + update scenic_account + <set> + <if test="name != null and name != ''"> + name = #{name}, + </if> + <if test="account != null and account != ''"> + account = #{account}, + </if> + <if test="password != null and password != ''"> + password = #{password}, + </if> + update_time = now() + </set> + where id = #{id} + </update> + <update id="updateStatus"> + update scenic_account + set status = (CASE + WHEN status = 1 THEN + 0 + WHEN status = 0 THEN + 1 + ELSE null + END) + where id = #{id} + </update> + <delete id="deleteById"> + delete from scenic_account where id = #{id} + </delete> + <delete id="deleteByScenicId"> + delete from scenic_account where scenic_id = #{scenicId} + </delete> + <select id="getSuperAccountOfScenic" + resultType="com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity"> + select id, scenic_id, is_super, name, account, password, create_time, update_time + from scenic_account + where scenic_id = #{scenicId} and is_super = 1 + </select> + <select id="getByAccount" resultType="com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity"> + select id, scenic_id, is_super, name, account, password, create_time, update_time + from scenic_account + where account = #{account} + </select> +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/pc/ScenicMapper.xml b/src/main/resources/mapper/pc/ScenicMapper.xml index 68149e5..cb3e504 100644 --- a/src/main/resources/mapper/pc/ScenicMapper.xml +++ b/src/main/resources/mapper/pc/ScenicMapper.xml @@ -16,6 +16,9 @@ <if test="name!=null and name!=''"> `name`=#{name}, </if> + <if test="phone!=null and phone!=''"> + `phone`=#{phone}, + </if> <if test="introduction!=null and introduction!=''"> introduction=#{introduction}, </if> @@ -77,8 +80,10 @@ delete from scenic_config where scenic_id = #{scenicId} </delete> <select id="list" resultMap="scenicAndConfig"> - select s.id, `name`, introduction, longitude, latitude, radius, province, city, area, address, `status`, s.create_time, update_time, - c.start_time, c.end_time, c.is_default, c.create_time + select s.id, `name`, `phone`, introduction, longitude, latitude, radius, province, city, area, address, `status`, s.create_time, update_time, + c.start_time, c.end_time, + (select scenic_account.account from scenic_account where scenic_account.scenic_id = s.id and scenic_account.is_super = 1 limit 1) as account, + c.is_default, c.create_time from scenic s left join scenic_config c on s.id = c.id <where> @@ -106,7 +111,7 @@ </where> </select> <select id="getById" resultMap="scenicAndConfig"> - select s.id, `name`, introduction, longitude, latitude, radius, province, city, area, address, `status`, s.create_time, update_time, + select s.id, `name`, `phone`, introduction, longitude, latitude, radius, province, city, area, address, `status`, s.create_time, update_time, c.start_time, c.end_time, c.is_default, c.create_time,s.price from scenic s left join scenic_config c on s.id = c.id @@ -114,8 +119,10 @@ </select> <resultMap id="scenicAndConfig" type="com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO"> - <id property="id" column="s.id"/> + <id property="id" column="id"/> <result property="name" column="name"/> + <result property="account" column="account"/> + <result property="phone" column="phone"/> <result property="introduction" column="introduction"/> <result property="longitude" column="longitude"/> <result property="latitude" column="latitude"/>