|  |  |  | <?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.epmet.dao.CustomerFunctionDetailDao"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!--  根据functionId查询使用该功能的,客户id --> | 
					
						
							|  |  |  |     <select id="selectCustomerIdByFunctionId" parameterType="String" | 
					
						
							|  |  |  |             resultType="com.epmet.dto.CustomerFunctionDetailDTO"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             ID id, | 
					
						
							|  |  |  |             CUSTOMER_ID customerId, | 
					
						
							|  |  |  |             FUNCTION_ID functionId, | 
					
						
							|  |  |  |             FUNCTION_NAME functionName, | 
					
						
							|  |  |  |             ICON_LARGE_IMG iconLargeImg, | 
					
						
							|  |  |  |             ICON_SMALL_IMG iconSmallImg, | 
					
						
							|  |  |  |             DOMAIN_NAME domainName, | 
					
						
							|  |  |  |             TARGET_LINK	targetLink, | 
					
						
							|  |  |  |             DISPLAY_ORDER	displayOrder | 
					
						
							|  |  |  |         FROM customer_function_detail | 
					
						
							|  |  |  |         WHERE DEL_FLAG = '0' | 
					
						
							|  |  |  |         AND FUNCTION_ID = #{functionId} | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <select id="selectFunctionDetailList" resultType="com.epmet.dto.result.FunctionDetailResultDTO"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |         cfd.function_id AS "functionId", | 
					
						
							|  |  |  |         cfd.function_name AS "functionName", | 
					
						
							|  |  |  |         cfd.icon_large_img AS "iconLargeImg", | 
					
						
							|  |  |  |         cfd.icon_small_img AS "iconSmallImg", | 
					
						
							|  |  |  |         CONCAT( | 
					
						
							|  |  |  |         cfd.domain_name, | 
					
						
							|  |  |  |         cfd.target_link | 
					
						
							|  |  |  |         ) AS "url", | 
					
						
							|  |  |  |         cfd.display_order AS "dispalyOrder" | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |         customer_function_detail cfd | 
					
						
							|  |  |  |         INNER JOIN `function` f ON cfd.function_id = f.id | 
					
						
							|  |  |  |         INNER JOIN function_customized fc ON cfd.function_id = fc.function_id | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |         cfd.del_flag = '0' | 
					
						
							|  |  |  |         AND f.del_flag = '0' | 
					
						
							|  |  |  |         AND fc.del_flag = '0' | 
					
						
							|  |  |  |         AND f.function_group = '1' <!-- 功能类型:0.默认功能,1.定制功能 --> | 
					
						
							|  |  |  |         AND cfd.shopping_status = '1' <!-- 上架状态:0:下架、1:上架 --> | 
					
						
							|  |  |  |         AND cfd.customer_id = #{customerId} | 
					
						
							|  |  |  |         AND fc.from_app = #{clientType} | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  |         cfd.display_order ASC | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <select id="selectCustomerFunction" resultType="com.epmet.dto.result.CustomerResultDTO"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             cfd.customer_id AS "customerId", | 
					
						
							|  |  |  |             cfd.function_id AS "functionId", | 
					
						
							|  |  |  |             cfd.function_name AS "functionName", | 
					
						
							|  |  |  |             cfd.icon_large_img AS "iconLargeImg", | 
					
						
							|  |  |  |             cfd.icon_small_img AS "iconSmallImg", | 
					
						
							|  |  |  |             cfd.shopping_status AS "shoppingStatus", | 
					
						
							|  |  |  |             cfd.domain_name AS "domainName", | 
					
						
							|  |  |  |             cfd.target_link AS "targetLink", | 
					
						
							|  |  |  |             cfd.display_order AS "displayOrder", | 
					
						
							|  |  |  |             fc.customized_name AS "customizedName", | 
					
						
							|  |  |  |             fc.from_app AS "fromApp", | 
					
						
							|  |  |  |             fc.icon_large_img AS "defaultLargeImg", | 
					
						
							|  |  |  |             fc.icon_small_img AS "defaultSmallImg", | 
					
						
							|  |  |  |             f.function_explain AS "functionExplain" | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             customer_function_detail cfd | 
					
						
							|  |  |  |         INNER JOIN function_customized fc ON cfd.function_id = fc.function_id | 
					
						
							|  |  |  |         INNER JOIN `function` f ON cfd.function_id = f.id | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             cfd.del_flag = '0' | 
					
						
							|  |  |  |         AND fc.del_flag = '0' | 
					
						
							|  |  |  |         AND f.del_flag = '0' | 
					
						
							|  |  |  |         AND cfd.customer_id = #{customerId} | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  | 	        cfd.DISPLAY_ORDER ASC | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <select id="selectOrderByCustomerId" resultType="com.epmet.dto.CustomerFunctionDetailDTO"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             customer_id, | 
					
						
							|  |  |  |             function_id, | 
					
						
							|  |  |  |             function_name, | 
					
						
							|  |  |  |             icon_large_img, | 
					
						
							|  |  |  |             icon_small_img, | 
					
						
							|  |  |  |             domain_name, | 
					
						
							|  |  |  |             target_link, | 
					
						
							|  |  |  |             shopping_status, | 
					
						
							|  |  |  |             IFNULL(display_order, 0) AS displayOrder | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             customer_function_detail | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             del_flag = '0' | 
					
						
							|  |  |  |         AND customer_id = #{customerId} | 
					
						
							|  |  |  |         ORDER BY display_order DESC | 
					
						
							|  |  |  |         LIMIT 1 | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 统计客户某一端上架定制功能数 --> | 
					
						
							|  |  |  |     <select id="sumCustomerFunctionNum" resultType="com.epmet.dto.result.CustomerFunctionCollectResultDTO"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             COUNT(cfd.FUNCTION_ID) AS "num", | 
					
						
							|  |  |  |             IF(fc.FROM_APP='gov','工作端',IF(fc.FROM_APP='resi','居民端','无')) AS "fromAppName" | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             customer_function_detail cfd | 
					
						
							|  |  |  |         INNER JOIN function_customized fc ON cfd.FUNCTION_ID = fc.FUNCTION_ID | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             cfd.DEL_FLAG = '0' | 
					
						
							|  |  |  |         AND fc.DEL_FLAG = '0' | 
					
						
							|  |  |  |         AND cfd.SHOPPING_STATUS = '1' | 
					
						
							|  |  |  |         AND cfd.CUSTOMER_ID = #{customerId} | 
					
						
							|  |  |  |         AND fc.FROM_APP = ( | 
					
						
							|  |  |  |             SELECT | 
					
						
							|  |  |  |                 FROM_APP | 
					
						
							|  |  |  |             FROM | 
					
						
							|  |  |  |                 function_customized | 
					
						
							|  |  |  |             WHERE | 
					
						
							|  |  |  |                 DEL_FLAG = '0' | 
					
						
							|  |  |  |             AND FUNCTION_ID = #{functionId} | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <update id="updateShoppingStatus" parameterType="com.epmet.dto.form.UpdateShoppingStatusFormDTO"> | 
					
						
							|  |  |  |         UPDATE customer_function_detail | 
					
						
							|  |  |  |         SET | 
					
						
							|  |  |  |         SHOPPING_STATUS = #{shoppingStatus}, | 
					
						
							|  |  |  |         UPDATED_BY = #{userId}, | 
					
						
							|  |  |  |         UPDATED_TIME = now() | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             DEL_FLAG = '0' | 
					
						
							|  |  |  |             AND CUSTOMER_ID = #{customerId} | 
					
						
							|  |  |  |             AND FUNCTION_ID = #{functionId} | 
					
						
							|  |  |  |     </update> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <update id="updateCustomerFunction" parameterType="com.epmet.dto.form.UpdateCustomerFunctionFormDTO"> | 
					
						
							|  |  |  |         UPDATE customer_function_detail | 
					
						
							|  |  |  |         SET | 
					
						
							|  |  |  |         <if test="functionName != null and functionName.trim() != ''"> | 
					
						
							|  |  |  |             FUNCTION_NAME = #{functionName}, | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         <if test="iconLargeImg != null and iconLargeImg.trim() != ''"> | 
					
						
							|  |  |  |             ICON_LARGE_IMG = #{iconLargeImg}, | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         <if test="iconSmallImg != null and iconSmallImg.trim() != ''"> | 
					
						
							|  |  |  |             ICON_SMALL_IMG = #{iconSmallImg}, | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         <if test="domainName != null and domainName.trim() != ''"> | 
					
						
							|  |  |  |             DOMAIN_NAME = #{domainName}, | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         <if test="targetLink != null and targetLink.trim() != ''"> | 
					
						
							|  |  |  |             TARGET_LINK = #{targetLink}, | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |         UPDATED_BY = #{userId}, | 
					
						
							|  |  |  |         UPDATED_TIME = now() | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             DEL_FLAG = '0' | 
					
						
							|  |  |  |             AND CUSTOMER_ID = #{customerId} | 
					
						
							|  |  |  |             AND FUNCTION_ID = #{functionId} | 
					
						
							|  |  |  |     </update> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <update id="updateFunctionDetailList"> | 
					
						
							|  |  |  |         UPDATE customer_function_detail | 
					
						
							|  |  |  |         <trim prefix="set" suffixOverrides=","> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             <trim prefix="display_order =(case" suffix="end),"> | 
					
						
							|  |  |  |                 <foreach collection="list" item="item"> | 
					
						
							|  |  |  |                     when customer_id = #{item.customerId} and function_id = #{item.functionId}  then #{item.displayOrder} | 
					
						
							|  |  |  |                 </foreach> | 
					
						
							|  |  |  |             </trim> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             <trim prefix="updated_by =(case" suffix="end),"> | 
					
						
							|  |  |  |                 <foreach collection="list" item="item"> | 
					
						
							|  |  |  |                     when customer_id = #{item.customerId} and function_id = #{item.functionId} then #{item.updatedBy} | 
					
						
							|  |  |  |                 </foreach> | 
					
						
							|  |  |  |             </trim> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             updated_time = now() | 
					
						
							|  |  |  |         </trim> | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             del_flag = '0' | 
					
						
							|  |  |  |         <foreach collection="list" item="item" open="AND(  " separator=" OR " index="index" close=")"> | 
					
						
							|  |  |  |             (customer_id = #{item.customerId} and function_id = #{item.functionId}) | 
					
						
							|  |  |  |         </foreach> | 
					
						
							|  |  |  |     </update> | 
					
						
							|  |  |  | </mapper> |