1、新增卡项套餐修改记录
2、修改储值卡操作姓名,次数显示bug
2 files added
14 files modified
| | |
| | | import com.matrix.core.tools.excl.ExcelUtil; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.hive.bean.MoneyCardUse; |
| | | import com.matrix.system.hive.bean.ShoppingGoods; |
| | | import com.matrix.system.hive.bean.SysProjUse; |
| | | import com.matrix.system.hive.bean.SysVipInfo; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.MoneyCardUseDao; |
| | | import com.matrix.system.hive.dao.ShoppingGoodsDao; |
| | | import com.matrix.system.hive.dao.SysProjUseDao; |
| | |
| | | @Resource |
| | | private MoneyCardUseService moneyCardUseService; |
| | | |
| | | @Resource |
| | | private SysProjUseDao projUseDao; |
| | | |
| | | @Autowired |
| | | SysVipInfoDao vipInfoDao; |
| | | |
| | | @Autowired |
| | | ShoppingGoodsDao shoppingGoodsDao; |
| | | |
| | | @Autowired |
| | | MoneyCardUseDao moneyCardUseDao; |
| | | |
| | | |
| | | public static final String fnCode = "projUse"; |
| | | public static final String search = fnCode + ":search"; |
| | |
| | | projUseService.findInPage(sysProjUse, pageVo), projUseService.findTotal(sysProjUse)); |
| | | } |
| | | |
| | | /** |
| | | * 查看会员项目使用情况 |
| | | * |
| | | * @author jiangyouyao |
| | | * @date 2016-09-03 |
| | | */ |
| | | @RequestMapping(value = "/findProjUseFlow") |
| | | public @ResponseBody |
| | | AjaxResult findProjUseFlow(PaginationVO pageVo, SysProjUseFlow projUseFlow) { |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, |
| | | projUseDao.selectProjUseFlow(projUseFlow, pageVo), projUseDao.selectProjUseFlowTotal(projUseFlow)); |
| | | } |
| | | |
| | | /** |
| | | * 将项目设置为有效 |
| | |
| | | /** |
| | | * 添加或修改会员項目信息 |
| | | */ |
| | | @Transactional |
| | | @RequestMapping(value = "/addOrModify") |
| | | public @ResponseBody |
| | | AjaxResult addOrModify(SysProjUse sysProjUse) { |
| | | if (sysProjUse.getId() != null) { |
| | | SysUsers user=getMe(); |
| | | //插入修改记录 |
| | | SysProjUse oldProjUse = projUseService.findById(sysProjUse.getId()); |
| | | SysProjUseFlow projUseFlow=new SysProjUseFlow(); |
| | | projUseFlow.setProjUseId(sysProjUse.getId()); |
| | | projUseFlow.setOptionType("人工修改"); |
| | | projUseFlow.setProjName(oldProjUse.getProjName()); |
| | | projUseFlow.setCreateBy(user.getSuName()); |
| | | projUseFlow.setUpdateBy(user.getSuName()); |
| | | projUseFlow.setPrice(sysProjUse.getPrice()); |
| | | projUseFlow.setStatus(sysProjUse.getStatus()); |
| | | projUseFlow.setBalance(sysProjUse.getBalance()); |
| | | projUseFlow.setFailTime(sysProjUse.getFailTime()); |
| | | projUseFlow.setIsOver(sysProjUse.getIsOver()); |
| | | projUseFlow.setRemark(sysProjUse.getUpdateRemark()); |
| | | projUseFlow.setSurplusCount(sysProjUse.getSurplusCount()); |
| | | projUseDao.insertFlow(projUseFlow); |
| | | |
| | | return modify(projUseService, sysProjUse, "项目"); |
| | | } else { |
| | | return add(projUseService, sysProjUse, "项目"); |
| | |
| | | } |
| | | |
| | | |
| | | @Autowired |
| | | SysVipInfoDao vipInfoDao; |
| | | |
| | | @Autowired |
| | | ShoppingGoodsDao shoppingGoodsDao; |
| | | |
| | | @Autowired |
| | | SysProjUseDao projUseDao; |
| | | |
| | | @Autowired |
| | | MoneyCardUseDao moneyCardUseDao; |
| | | |
| | | |
| | | @RequestMapping(value = "/importProjUse") |
| | |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.hive.bean.MoneyCardUse; |
| | | import com.matrix.system.hive.bean.SysProjUse; |
| | | import com.matrix.system.hive.bean.SysProjUseFlow; |
| | | import com.matrix.system.hive.dao.SysProjUseDao; |
| | | import com.matrix.system.hive.service.MoneyCardUseService; |
| | | import com.matrix.system.hive.service.SysProjUseService; |
| | |
| | | public @ResponseBody |
| | | AjaxResult addOrModify(SysProjUse sysProjUse) { |
| | | if (sysProjUse.getId() != null) { |
| | | |
| | | //插入修改记录 |
| | | SysUsers user=getMe(); |
| | | //插入修改记录 |
| | | SysProjUse oldProjUse = sysProjUseService.findById(sysProjUse.getId()); |
| | | SysProjUseFlow projUseFlow=new SysProjUseFlow(); |
| | | projUseFlow.setProjUseId(sysProjUse.getId()); |
| | | projUseFlow.setOptionType("人工修改"); |
| | | projUseFlow.setProjName(oldProjUse.getProjName()); |
| | | projUseFlow.setCreateBy(user.getSuName()); |
| | | projUseFlow.setUpdateBy(user.getSuName()); |
| | | projUseFlow.setPrice(sysProjUse.getPrice()); |
| | | projUseFlow.setStatus(sysProjUse.getStatus()); |
| | | projUseFlow.setBalance(sysProjUse.getBalance()); |
| | | projUseFlow.setFailTime(sysProjUse.getFailTime()); |
| | | projUseFlow.setIsOver(sysProjUse.getIsOver()); |
| | | projUseFlow.setRemark(sysProjUse.getUpdateRemark()); |
| | | projUseFlow.setSurplusCount(sysProjUse.getSurplusCount()); |
| | | projUseDao.insertFlow(projUseFlow); |
| | | |
| | | |
| | | int modifyResult = sysProjUseService.modify(sysProjUse); |
| | | |
| | | List<SysProjUse> modifyUse = sysProjUse.getTaocanProjUse(); |
| | |
| | | if (modifyResult > 0) { |
| | | if (CollectionUtils.isNotEmpty(modifyUse)) { |
| | | for (SysProjUse use : modifyUse) { |
| | | |
| | | //插入修改记录 |
| | | SysProjUse oldProjUse2 = sysProjUseService.findById(use.getId()); |
| | | SysProjUseFlow projUseFlow2=new SysProjUseFlow(); |
| | | //套餐中的项目需要记录套餐id |
| | | projUseFlow2.setProjUseId(oldProjUse.getId()); |
| | | projUseFlow2.setOptionType("人工修改"); |
| | | projUseFlow2.setProjName(oldProjUse2.getProjName()); |
| | | projUseFlow2.setCreateBy(user.getSuName()); |
| | | projUseFlow2.setUpdateBy(user.getSuName()); |
| | | projUseFlow2.setPrice(use.getPrice()); |
| | | projUseFlow2.setStatus(use.getStatus()); |
| | | projUseFlow2.setBalance(use.getBalance()); |
| | | projUseFlow2.setFailTime(use.getFailTime()); |
| | | projUseFlow2.setIsOver(use.getIsOver()); |
| | | projUseFlow2.setRemark(sysProjUse.getUpdateRemark()); |
| | | projUseFlow2.setSurplusCount(use.getSurplusCount()); |
| | | projUseDao.insertFlow(projUseFlow2); |
| | | |
| | | sysProjUseService.modify(use); |
| | | } |
| | | } |
| | |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.core.pojo.EntityDTO; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.common.bean.EntityDTOExt; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * @date 2016-07-03 20:53 |
| | | */ |
| | | public class SysProjUse implements Serializable { |
| | | public class SysProjUse extends EntityDTO { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | |
| | | |
| | | private String queryKey; |
| | | |
| | | @Extend |
| | | private String updateRemark; |
| | | |
| | | |
| | | public String getUpdateRemark() { |
| | | return updateRemark; |
| | | } |
| | | |
| | | public void setUpdateRemark(String updateRemark) { |
| | | this.updateRemark = updateRemark; |
| | | } |
| | | |
| | | public Date getTargetFailTime() { |
| | | return targetFailTime; |
| | | } |
New file |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.core.pojo.EntityDTO; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.common.bean.EntityDTOExt; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | |
| | | /**项目余次操作记录 |
| | | * @date 2016-07-03 20:53 |
| | | */ |
| | | public class SysProjUseFlow extends EntityDTO { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | */ |
| | | private Long id; |
| | | |
| | | |
| | | /** |
| | | * 项目id |
| | | */ |
| | | private Long projUseId; |
| | | |
| | | /** |
| | | * 剩余次数 |
| | | */ |
| | | private Integer surplusCount; |
| | | |
| | | /** |
| | | * 是否使用完成Y完成,N未完成 |
| | | */ |
| | | private String isOver; |
| | | |
| | | /** |
| | | * 有效期 |
| | | */ |
| | | @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8") |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date failTime; |
| | | |
| | | /** |
| | | * 单次扣减金额 |
| | | */ |
| | | private Double price; |
| | | |
| | | /** |
| | | * 套餐状态,有效,无效,冻结,转让,退款 |
| | | */ |
| | | private String status; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 使用情况余额 |
| | | */ |
| | | private Double balance; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String remark; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 项目名称 |
| | | */ |
| | | private String projName; |
| | | |
| | | /** |
| | | * 操作类型 |
| | | */ |
| | | private String optionType; |
| | | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @Extend |
| | | private String beginTime; |
| | | |
| | | /** |
| | | *结束时间 |
| | | */ |
| | | @Extend |
| | | private String endTime; |
| | | |
| | | public String getBeginTime() { |
| | | return beginTime; |
| | | } |
| | | |
| | | public void setBeginTime(String beginTime) { |
| | | this.beginTime = beginTime; |
| | | } |
| | | |
| | | public String getEndTime() { |
| | | return endTime; |
| | | } |
| | | |
| | | public void setEndTime(String endTime) { |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Long getProjUseId() { |
| | | return projUseId; |
| | | } |
| | | |
| | | public void setProjUseId(Long projUseId) { |
| | | this.projUseId = projUseId; |
| | | } |
| | | |
| | | public Integer getSurplusCount() { |
| | | return surplusCount; |
| | | } |
| | | |
| | | public void setSurplusCount(Integer surplusCount) { |
| | | this.surplusCount = surplusCount; |
| | | } |
| | | |
| | | public String getIsOver() { |
| | | return isOver; |
| | | } |
| | | |
| | | public void setIsOver(String isOver) { |
| | | this.isOver = isOver; |
| | | } |
| | | |
| | | public Date getFailTime() { |
| | | return failTime; |
| | | } |
| | | |
| | | public void setFailTime(Date failTime) { |
| | | this.failTime = failTime; |
| | | } |
| | | |
| | | public Double getPrice() { |
| | | return price; |
| | | } |
| | | |
| | | public void setPrice(Double price) { |
| | | this.price = price; |
| | | } |
| | | |
| | | public String getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(String status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | public Double getBalance() { |
| | | return balance; |
| | | } |
| | | |
| | | public void setBalance(Double balance) { |
| | | this.balance = balance; |
| | | } |
| | | |
| | | public String getRemark() { |
| | | return remark; |
| | | } |
| | | |
| | | public void setRemark(String remark) { |
| | | this.remark = remark; |
| | | } |
| | | |
| | | public String getProjName() { |
| | | return projName; |
| | | } |
| | | |
| | | public void setProjName(String projName) { |
| | | this.projName = projName; |
| | | } |
| | | |
| | | public String getOptionType() { |
| | | return optionType; |
| | | } |
| | | |
| | | public void setOptionType(String optionType) { |
| | | this.optionType = optionType; |
| | | } |
| | | } |
| | |
| | | package com.matrix.system.hive.dao; |
| | | |
| | | import com.matrix.system.hive.bean.SysProjUse; |
| | | import com.matrix.system.hive.bean.SysProjUseFlow; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import com.matrix.core.pojo.PaginationVO; |
| | |
| | | public interface SysProjUseDao{ |
| | | |
| | | public int insert(SysProjUse sysProjUse); |
| | | |
| | | |
| | | public int insertFlow(SysProjUseFlow sysProjUseFlow); |
| | | |
| | | public int update(SysProjUse sysProjUse); |
| | | /** |
| | | * 批量修改余次信息 |
| | |
| | | |
| | | public List<SysProjUse> selectByModel(@Param("record") SysProjUse sysProjUse); |
| | | |
| | | public List<SysProjUse> selectFlowByProjUseId(Long projUseId); |
| | | |
| | | public int selectTotalRecord(@Param("record") SysProjUse sysProjUse); |
| | | |
| | |
| | | public int updateTcStatus(@Param("id") Long id, @Param("status") String status); |
| | | |
| | | List<SysProjUse> selectHasValidProjUse(); |
| | | |
| | | List<SysProjUseFlow> selectProjUseFlow(@Param("record") SysProjUseFlow projUseFlow, @Param("pageVo")PaginationVO pageVo); |
| | | |
| | | Integer selectProjUseFlowTotal(@Param("record") SysProjUseFlow projUseFlow); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public int modify(SysProjUse sysProjUse) { |
| | | //插入套餐项目操作记录 |
| | | |
| | | |
| | | |
| | | return sysProjUseDao.update(sysProjUse); |
| | | |
| | |
| | | times, |
| | | gift_money, |
| | | balance, |
| | | (SELECT STAFF_NAME from sys_shopstaff_info a WHERE operation_id=a.id) staffName, |
| | | (SELECT su_name from sys_users a WHERE operation_id=a.su_id) staffName, |
| | | (SELECT VIP_NAME FROM sys_vip_info b WHERE vip_id=b.ID) vipName, |
| | | (SELECT card_NAME FROM money_card_use c WHERE car_use_id=c.ID) cardName |
| | | from money_card_use_flow |
| | |
| | | <if test="record.queryNoGoodsype != null and record.queryNoGoodsype !='' "> |
| | | and good_type !=#{record.queryNoGoodsype} |
| | | </if> |
| | | |
| | | <if test="record.name != null and record.name !='' "> |
| | | and (instr(name,#{record.name}) or instr(zjm,#{record.name})) |
| | | </if> |
| | | <if test="record.zjm != null and record.zjm !='' "> |
| | | and instr(zjm,#{record.zjm}) |
| | | </if> |
| | | |
| | | |
| | | <if test="record.staus != null and record.staus !='' "> |
| | | and staus =#{record.staus} |
| | | </if> |
| | | <if test="record.code != null and record.code !=''"> |
| | | and code = #{record.code} |
| | | </if> |
| | | |
| | | <if test="record.isAssemble != null and record.isAssemble !='' "> |
| | | and is_assemble =#{record.isAssemble} |
| | | </if> |
| | | <if test="record.deleted != null and record.deleted !='' "> |
| | | and deleted =#{record.deleted} |
| | | </if> |
| | | <if test="record.isDel != null and record.isDel !='' "> |
| | | and is_del = #{record.isDel} |
| | | </if> |
| | | <if test="record.zjm != null and record.zjm !='' "> |
| | | and instr(zjm,#{record.zjm}) |
| | | </if> |
| | | |
| | | <if test="record.cateId != null and record.cateId !='' "> |
| | | and cate_id =#{record.cateId} |
| | | </if> |
| | |
| | | and is_vip_car = #{record.isVipCar} |
| | | </if> |
| | | |
| | | |
| | | <if test="record.isCourse != null and record.isCourse !=''"> |
| | | and is_course = #{record.isCourse} |
| | | </if> |
| | | |
| | | <if test="record.code != null and record.code !=''"> |
| | | and code = #{record.code} |
| | | </if> |
| | | |
| | | |
| | | <if test="record.startTime != null "> |
| | | and create_time <![CDATA[ >= ]]> #{record.startTime} |
| | | </if> |
| | | <if test="record.endTime != null "> |
| | | and create_time <![CDATA[ <= ]]> #{record.endTime} |
| | | |
| | | </if> |
| | | <if test="record.shopId != null and record.shopId !='' "> |
| | | <![CDATA[ and ( shop_id = #{record.shopId} |
| | | or ISNULL(use_shop) || LENGTH(trim(use_shop))<1 |
| | | or FIND_IN_SET(#{record.shopId},use_shop) ) ]]> |
| | | <![CDATA[ and ( shop_id = #{record.shopId} or |
| | | ( headquarters=1 and ( ISNULL(use_shop) or LENGTH(trim(use_shop))<1 or FIND_IN_SET(#{record.shopId},use_shop))))]]> |
| | | </if> |
| | | <if test="record.companyId != null and record.companyId !='' "> |
| | | and company_id = #{record.companyId} |
| | | </if> |
| | | |
| | | <if test="record.isDel != null and record.isDel !='' "> |
| | | and is_del = #{record.isDel} |
| | | </if> |
| | | |
| | | |
| | | |
| | | <if test="record.headquarters != null and record.headquarters !='' "> |
| | | and headquarters = #{record.headquarters} |
| | | </if> |
| | | |
| | | |
| | | </if> |
| | | |
| | | |
| | | </select> |
| | | |
| | | |
| | |
| | | <mapper namespace="com.matrix.system.hive.dao.SysProjUseDao"> |
| | | |
| | | <resultMap type="SysProjUse" id="SysProjUseMap"> |
| | | |
| | | <id property="id" column="ID"/> |
| | | <result property="createBy" column="create_by" /> |
| | | <result property="createTime" column="create_time" /> |
| | | <result property="updateBy" column="update_by" /> |
| | | <result property="updateTime" column="update_time" /> |
| | | <result property="orderItemId" column="ORDER_ITEM_ID"/> |
| | | <result property="projId" column="PROJ_ID"/> |
| | | <result property="surplusCount" column="SURPLUS_COUNT"/> |
| | |
| | | <result property="deductionNum" column="deductionNum"/> |
| | | <result property="isCourse" column="is_course"/> |
| | | <result property="timeLength" column="time_length"/> |
| | | |
| | | |
| | | |
| | | |
| | | <!-- 对应项目信息--> |
| | | <association property="projInfo" javaType="ShoppingGoods" |
| | | resultMap="com.matrix.system.hive.dao.ShoppingGoodsDao.ShoppingGoodsMap"/> |
| | | |
| | | </resultMap> |
| | | |
| | | <!-- 余次使用记录map --> |
| | | <resultMap type="com.matrix.system.hive.bean.SysProjUseFlow" id="SysProjUseFlowMap"> |
| | | <id property="id" column="id"/> |
| | | <result property="createBy" column="create_by" /> |
| | | <result property="createTime" column="create_time" /> |
| | | <result property="updateBy" column="update_by" /> |
| | | <result property="updateTime" column="update_time" /> |
| | | <result property="projUseId" column="proj_use_id"/> |
| | | <result property="surplusCount" column="surplus_count"/> |
| | | <result property="isOver" column="is_over"/> |
| | | <result property="failTime" column="fail_time"/> |
| | | <result property="price" column="price"/> |
| | | <result property="status" column="status"/> |
| | | <result property="balance" column="balance"/> |
| | | <result property="remark" column="remark"/> |
| | | <result property="projName" column="proj_name"/> |
| | | <result property="optionType" column="option_type"/> |
| | | </resultMap> |
| | | |
| | | <!-- 插入流水 --> |
| | | <insert id="insertFlow" parameterType="SysProjUse" useGeneratedKeys="true" |
| | | keyProperty="id"> |
| | | INSERT INTO sys_proj_use_flow ( |
| | | create_by, |
| | | create_time, |
| | | update_by, |
| | | update_time, |
| | | id, |
| | | proj_use_id, |
| | | surplus_count, |
| | | is_over, |
| | | fail_time, |
| | | price, |
| | | status, |
| | | balance, |
| | | remark, |
| | | proj_name, |
| | | option_type |
| | | ) |
| | | VALUES ( |
| | | #{createBy}, |
| | | now(), |
| | | #{updateBy}, |
| | | now(), |
| | | #{id}, |
| | | #{projUseId}, |
| | | #{surplusCount}, |
| | | #{isOver}, |
| | | #{failTime}, |
| | | #{price}, |
| | | #{status}, |
| | | #{balance}, |
| | | #{remark}, |
| | | #{projName}, |
| | | #{optionType} |
| | | ) |
| | | </insert> |
| | | |
| | | <!-- 查询流水 --> |
| | | <select id="selectProjUseFlow" resultMap="SysProjUseFlowMap"> |
| | | select * from sys_proj_use_flow |
| | | <where> |
| | | and proj_use_id=#{record.projUseId} |
| | | <if test="record.createBy !=null and record.createBy!='' "> |
| | | and instr(createBy,#{record.createBy}) |
| | | </if> |
| | | <if test="record.beginTime !=null and record.beginTime!=''"> |
| | | and create_time >= #{record.beginTime} |
| | | </if> |
| | | <if test="record.endTime !=null and record.endTime!=''"> |
| | | <![CDATA[ and create_time <= #{record.endTime} ]]> |
| | | </if> |
| | | |
| | | </where> |
| | | <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> |
| | | <if test="pageVo.sort !=null and pageVo.order !=null"> |
| | | order by |
| | | ${pageVo.sort} ${pageVo.order} |
| | | </if> |
| | | <if test="pageVo.offset >=0 and pageVo.limit >0"> |
| | | limit |
| | | #{pageVo.offset},#{pageVo.limit} |
| | | </if> |
| | | </if> |
| | | |
| | | </select> |
| | | |
| | | <select id="selectProjUseFlowTotal" resultType="java.lang.Integer"> |
| | | select count(*) from sys_proj_use_flow |
| | | <where> |
| | | and proj_use_id=#{record.projUseId} |
| | | <if test="record.createBy !=null and record.createBy!='' "> |
| | | and instr(createBy,#{record.createBy}) |
| | | </if> |
| | | <if test="record.beginTime !=null and record.beginTime!=''"> |
| | | and create_time >= #{record.beginTime} |
| | | </if> |
| | | <if test="record.endTime !=null and record.endTime!=''"> |
| | | <![CDATA[ and create_time <= #{record.endTime} ]]> |
| | | </if> |
| | | |
| | | </where> |
| | | </select> |
| | | |
| | | <!-- 插入方法 --> |
| | | <insert id="insert" parameterType="SysProjUse" useGeneratedKeys="true" |
| | |
| | | where date_format(now(), '%Y-%m-%d') > date_format(FAIL_TIME, '%Y-%m-%d') and STATUS='有效' |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
New file |
| | |
| | | <!DOCTYPE HTML> |
| | | <html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> |
| | | <meta name="renderer" content="webkit|ie-comp|ie-stand"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> |
| | | <meta http-equiv="Cache-Control" content="no-siteapp"/> |
| | | <!-- 本框架基本脚本和样式 --> |
| | | <script type="text/javascript" |
| | | th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> |
| | | <script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> |
| | | |
| | | </head> |
| | | <body class=" container-fluid"> |
| | | <div class="pd-10"> |
| | | <!-- 搜索框部分start --> |
| | | <div class="row form-head"> |
| | | <form class="form-inline" id="serchform"> |
| | | |
| | | <div class="form-group mr-20"> |
| | | <label>创建时间</label> |
| | | <input autocomplete="off" name="beginTime" type="text" class="form-control datetimepicker" id="beginTime">- |
| | | <input autocomplete="off" name="endTime" type="text" class="form-control datetimepicker" id="endTime"> |
| | | </div> |
| | | |
| | | <div class="form-group mr-20"> |
| | | <label >操作人</label> |
| | | <input autocomplete="off" name="createBy" class="form-control"> |
| | | </div> |
| | | <input type="hidden" name="projUseId" th:value="${param.projUseId}" > |
| | | <div class="form-group"> |
| | | <button onclick="myGrid.serchData(1)" type="button" |
| | | class="btn btn-sm btn-info"> |
| | | <i class="fa fa-search "></i> 搜索 |
| | | </button> |
| | | <button type="reset" class="btn btn-sm btn-info "> |
| | | <i class="fa fa-refresh "></i> 重置 |
| | | </button> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | <div class="row mt-10"> |
| | | <div id="option-bar"> |
| | | <!-- 功能按钮部分 --> |
| | | </div> |
| | | <!-- 数据表格部分 --> |
| | | <table id="mgrid"> |
| | | <thead> |
| | | <tr> |
| | | <th data-formatter="MGrid.indexfn" data-align="center" data-width="30px">序号</th> |
| | | <th data-field="projName" >项目名称</th> |
| | | <th data-field="optionType">操作类型</th> |
| | | <th data-field="createBy">操作人</th> |
| | | <th data-field="createTime" data-formatter="MGrid.getTime" data-sortable="true">操作时间</th> |
| | | <th data-field="surplusCount">剩余次数</th> |
| | | <th data-field="balance">余额</th> |
| | | <th data-field="status">状态</th> |
| | | <th data-field="isOver" data-formatter="getYesOrNo">是否使用完成</th> |
| | | <th data-field="failTime" data-formatter="MGrid.getTime">有效期</th> |
| | | <th data-field="price">单次扣减金额</th> |
| | | <th data-field="remark">备注</th> |
| | | </tr> |
| | | </thead> |
| | | </table> |
| | | <!-- 数据表格部分end --> |
| | | </div> |
| | | <div class="form-group "> |
| | | <div class="col-sm-12 text-center fixed-button"> |
| | | <a class="btn btn-danger radius" href="javascript:;" |
| | | onclick="MTools.closeForm()"><i class="fa fa-close"></i> 关闭</a> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> |
| | | <script type="text/javascript" th:inline="javascript" > |
| | | |
| | | //定义表格对象 |
| | | var myGrid; |
| | | |
| | | $(function () { |
| | | |
| | | //时间 |
| | | var _initParam = { |
| | | format: 'yyyy-mm-dd hh:ii', |
| | | todayBtn: true, |
| | | autoclose: true, |
| | | startView: 2, |
| | | maxView: 3, |
| | | minView: 0 |
| | | }; |
| | | MTools.ininDatetimepicker(_initParam); |
| | | //限制结束时间不小于开始时间 |
| | | var initParam = { |
| | | format: 'yyyy-mm-dd hh:ii', |
| | | todayBtn: true, |
| | | autoclose: true, |
| | | startView: 2, |
| | | maxView: 3, |
| | | minView: 0 |
| | | }; |
| | | MTools.limitStartEndTime(initParam); |
| | | |
| | | myGrid = MGrid.initGrid({ |
| | | url: basePath + "/admin/projUser/findProjUseFlow", |
| | | sortName:"createTime", |
| | | sortOrder:"desc", |
| | | }); |
| | | }); |
| | | |
| | | function getYesOrNo(value, row, index){ |
| | | switch(value){ |
| | | case 'Y': |
| | | return "是"; |
| | | case 'N': |
| | | return "否"; |
| | | default: |
| | | return value; |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效'" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button> |
| | | <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结'" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button> |
| | | <el-button matrix:btn="vipInfo-cardEdit" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button> |
| | | <el-button type="text" size="small" @click="openProjUseFlow(scope.$index, scope.row)">操作记录</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效' && scope.row.taocanId == null" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button> |
| | | <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结' && scope.row.taocanId == null" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button> |
| | | <el-button matrix:btn="vipInfo-cardEdit" v-if="scope.row.taocanId == null" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button> |
| | | <el-button type="text" size="small" @click="openProjUseFlow(scope.$index, scope.row)">操作记录</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效'" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button> |
| | | <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结'" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button> |
| | | <el-button matrix:btn="vipInfo-cardEdit" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button> |
| | | <el-button type="text" size="small" @click="openMoneyCardUseFlow(scope.$index, scope.row)">操作记录</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | content : [ basePath + url + row.id ] |
| | | }); |
| | | }, |
| | | |
| | | |
| | | openProjUseFlow(index, row) { |
| | | layer.open({ |
| | | type : 2, |
| | | title : "操作记录", |
| | | area : MUI.SIZE_M, |
| | | maxmin : true, |
| | | content : [ basePath + "/admin/redirect/hive/beautySalon/projUseFlow-list?projUseId=" + row.id ] |
| | | }); |
| | | }, |
| | | |
| | | openMoneyCardUseFlow(index, row) { |
| | | layer.open({ |
| | | type : 2, |
| | | title : "充值卡变更记录", |
| | | area : MUI.SIZE_M, |
| | | maxmin : true, |
| | | content : [ basePath + "/admin/redirect/hive/vip/moneyCardUseFlow-list?vipId=" + row.vipId ] |
| | | }); |
| | | }, |
| | | |
| | | tabProjInvalid(index, row) { |
| | | let _this = this; |
| | | let projType = _this.projTab.projType; |
| | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label">充值卡备注</label> |
| | | <div class="col-sm-10"> |
| | | <div class="col-sm-4"> |
| | | <textarea class="form-control" name="remark" rows="4" th:text="${obj?.remark}"></textarea> |
| | | <div class="Validform_checktip"></div> |
| | | </div> |
| | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label">本次修改说明<span class="text-danger">*</span></label> |
| | | <div class="col-sm-10"> |
| | | <div class="col-sm-4"> |
| | | <input dataType="*1-200" errormsg="修改充值卡必须填写修改说明" class="form-control" name="changeRemark"/> |
| | | <div class="Validform_checktip"></div> |
| | | </div> |
| | |
| | | </head> |
| | | <body class=" container-fluid"> |
| | | <div class="pd-10"> |
| | | <!-- 搜索框部分start --> |
| | | <div class="row form-head"> |
| | | <form class="form-inline" id="serchform"> |
| | | <!-- 用于套餐的查询 --> |
| | | <input autocomplete="off" type="hidden" name="vipId" value="" id="vipId"> |
| | | |
| | | <div class="form-group mr-20"> |
| | | <label>操作内容</label> |
| | | <input autocomplete="off" name="content" type="text" class="form-control"> |
| | | </div> |
| | | <div class="form-group"> |
| | | <button onclick="myGrid.serchData(1)" type="button" |
| | | class="btn btn-sm btn-info"> |
| | | <i class="fa fa-search "></i> 搜索 |
| | | </button> |
| | | <button type="reset" class="btn btn-sm btn-info "> |
| | | <i class="fa fa-refresh "></i> 重置 |
| | | </button> |
| | | </div> |
| | | <div class="row form-head"> |
| | | <form class="form-inline" id="serchform2"> |
| | | <!-- 用于套餐的查询 --> |
| | | <input autocomplete="off" type="hidden" name="vipId" th:value="${param.vipId}" class="vipId"> |
| | | </form> |
| | | </div> |
| | | <div class="row mt-10"> |
| | |
| | | |
| | | </div> |
| | | <!-- 数据表格部分 --> |
| | | <table id="mgrid"> |
| | | <table id="mgrid2"> |
| | | <thead> |
| | | <tr> |
| | | <th data-formatter="MGrid.indexfn" data-align="center" |
| | | data-width="30px">序号</th> |
| | | <th data-field="vipName">客户姓名</th> |
| | | <!-- |
| | | <th data-field="orderNo">订单编号/服务单编号</th> |
| | | --> |
| | | <th data-field="content" data-sortable="true">操作内容</th> |
| | | <th data-field="staffName">操作人</th> |
| | | <th data-field="createTime" data-formatter="MGrid.getTime">操作时间</th> |
| | | <th data-field="cardName">充值卡名称</th> |
| | | <th data-field="vipName">客户姓名</th> |
| | | <th data-field="type">变更类型</th> |
| | | <th data-field="orderNo">单据编号</th> |
| | | <th data-field="total" data-formatter="MGrid.getYk" >本金</th> |
| | | <th data-field="giftMoney" data-formatter="MGrid.getYk" >赠送金额</th> |
| | | <th data-field="balance">余额</th> |
| | | <th data-field="times">次数</th> |
| | | <th data-field="staffName">操作人</th> |
| | | <th data-field="content" data-sortable="true">备注</th> |
| | | </tr> |
| | | </thead> |
| | | </table> |
| | | <!-- 数据表格部分end --> |
| | | <div class="form-group "> |
| | | <div class="col-sm-12 text-center fixed-button"> |
| | | <a class="btn btn-danger radius" href="javascript:;" |
| | | onclick="MTools.closeForm()"><i class="fa fa-close"></i> 关闭</a> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> |
| | | <script type="text/javascript"> |
| | | //初始化表格 |
| | | var myGrid; |
| | | myGrid=MGrid.initGrid({ |
| | | url:basePath+"/admin/moneyCardUseFlow/showList?vipId="+$.query.get("vipId"), |
| | | //初始化表格 |
| | | var myGrid2; |
| | | myGrid2=MGrid.initGrid({ |
| | | tableSelecter: "#mgrid2",// 表格选择器 请保持唯一 |
| | | serchFormSelecter: "#serchform2",// 搜索表单选择器 |
| | | url:basePath+"/admin/moneyCardUse/showCardFlowList", |
| | | }); |
| | | |
| | | function buidOperate(value, row, index){ |
| | | return html; |
| | | } |
| | | |
| | | |
| | | function getYesOrNo(value, row, index){ |
| | | switch(value){ |
| | | case 'Y': |
| | | return "是"; |
| | | case 'N': |
| | | return "否"; |
| | | default: |
| | | return value; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | </body> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label">备注</label> |
| | | <div class="col-sm-10"> |
| | | <textarea class="form-control" name="remark" rows="4" th:text="${obj?.remark}" ></textarea> |
| | | <label class="col-sm-2 control-label">项目备注</label> |
| | | <div class="col-sm-4"> |
| | | <textarea class="form-control" name="remark" rows="4" th:text="${obj?.remark}" ></textarea> |
| | | <div class="Validform_checktip"></div> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label">修改备注<span class="text-danger">*</span></label> |
| | | <div class="col-sm-4"> |
| | | <textarea datatype="*1-200" class="form-control" name="updateRemark" rows="4" ></textarea> |
| | | <div class="Validform_checktip"></div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <div class="col-sm-8 col-md-offset-2" id="projBox"> |
| | | <div class="col-sm-4 col-md-offset-2" id="projBox"> |
| | | <table class="table table-striped table-hover table-bordered" |
| | | id="mgrid"> |
| | | <thead> |
| | |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label">备注</label> |
| | | <div class="col-sm-10"> |
| | | <textarea class="form-control" name="remark" rows="4" >[[${obj.remark}]]</textarea> |
| | | <label class="col-sm-2 control-label">套餐备注</label> |
| | | <div class="col-sm-4"> |
| | | <textarea class="form-control" name="remark" rows="4" th:text="${obj?.remark}" ></textarea> |
| | | <div class="Validform_checktip"></div> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label">修改备注<span class="text-danger">*</span></label> |
| | | <div class="col-sm-4"> |
| | | <textarea datatype="*1-200" class="form-control" name="updateRemark" rows="4" ></textarea> |
| | | <div class="Validform_checktip"></div> |
| | | </div> |
| | | </div> |
| | |
| | | "checkSiteMap": true, |
| | | "uploadWithSourceMap": true, |
| | | "compileHotReLoad": false, |
| | | "useMultiFrameRuntime": false, |
| | | "useMultiFrameRuntime": true, |
| | | "useApiHook": true, |
| | | "babelSetting": { |
| | | "ignore": [], |
| | |
| | | "outputPath": "" |
| | | }, |
| | | "enableEngineNative": false, |
| | | "bundle": false, |
| | | "useIsolateContext": true, |
| | | "useCompilerModule": true, |
| | | "userConfirmedUseCompilerModuleSwitch": false, |
| | |
| | | "packNpmManually": false, |
| | | "packNpmRelationList": [], |
| | | "minifyWXSS": true, |
| | | "bundle": false |
| | | "useApiHostProcess": false |
| | | }, |
| | | "compileType": "miniprogram", |
| | | "libVersion": "1.9.98", |